作者及单位
解决问题
基于知识图谱的推荐系统能够缓解数据的稀疏性以及冷启动问题,并且可以增加推荐系统的多样性和可解释性。RippleNet就是基于KG的推荐模型,其主要目的也是尝试解决上述问题。
除此之外,RippleNet是第一个将基于嵌入和基于路径的方法结合起来的模型。基于嵌入的方法通常更适用于图形内链路预测应用,而推荐场景我们需要更多的去发现潜在用户感兴趣的点,而不仅仅是利用当前已有的节点,所以学习实体嵌入在描述项目间关系时不够直观和有效。
何为图内链路预测:通过已知的网络节点及网络结构等信息,预测网络中尚未产生连接的两个节点之间产生连接的可能性。
基于路径的方法严重依赖于手动设计的元路径,这在实践中很难优化。 另一个问题是,在某些场景(例如,新闻推荐)中,实体和关系不在一个域中,无法手动设计元路径。
而RippleNet避免了上述两种方法存在的问题:(1)RippleNet通过偏好传播将KGE方法自然地融入到推荐中;(2)RippleNet可以自动发现从用户历史记录中的项目到候选项目的可能路径,而无需任何手工设计。
RippleNet模型介绍
RippleNet主要思想
RippleNet是一种用于知识图谱感知推荐的端到端框架,其目的是点击率(CTR)预测。RippleNet的关键思想是用户的偏好传播,它将用户的历史兴趣视为KG中的种子集,然后沿着KG连接迭代地扩展用户的兴趣,自动发现用户对候选项目的分层潜在兴趣。
通俗来说,用户的兴趣以其历史记录为中心,在知识图谱上逐层向外扩散,而在扩散过程中不断的衰减,类似于水中的波纹,因此称为RippleNet。
RippleNet网络结构
在介绍整体框架之前,首先引入两个概念。
(1)用户的k-hop相关实体:,其中,表示用户的历史交互项目;
(2)用户的k-hop ripple set:以k-1个相关实体为head的相关三元组:。
一般情况下,为避免ripple set过大,会设定一个k的最大值进行截断。ripple的含义:用户对项目的潜在兴趣由其历史偏好激活,然后沿KG中的连接从近到远逐层传播;用户在ripple集中的潜在偏好强度随k的增加而降低。
下面,看看RippleNet的具体网络结构。
如图,模型的输入是用户和项目,输出是用户单击项目的预测概率。在中间过程中,用户的历史兴趣集为,它沿着连接扩展,以形成ripple集,它们用于与项目嵌入进行迭代交互,以获得用户对项目的响应,然后将这些响应组合起来,形成最终的用户嵌入。最后利用用户和项目的嵌入来计算。
框架中提到的,要利用获得用户对项目的响应,具体可分为两步:
(1)在关系空间中度量项目与实体之间的相关性,给中的每个三元组分配相关概率: 其中,和是关系和头实体的嵌入。
(2)获得相关概率后,将中三元组的尾实体按相应的相关概率加权求和,得到用户兴趣经过第一轮扩散的结果(图中的绿色矩形):以上用户的兴趣沿着的路径从其历史集转移到其1跳相关实体的过程叫做偏好传播。
之后将公式中的替换成,得到,一共重复上述过程H次,将用户的偏好从点击历史传播到H跳,则用户最终的嵌入为:
最后,结合用户嵌入和项目嵌入,输出的预测点击概率为:。
RippleNet的损失函数
在给定知识图谱G,用户的隐式反馈(即用户的历史记录)Y时,我们希望最大化后验概率:,其中包括所有实体、关系和项目的嵌入。
后验概率可以转化为(根据概率的乘法公式):
最终损失函数为:
总结
RippleNet通过引入偏好传播,克服了现有基于嵌入和基于路径的KG感知推荐方法的局限性,论文在三个推荐场景中进行了大量实验。结果都表明RippleNet具有显著的优势。RippleNet中用户的偏好传播丰富了用户嵌入,能够更好的发现用户的潜在兴趣,我认为该论文中的k-hop思想非常值得思考,可以尝试和一些现有的算法结合,可能会有更好的效果。
参考
论文地址:https://arxiv.org/pdf/1803.03467.pdf
//www.greatytc.com/p/c5ffaf7ed449
https://zhuanlan.zhihu.com/p/73716930?ivk_sa=1024320u