本文是对《Continuous-Time Sequential Recommendation with Temporal Graph Collaborative Transformer》一文的总结,如有侵权即刻删除。
朋友们,我们在github创建了一个图学习笔记库,总结了相关文章的论文、代码和我个人的中文笔记,能够帮助大家更加便捷地找到对应论文,欢迎star~
Chinese-Reading-Notes-of-Graph-Learning
更多相关文章,请移步:文献阅读总结:网络表示学习/图学习
Title
《Continuous-Time Sequential Recommendation with Temporal Graph Collaborative Transformer》
——CIKM 2021
Author: Ziwei Fan
总结
文章提出了TGSRec方法,考虑了序列推荐中的时间协同信号问题。文章指出,用户-商品的交互二部图中,时间信号具有重要价值。如下图所示,在仅考虑序列推荐时,i3会成为最可能推荐给u4的商品,但当考虑了时间协同信号后,i4就成为了最可能推荐的商品。这是因为用户u2和u4有着相似的交互模式,即先交互i1,再交互i2。基于这一愿意,文章着重考虑了时间协同信号与序列推荐的融合。
1 嵌入生成
文章中用到的嵌入生成模块分为两部分,一个是长期的节点嵌入生成,一个是持续时间嵌入生成。长期嵌入可以理解为节点不会轻易改变的表征,例如初始特征等,记作E。在训练过程中,节点的这一嵌入会不断随模型更新。
持续时间嵌入编码节点交互的时间信息,即时间戳。对任一时间戳,都可以使用傅里叶变换将其编码如下:
其中w是可学习的参数,d_T指的是嵌入维度。
2 时序协同Transformer
文章提出的TCT层(Temporal Collaborative Transformer)用于编码和整合信息,对l-1层节点u的嵌入,可以表示为:
那么对于节点u的邻域N_u(t),其每个邻居i的表征都可以表示为:
而这些邻域嵌入信息会按照不同的权重传播到节点u上,u收到的邻域传播的总信息可记为:
其中𝜋表示的是不同邻居节点(或可视为不同交互)的重要程度,W为可学习的参数矩阵。如何计算不同邻居的重要性,正是文章着重关注的问题。在此,文章引入了时序协同注意力机制来计算该重要性。
通过计算邻居节点和源节点u嵌入之间的相似程度,就可以表达出该邻居对u的重要性。结合公式3和4,6式的右侧可改写为:
在计算得到单个节点的重要性后,要使用softmax函数对整个邻域的不同邻居重要性进行归一化:
事实上,上述操作在实际执行中是将u的整个邻居进行打包计算的,即:
因此,公式5在实际执行中,可改写为:
这一信息即为来自节点u邻域的信息,会与u本身的嵌入进行结合得到u的最终嵌入,即:
3 模型预测与优化
该模型的下游任务针对的是商品推荐,因此给出用户u和商品i,需要计算它们之间的相似度或预测得分:
模型最终的目标函数为:
模型的整体结构图如下: