TGCN: Tag Graph Convolutional Network for Tag-Aware Recommendation
题目:TGCN:基于标签图卷积网络的标签感知推荐
作者:Bo Chen, Wei Guo, Ruiming Tang, Xin Xin, Yue Ding, Xiuqiang He, Dong Wang
来源:CIKM‘20
关键词:Recommendation, Collaborative Tagging, Graph Neural Network, Representation Learning
研究对象
标签感知推荐系统(TRS)利用丰富的标签记录更好地描述用户画像和物品特征。
社会标签系统,也称为大众分类法,用户可以在这些网站和应用程序中对在线项目(例如电影、艺术家)随意注释任意标签。通常,这些标签由简洁的单词或短语组成,表达用户对特定项目的兴趣。得益于简洁,标签比评论更直接、更客观,不仅可以显示用户偏好,还可以总结项目的特征。因此,可以将用户定义的标签引入推荐系统,以缓解冷启动问题,提高推荐质量。
为了整合社会标签信息,常见范例是将标签转换为multi-hot特征向量,并进一步输入基于特征的推荐模型。
- multi-hot向量:多个位置的元素为1,其他位置的元素为0.
面临的问题
利用神经网络的解决方案基本上依赖于基于标签的推荐功能,这不足以缓解标签带来的稀疏性、模糊性和冗余问题,从而影响推荐性能。
- 稀疏问题。因为一些用户对项目的标记过少,这使得识别用户的偏好变得困难。
- 歧义问题。由于缺乏上下文语义,标记还可能存在歧义。“Apple”可能会被混淆为水果或苹果公司。
- 冗余问题。一些拼写不同的标签具有相同的含义和相似的偏好,如“mobile phone”和“cellphone”。由于在基于特征的模型中缺少关系建模,这些同义标记可能被解释为完全不同的语义。
挑战
- 在异构图建模中,==如何在保留所有类型的邻域信息的情况下聚合异构邻域,并考虑邻域的不同影响?==用户-标签-项目图是复杂的,因为每个中心节点可能有不同数量和类型的邻居。因此,有必要考虑个别异质邻居的不同贡献(采样)。
- ==如何对不同类型的领域之间的特征交互进行建模?==现有的异构图卷积模型在信息更新阶段简单地执行基于池化的操作,忽略了信息特征交互信号。
- 由于用户注释标签是代表用户对项目偏好的关键因素,==如何在用户-标签-项目三元组中捕获这些语义?==基于GNN的模型的聚合策略忽略了这样的语义,导致学到的embedding次优。
作者的方法
作者利用用户标记记录来构建无向加权协作标记图(CTG)。基于CTG,提出了一种新的端到端神经推荐框架——标签图卷积网络(TGCN),该模型利用用户-标签-项目图中多跳邻居的上下文语义来缓解稀疏性、模糊性和冗余性问题。
- 为了应对图节点的异质性,我们提出了一种类型感知的邻居采样和聚合操作。异构邻居采样策略被设计为对每种类型的固定大小的邻居进行采样,并且类型感知邻居聚合器被用来来学习特定类型的邻居表示。
- 为了有效地捕捉不同类型邻域表示之间的特征交互,利用类型级注意力机制来区分不同节点类型的重要性,并创新性地用卷积神经网络(CNN)作为类型级(type-level)聚合器来执行垂直和水平卷积,从而代替一般的基于pooling的方法来捕捉多粒度特征交互。
- 为了捕捉用户-标签-项目三元组中的语义并准确描述用户的偏好,设计了一个TransTag正则化器,在标签三元组的粒度上对节点表示进行建模,从而准确识别用户的实质性偏好,并与推荐任务进行交替训练。
本文并没有对三类节点进行更细粒度的划分。
Frame Work
-
如何理解Collaborative Tag Graph中的权值: u1-t1的权重为2,是因为u1用t1标记过i1,与此同时还用t1标记过i2; i1-t1的权重为2,是因为u1用t1标记过i1,与此同时u2也用t1标记过i1. -
流程:
- 对CTG进行类型感知的邻居采样和聚合操作,利用节点级注意力机制来区分不同类型节点的重要性,并利用类型感知邻居聚合器来学习不同类型的邻居表示。
- 利用类型级注意力机制来区分不同节点类型的重要性,利用语义级的注意力机制 (Type-level Attention) 将它们的表示拼接成为一个矩阵,再执行垂直和水平卷积来捕捉多粒度特征交互,将矩阵展成一个向量。
- 对于
l
l
l 跳邻居按照上述方法得到
l
l
l 种不同的表示,再将它们串联起来。最后与推荐任务进行交替训练得到预测的用户与项目交互的概率。
方法
构造图
连接好节点并给边赋权值之后,还对每个节点添加了一个权重为1的自环,从而形成相应的CTG图。
- 异质网络的一般形式化:点集、边集和两个映射函数(节点映射函数 – 将每一种类型的节点进行映射、边映射函数 – 将每一种类型的节点进行映射)
- 3类节点,4类边(还有自环)。
标签卷积网络
1 类型感知邻居聚合 (C1)
1.1 异构邻居采样
- 取出固定大小的一组异质的邻居节点,对这些节点分类型,而后均匀地随机采样(带有替换)。
1.2 邻居聚合
聚合同类型的邻居并获得特定类型的邻居表示。
- 该注意力表示考虑第k种类型的相似性。
- 中心节点在这个权重下和邻居有连边,所以把权重认为和中心节点处在同一个视角,因此放在一起。只是实验选择了这种方式处理而已,其他合理的处理方式也是可行的。
2 信息更新 (C2)
2.1 类型级信息重构
再去计算一个注意力分数,将上一步的邻居表示与新的注意力分数相乘,得到一个更新后的邻居表示。最后,把所有更新后的邻居表示拼接成一个大的二维矩阵。
2.2 特征交互提取
使用CNN&FC对特征交互进行建模的好处:
- 垂直卷积在每个维度上提取局部特征,作为多头特征提取器学习多方面的位级特征交互。
- 水平卷积与连续的h个邻域表示相互作用,捕获不同类型表示之间的h阶向量级特征交互。
- FC层将两种粒度的特征交互模式重组,从而学习出高级的全局交互特征。
2.3 高阶传播
3 TransTag正则化 (C3)
- Cprrupted triplet表示的是一些“不清楚用户是否真的与项目交互过”的随机样本
4 联合训练
-
(
u
,
i
?
)
(u, i_-)
(u,i??) 表示负样本
- 训练 KaTeX parse error: Undefined control sequence: \cal at position 2: {\?c?a?l?{L}}_G 的方式是使得
y
^
u
i
+
\hat{y}_{ui_{+}}
y^?ui+?? 尽可能的大,以至于接近1,而
y
^
u
i
?
\hat{y}_{ui_{-}}
y^?ui??? 尽可能的小,以至于接近0
5 讨论
实验
|