CKAN: Collaborative Knowledge-aware Attentive Network for Recommender System
1 摘要
由于知识图(KG)可以有效地解决协同滤波的稀疏性和冷启动问题,因此它作为推荐系统领域的边信息得到了广泛的研究和应用。然而,现有的大多数基于KG的推荐方法主要集中于如何有效地编码KG中的知识关联,而不突出用户-项交互中潜在的关键协作信号。因此,学习到的嵌入没有充分利用这两种关键信息,不足以有效地表示向量空间中用户和项的潜在语义。在本文中,提出了一种新的协作知识感知注意力网络(CKAN),该方法通过协作传播明确编码协作信号,并提出了一种将协作信号与知识关联相结合的自然方法。具体地说,CKAN使用异构传播策略来显式地编码这两种信息,并应用知识感知注意机制来区分不同基于知识的邻居的贡献。与其他基于KG的方法相比,CKAN提供了一个将协作信息与知识信息结合在一起的全新想法。将所提出的模型应用于四个真实数据集,经验结果表明,CKAN显著优于几个引人注目的最先进的基线。
2 模型架构
如图2所示,模型框架由三个主要组件组成:1)异构传播层(异质性指两种不同的传播结构),通过用户与知识图中的知识项交互和知识关联传播协作信号;2)知识感知注意嵌入层,提出了一种新的神经知识意识注意机制来学习同一实体集中实体基于知识的权重,并生成实体的加权表示;3)预测层,聚合来自不同传播层的用户和项的表示,并输出预测的点击概率。
2.1 异构传播
如图2所示,异构传播层由两个主要模块组成:协作传播和知识图传播。协作传播用于显式地将关键的协作信号编码为用户和项的表示。知识图传播沿着KG中的链接传播知识关联,以用补充边信息递归地扩展用户和项的表示。
2.1.1 协作关系传播
直观上说,用户在历史中交互过的项目能够在一定程度上表示用户的偏好。与传统上使用独立的潜在向量不同,这里用用户u的相关项来表示用户u。通过用户u的历史交互获得的相关项目集,可以通过项目和实体之间的对齐来转换为在KG中传播的初始种子集。用户u的初始实体集的定义如下:(也就是用户的历史点击集)
类似地,与同一项目交互过的用户也可以因为其相似的行为偏好而对项目的特征表示做出贡献。将与同一用户与交互的项目定义为协作邻居,并制定了项目v的协作项目集如下:(我认为应该,首先获取与该项目交互过的用户,再获取到这些项目的协作邻居)
综合协作项目集和对齐集,项目v的初始实体集定义如下:
协作传播层能够显式编码一阶交互信息,它们能够将潜在语义表示到初始实体集中,从而增强用户和项的表示,提高推荐效果。请注意,根据定义,项v的初始实体集也包含与项v直接相关的实体,这种设计可以不断强调原项v的信息,并减少多层传播引起的偏差。
2.1.2 知识图的传播
KG中的邻近实体总是有很强的联系。在KG中沿链路传播,可以从初始实体集获得扩展实体集和不同距离的三元组,能够有效地扩展用户和项的潜在向量表示。用户u和项v的实体集的定义可以被递归地表述为
其中l表示与初始实体集的距离,下标符号o是符号u或v的统一占位符。给定实体集的定义,然后为用户u和项v定义第l个三元组,定义如下:
将知识图作为辅助信息来构建模型是很有意义的,视为用户偏好因为相邻实体可以被和项目特征的直观扩展。如图2所示,通过协作传播获得的初始实体集,与声波源相似,在KG的介质中一层一层地传播。通过基于知识的深度传播,成功地捕获了用户和项目的高阶交互信息,有效地提高了模型用潜在向量表示用户和项目的能力。
2.2 具有知识意识的有吸引力的嵌入
当每个尾实体在KG中具有不同的头实体和关系时,每个尾实体都有不同的含义和潜在向量表示。例如,《阿甘正传》和《荒岛余生》在导演或演员方面有更多的共同之处,但如果用类型或作家来衡量,它们就不那么相似了。因此,我们提出了一种知识感知注意嵌入方法来生成尾实体的不同注意权重,以揭示它在得到不同的头实体和关系时的不同含义。
考虑(h、r、t)是第l层三元组中的第i个三元组,构建一个尾部实体的注意力嵌入ai:
eih是头实体的嵌入,ri是关系嵌入,eit是第i个三元组尾实体的嵌入。π(ehi,ri)控制由头部实体产生的注意权重以及头部和尾部之间的关系。通过一个类似于注意机制的神经网络来实现函数π(·),其表述如下:
使用softmax函数对其进行归一化
其中,Sol是用户或项目的第l层三元设置。因此,注意力权重能够表明哪个相邻的尾实体应该给予更多的关注,以更有效地捕获知识关联。
最后,得到了用户u或项目v的第l层三元组集的表示:(意思是这一层的实体由注意力机制得到的尾实体相加表示)
其中,下标和上标o是符号u或v的统一占位符,而|Sol|是集合Sol中的三元组数。请注意,由于初始实体集中的实体类似基于知识传播的种子,最接近原始表示,因此初始实体集与原始用户和项有很强的连接。因此,为用户和项添加了初始实体集的表示:意思就是第0层的实体由直接相连的实体表示
特别是,itemv具有其原始表示的相关实体,而用户u没有。原始相关实体是潜在语义空间中离项v本身最近的节点。因此,将其添加到项v的表示集中,并将其定义如下:A是实体和项目的对齐集
在知识感知专注意嵌入之后,制定了表示集,其中包含基于知识的注意加权表示和用户u和项v的附加表示(也就是0层的表示),该表示集如下:
2.3 模型预测
每一层的表示都可以解释为分层结构的潜在影响,强调不同的高阶连通性和偏好相似性。文章实现了三种类型的聚合器,以将方程式(12)中的多个表示聚合为用户和项的单一向量。求和聚合器,池聚合器,连接聚合器。公式就不放了。
聚合后得到用户项目的最终表示,用他们的内积来表示,用户对该项目的偏好。
2.3 损失函数
为了平衡正样本和阴性样本的数量,并保证模型训练的效果,本人为每个用户提取了与阳性样本相同的负样本数量。损失函数定义如下:
是交叉熵损失,P+表示正的用户项目对,P-与之相反。Θ={E、R、Wi、bi、∀i∈{0、1、2,a}}是模型参数集,E和R是所有实体和关系的嵌入表,||Θ||22是由λ参数化的l2正则化器。
3 实验结果
个人总结
本篇文章丰富了用户和项目的表示,使用用户的历史集作为种子集并采用注意力机制逐层加权获取高阶信息。类似的,对于项目,首先获取与该项目交互的用户,然后再获取与这些用户交互过的项目集,再采用注意力机制逐层加权获取高阶信息。值得注意的是,对于0层本文也作了丰富,因为层是离用户和项目最近的,具有更大的相关性,而很多文章都忽略了。0层的用户由该用户历史集的嵌入相加表示,0层的项目集由初始集中与项目相连的实体(可能是属性)相加表示。最后将丰富过后的用户和项目表示做内积得到结果。