知识图谱遇上推荐系统——RippleNet

主要参考论文:《RippleNet: Propagating User Preferences on the Knowledge Graph for Recommender Systems》

副信息

众所周知,基于协同过滤的推荐算法存在数据稀疏(the sparsity of user-item interactions)和冷启动问题(the cold start problem)。

为了缓解这些问题,可以使用副信息辅助推荐系统实现更好的效果。常用的副信息有社交信息(social networks)、用户/物品属性(user/item attributes)、图片(images)等

此外,还有一种包含丰富物品信息的副信息是知识图谱。知识图谱是一类有向异构图,其节点对应实体(entity),边对应实体间的关系(relation)。推荐系统中的物品可以链接到知识图谱中,以获取物品间的事实和联系。如下图所示,如果将电影链接到知识图谱中的相应实体(即图中的《Cast Away》、《Interstellar》等),我们就可以得到电影间的联系。以《Back to the Future》和《Forrest Gump》为例,由知识图谱可知,二者有共同的导演”Robert Zemeckis”。

知识图谱遇上推荐系统——RippleNet

; 基于知识图谱的推荐(KG-based recommendation)

知识图谱带来的优势

  1. 如上面的描述,知识图谱可以发现两个物品间的潜在联系
  2. 知识图谱有许多种关系,我们可以合理地扩展用户的兴趣,提升推荐多样性。依然以上图为例,用户观看了电影《Cast Away》,我们可以根据这部电影的类型”Adventure”给他推荐《Interstellar》和《Raiders of the Lost Ark》;也可以根据这部电影的演员”Tom Hanks”给他推荐《Forrest Gump》
  3. 知识图谱可以为推荐提供可解释性

现有基于知识图谱的推荐算法分类及不足

(1)基于嵌入的方法(embedding-based methods)
即通过知识图谱嵌入(KGE)算法(如TransE等)学习实体嵌入,然后将这些嵌入用于后续推荐任务。实际上这也是大家常说的依次训练,换句话说,实体嵌入的学习和推荐模型的学习是依次进行的。

但KGE方法更适合解决图上的问题,如链接预测任务,其与实际的推荐场景并没有融合在一起。

(2)基于路径的方法(path-based methods)
常见的是人工设置一些元路径指导知识图谱进行推荐。但这种方式太依赖人工设计的元路径;而且在部分推荐场景下,实体和关系没有在同一个域,是不能设计元路径的,如新闻推荐(一则新闻会对应多个实体,元路径是设计不了的)。

针对上面的不足,RippleNet:1)将实体嵌入的学习融入到推荐任务中,即常说的联合学习;2)可以自动地根据用户历史记录中的物品发现到达候选物品的可能路径,无需人工设计。

RippleNet

整体任务

RippleNet的输入是一个用户-物品对,输出是用户点击/浏览/购买该物品的概率,对概率排序即可为用户生成个性化推荐列表。

知识图谱遇上推荐系统——RippleNet

; Ripple Set

先直观地理解Ripple Set。Ripple就是波纹、涟漪的意思,RippleNet将用户历史记录中的物品所链接的实体作为seeds(可以理解为激起水花的石子),由seeds不断地向外扩散,得到它们的一阶邻居的集合,称为一阶Ripple Set(实际上存储的是( h , r , t ) (h,r,t)(h ,r ,t )三元组),继续扩散得到二级Ripple Set、三阶…类似水面上的一圈圈波纹,RippleNet以此得名。

知识图谱遇上推荐系统——RippleNet

RippleNet的内部结构

(1)输入用户u u u得到其兴趣集合V u V_u V u ​(实际上是用户历史记录中物品链接的实体集合);输入物品v v v得到物品嵌入,该嵌入根据应用场景,可以为独热编码ID、属性等。

知识图谱遇上推荐系统——RippleNet
(2)计算Ripple Set中头节点(seeds)h i h_i h i ​与物品v v v在关系R i R_i R i ​下的相关性p i p_i p i ​。
知识图谱遇上推荐系统——RippleNet
(3)根据上一步计算的相关性p i p_i p i ​,对尾节点(seeds的一阶邻居)的嵌入进行加权求和,得到一阶Ripple Set中的用户偏好(一阶用户画像)。后面的对更高阶的Ripple Set操作基本一致,最终得到每阶的用户偏好。
知识图谱遇上推荐系统——RippleNet
(4)将各阶的用户偏好加起来得到最终的用户偏好(用户画像)。
知识图谱遇上推荐系统——RippleNet
(5)最后将用户偏好和物品嵌入内积,经过一个s i g m o i d sigmoid s i g m o i d函数得到概率。
知识图谱遇上推荐系统——RippleNet

; 损失函数(loss function)

知识图谱遇上推荐系统——RippleNet
其中第一项是交叉熵,用于推荐任务(CTR预估);第二项是张量分解,用来学习知识图谱的实体和关系嵌入;第三项是正则化项。可以看出RippleNet中推荐任务和知识图谱的嵌入学习任务是联合训练的。

可解释性

假设用户点击了下图中的新闻1~4,这些新闻链接的实体为蓝色字体。将这些实体作为seeds,得到Ripple Set。以”Navy SEAL”为例,计算”Navy SEAL”与其一阶Ripple Set中”Special Forces”和”U.S.”的相关性,然后再计算”Special Forces”和”U.S.”与其下一阶实体的相关性,类比地,最终得到各实体间的相关性(大小由颜色深浅和数字体现)。

可以看出seeds和候选新闻对应的实体有多条路径,如”Navy SEAL–>U.S.–>Donald Trump”。相关性很高的路径就为其提供了可解释性的依据,如图中的”Navy SEAL–>U.S.–>Donald Trump”和”Navy SEAL–>Special Forces–>Gun–>Police”相关性很高,那么就成为最后的解释依据。而且这种路径是不需要人工定义。

知识图谱遇上推荐系统——RippleNet

; 论文链接

《RippleNet: Propagating User Preferences on the Knowledge Graph for Recommender Systems》

Original: https://blog.csdn.net/beilizhang/article/details/109031433
Author: cqu_shuai
Title: 知识图谱遇上推荐系统——RippleNet

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/558353/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球