点击蓝字关注,提升学习效率
Learning Dual Dynamic Representations on Time-Sliced User-Item Interaction Graphs for Sequential Recommendation
https://dl.acm.org/doi/pdf/10.1145/3459637.3482443
1. 背景
本文是图神经网络应用于序列推荐方向的文章,利用图神经网络挖掘用户和item之间的动态时序关系,主要包含以下创新点:
2. 问题定义
表示用户与item的交互,M和N表示User和Item的集合大小,有交互则为1,反之则为0
User:
item:
交互三元组:
根据等时间差将
分为多个时间片
一些用户和item在一个时间片内可能没有任何交互。在这种情况下,相应的用户和item表征将在该时间片内保持不变。
本文的推荐问题可以定义为下式:
3. 方法
如图所示为所提方法DRL-SRe的整体框架图,时间切片的图神经网络用于从序列数据中学习user和item的表征。将从时间序列中得到的表征和静态表征结合后用于预测。
T个时间切片的图可以构建为 , 在第s时间段的 上构建。假设在第s个时间片中存在 个User和 个item,则节点特征矩阵为 ,邻接矩阵为。对于每一个时间切片的图数据,我们可以直接对其进行相应的GNN操作,然后对信息进行传播,如下式:
其中, 这里是典型的GCN公式,这里就不赘述了。经过多层的信息传播后,我们可以得到每一层的输出,即。不同层包含不同的语义,本文采用GRU从这些表征中得到User和Item的序列表征 ,公式如下,其中 表示第L+1个迭代后的GRU的输出, 为可学习参数, 的最初输入都为 。
将不同时间切片的都按照上式计算完毕后可以得到和。然后再用两个GRU来对动态变化的时间关系进行建模,如下式:
从时间切片的GNN中可以得到 ,对于User u和Item i可以得到 和 ,取时间片中最后一个时间步的表征作为user和item的动态表征,再结合静态表征,即用户画像这些特征,最后输入到全连接层进行预测,公式如下,激活函数采用ReLU,其中h是动态表征,e是静态表征。
损失函数依旧采用交叉熵损失函数,如下式:
为了捕获更细致的时序信息,防止得到的动态表征是次优的,这里提出了一个辅助时序任务来解决这个问题。本节所采用的的辅助任务为时序点建模,时序点建模可以在时间域上对序列数据进行建模,条件强度函数( )是进行时序点建模的关键部分,密度函数如下,其中 表示上一次事件或开始事件发生的时间。
在本文中,把时间片序列中的前一次的交互作为事件,即上式中的 。用 和 表示用户和item的时间序列信息,以第s个时间片为例,构建两者的条件强度函数为下式,其中w,b为可学习参数
以第s个时间片为例,user的密度函数为下式,item的密度函数计算和user同理。
此处的辅助任务是利用时序点建模,发掘相邻时间片之间的时序信息,因此本节的损失函数可以写成下式,每次计算当前时间片和下一个时间片之间的关系,前后分别为user和item。
总体损失函数为两个损失函数的和,如下式,其中β为超参数,控制辅助任务的影响力。并且在训练过程中采用了dropout、L2正则项、Adam优化方式。
4. 实验结果
5. 总结
本文针对序列推荐问题,一方面,将历史行为序列等时间间隔地划分为多个时间片,然后通过GNN对每个时间片进行信息传播,并且针对不同层得到的表征利用GRU融合(这部分作者是试验出来的),针对不同时间片的表征采用GRU进行融合(这部分是因为时间片本身是时序数据);另一方面,作者采用时序点建模方法,对历史行为序列的时间信息进行建模。
点个在看你最好看