Dynamic Graph Neural Networks for Sequential Recommendation
协同过滤没有考虑用户商品交互的序列演变;
已经有一些RNN,attention mechanism模型建模顺序推荐;GNN也有一些顺序推荐方法;
尽管这些方法取得不错的结果,但这些方法缺乏对不同用户序列之间动态协作信号的显示建模:
(1)这些模型没有利用不同用户序列之间的协作信息,仅仅侧重于每个用户自己的序列,忽略了不同用户序列之间的高阶连通性。
(2)这些模型忽略了不同时刻高阶协作信息的动态影响。此时用户兴趣变化不仅受到自身交互商品(一阶交互项)变化的影响,还受到高阶连接的用户和他们交互的商品的变化的影响,随时间变化。
两个要点:1)用图形动态地表示用户物品的动态交互,将序列信息或交互顺序整合到图中;2)对每个用户序列的动态协同信号进行显示编码。
本节将所有用户的交互序列转化为一个动态图。
当用户u在时刻t作用于物品i时,在u和之间建立一条边e,e可以用五元组 ( u , i , t , o u i , o i u ) (u,i,t,o^i_u,o^u_i) (u,i,t,oui,oiu)表示, o i u o^u_i oiu是u-i交互的阶数,即i在与u交互的所有item中的位置。 o i u o_i^u oiu表示u在与item i交互的所有用户节点中的顺序。
数据集的所有五元组形成一个动态图,
将时刻t的动态图定义为 G t ∈ G \mathcal{G^t} \in \mathcal{G} Gt∈G,它是由时刻t和t之前所有用户的交互序列组成的动态图
考虑到用户序列扩展时,其邻居序列的数量在不断增加,所有用户组成的动态图的规模在逐渐扩大,会增加计算量和噪声,因此提出采样策略。
将用户节点u作为锚节点,并从图 G t \mathcal{G^t} Gt中选择其最近的n个一阶邻居,即u与之交互的历史项目,记为 N u \mathcal{N_u} Nu。接下来对于每一项 i ∈ N u i \in \mathcal{N_u} i∈Nu,使用它们作为一个锚节点,对与它们进行交互的用户集进行抽样,写成 N i \mathcal{N_i} Ni。为了提高抽样效率,为了避免重复采样,记录了被用作锚节点的用户节点和项目节点。通过类比,可以进行user或者item的多阶邻居节点抽样。
通过采样,每个子图 G u m ( t k ) \mathcal{G^m_u(t_k)} Gum(tk)包含序列 S u \ S ^u Su及其关联序列的节点,m阶信息。
设计DGRN,基于子图用户的上下文信息,对用户的每个偏好进行建模。DGRN和GNN相同,由消息传播和节点更新组件组成。
GNN无法对序列顺序信息建模,而RNN等无法对图结构建模,因此作者设计了一种图神经网络和序列网络相结合的动态传播机制。
从item到user:户节点u的邻居节点集合为u购买的物品。为了更新每一层的用户节点表示,们需要从每个用户节点的邻居中提取两种类型的信息,分别是长期偏好和短期偏好。用户的长期偏好]反映了用户的内在特征和总体偏好,这种偏好可以从用户的所有历史项目中归纳出来。用户的短期偏好反映了他或她最近的兴趣。
从user到item:物品节点i的邻居节点集是购买该商品的用户,其中用户按时间顺序排列。与用户类似,物品的邻居也反映了它的两种类型的字符。一方面,长期特征可以反映项目的总体特征。例如,有钱人通常买高档化妆品。另一方面,短期性体现了项目的最新属性。例如,许多非体育爱好者也可能在世界杯期间购买球衣或球员海报。这部分消费者的行为意味着这一时期足球装备的定位已经从专业化向普适性转变。
Long-term Information:作者参考GNN和RNN设计了适合于动态顺序推荐的顺序感知关注机制。
对于每个相互作用的五元组 ( u , i , t , o u i , o i u ) (u,i,t,o^i_u,o^u_i) (u,i,t,oui,oiu),定义物品i和用户u的最后一个物品的相对顺序 r u i = ∣ N u ∣ − o u i r^i_u=\mathcal{|N_u|} - o^i_u rui=∣Nu∣−oui,对每一个离散的r,分配一个相对顺序的嵌入 p r K ∈ R d \bold p^K_r \in \mathbb{R^d} prK∈Rd 去编码顺序信息, h u ( l − 1 ) \bold h_u^{(l-1)} hu(l−1)与其邻居节点表示 h i ( l − 1 ) \bold h_i^{(l-1)} hi(l−1)之间的注意系数受到 p r K \bold p^K_r prK 的影响:
因此item的长期特征也可以被计算为:
Short-term Information:在推荐系统中,用户的短期信息反映了用户最近的兴趣,很多工作都利用最后的交互项的嵌入作为用户的短期嵌入,但忽略了对历史信息的依赖,因此,作者考虑注意力机制模拟最近一次互动和历史互动的有效性。
考虑最后一个item(user)与每个历史item(user)之间的注意机制:
聚合长期嵌入,短期嵌入和上一层的嵌入来更新 G u m ( t k ) \mathcal{G^m_u(t_k)} Gum(tk)中的节点表征。
User node updating:对于用户节点,从第l- 1层到第l层的表示更新规则可表示为
Item node updating:
将预测用户接下来可能交互的item当作链接预测问题。
不同层次的用户嵌入强调了用户的不同偏好。因此,我们将用户的多个嵌入连接起来,得到节点u的最终嵌入:
对于给定的候选项目i,链接函数定义为:
代表用户u对商品i交互的分数。
为了学习模型参数,我们对交叉熵损失进行了优化。用户u对候选项目得分的归一化向量为
目标函数可以表示为: