美文网首页
[Paper Reading] Dynamic Item Blo

[Paper Reading] Dynamic Item Blo

作者: 小豆芽turbo | 来源:发表于2019-12-01 02:26 被阅读0次

    会议:IJCAI'19
    主题:序列推荐
    paper:https://www.ijcai.org/proceedings/2019/0190.pdf
    code:https://github.com/ouououououou/DIB-PEB-Sequential-RS

    1. 准备知识

    • 序列推荐:传统的协同过滤推荐,是以一种静态的方法构造user-item间的交互,所能捕捉的用户的偏好较为单一。相反,序列推荐是以一种动态即序列的方法构造user-item间的交互,从其所包含的序列依赖关系中可以捕捉到用户的消费习惯、意图和商品的消费趋势等,有利于更精准地、个性化地和动态地推荐。例如,给曾购买过GPU的用户推荐GPU风扇等。

    2. 简介

    学习用户多尺度的偏好,例如长期偏好和短期偏好,有利于更加精准的预测用户行为。现有的方法可以大致分为三类:

    • 第一类旨在基于用户行为模式的启发式假设,通过时间矩阵分解来建模用户偏好漂移的方法;
    • 第二类则侧重于用户偏好于刚刚交互的前几项的短期依赖性,典型的方法是基于马尔可夫链的推荐的方法;
    • 第三类是近几年大火的基于神经网络建模用户偏好的方法。这类方法可以基于RNN、CNN几它们的变体去捕捉用户交互item之间的长期和短期依赖性。本文沿着这一方向,设计了一种端到端的神经序列模型去完成序列推荐的任务,

    (1) 现有神经序列模型存在的不足之处:

    • 简单地认对于所有用户来说,item的表征静态、固定的,即不会随着时间的变迁、用户的切换而变化。
    • user与item相关性的预测过于单一,例如,通过user与item各自表征的内积来衡量。这主要是因为现有的工作对于一个用户只学习一种向量表示,这就导致了模型最终预测的单一性。本文针对一个用户会生成不同尺度上的向量表示来衡量用户不同角度的偏好。

    (2) 本文重点:

    • 设计Dynamic Item Block (DIB) 模块去学习item的动态向量表示。主要是通过聚合在该时间步之前对该item有过交互的用户的向量表示来得到的。这部分称之为类似用户(similar users),并通过注意力机制确定不同相似用户的对于item表征学习的重要程度。
    • 提出Prediction Enhancing Block (PEB)模块,将用户的向量表示投影到多个尺度上,在此基础上,可以相应地进行多个预测,然后集中在一起进行增强学习。

    下面将逐个突破这两个模块,并介绍完整的序列推荐模型。

    3. Dynamic Item Block (DIB)

    图1 DIB
    DIB可以看作是一个transformer,它以user 的向量表示和item 的向量表示为输入,然后将item的向量表示transformer成一个与用户相关的向量表示。具体步骤为:
    • step1: 寻找相似用户(similar users)。本文相似用户指的是与item i有过互动的其他用户,下面以一个例子来具体说明这一过程。
      图2 寻找similar users
      假设现在DIB的输入为user u_3和item i,寻找与item i有过交互的用户,并按交互时间排序。在交互过的用户列表中找到u_3的确切位置,称之为时间步。那么,在这一时间步之前交互的用户即为u_3的相似用户,如u_4,u_5,u_6,u_7,最终保留K个用户。
    • step2: 聚合相似用户的向量表示为c_{ui}作为item i向量表示q_i学习过程中的补充特征。但是,不同用户与item之间的相关性并不完全相同,因此采用attention机制,以区别不同用户向量表示对item i向量表示学习的贡献程度。将用户u的相似用户标记为s_i^u,对应的向量表示为p_{s_i^u}。那么c_{ui}可通过如下两个公式得到:
      z_{s_i^u}=\frac{exp(p_u^Tp_{s_i^u})}{\sum_{k=1}^Kexp(p_u^Tp_{s_k^u})}

    c_{ui}=\sum_{k=1}^Kz_{s_i^u}p_{s_i^u}

    最终,item i与用户u相关(user related)的一个向量表示d_{ui}就可以表示成:
    d_{ui}=merge(q_i,c_{ui})
    这篇文章将merge定义为merge(x,y)=x+\alpha y,其中参数\alpha衡量了补充特征的重要性。

    4. Prediction Enhancing Block (PEB)

    PEB模块主要将用户的表征映射到不同的尺度上,以便同时预测出用户在不同尺度上与item的相关性。


    图3 PEB
    • step1 : 通过一个全连接层将用户的向量表示p_u映射成K个向量表示,其中第k个向量表示用符合p_u^k。那么,就可以预测用户在第k个尺度上,选择每个item i的可能性。但是,由于item 数量是庞大的,这篇文章又采用负采样策略降低计算复杂度。具体为
      y_{ui}=\frac{exp({p_u^k}^Tq_i)}{\sum_{j\in\{i\}\cup N_{i_u^p}}exp({p_u^k}^Tq_j)}
      其中,N_{i_u^p}为对应负样本集合。
    • step2 :将K个按照不同的重要程度,整合成一个值。其中,第k个预测值对最终值的贡献程度\beta_k是通过将p_u通过另一个全连接层映射为K个值得到的。

    整个网络的损失函数设计为
    L_u = \frac{1}{K}\sum_{k=1}^K-log(\eta\cdot y_{ui_p^u}^k+(1-\eta)\cdot(1-\alpha_{ui_p^u})+\sum_{i_n\in N_{i_p^u}}-\log(\eta\cdot(1-y_{ui_n^u}^k)+(1-\eta)\cdot\alpha_{ui_n^u}^k)
    其中,\alpha_{ui}=|y_{ui}-\beta|。损失函数的核心在于最大化正样本的y并最小化y\beta的差距,最小化负样本的y并最大化y\beta之间的差距。参数\eta用以平衡两个优化目标。

    每个尺度上的预测值,与终值的相关程度就可以标准化为:
    w_k=\frac{exp(\beta_k)}{\sum_j^Kexp(\beta_j)}

    最终,用户u与item i互动的概率可以预测为
    y_{ui}=\sum_{k=1}^Kw_k\cdot y_{ui}^k

    5. Models with Sequential Building Blocks

    基于 DIB 和 PEB,这篇文章提出了两个顺序模型,分别为:GRU-DIB-PEB和 MN-DIB-PEB,下面依次介绍之。
    (1) GRU-DIB-PEB

    图4 GRU-DIB-PEB

    该模型,首先通过DIB将用户u历史交互过的item i向量表示转换成与用户相关向量表示d_{ui}。接着,通过GRU将所有的d_{ui}压缩成一个固定向量h_u。最后,将h_u与用户向量表示p_uconcat成为用户最终的向量表示\hat{p}_u。然后通过PEB模块,就能得到用户与item i交互的概率。

    (2) MN-DIB-PEB

    图 5 MN-DIB-PEB
    该模型,主要采用了记忆网络的思想去生成。

    6. 总结

    DIB有助于构建具有相似用户作为上下文信息的更好的项目表示,而PEB则以多尺度的方式增强预测,以获得更高的推荐可靠性。

    相关文章

      网友评论

          本文标题:[Paper Reading] Dynamic Item Blo

          本文链接:https://www.haomeiwen.com/subject/szvawctx.html