【导读】这个是CIKM2018的论文,论文提出了一种RippleNet结构,是一个能够把知识图谱(KG)自然地融入推荐系统(RS)的一个端到端的框架。类似于水面上的波纹一圈又一圈的向外扩展一样,RippleNet可以在以三元组(实体,关系,实体)构成的知识图谱(KG)上沿着实体与实体之间的联系去寻找user潜在的喜好,好比水波一圈又一圈的扩散,逐步迭代寻找最有可能click的item.
输入:user-item pairs
输出:user点击item的概率
动机
尽管collaborative filtering(CF) 算法已经在解决这个问题上取得了很大的成功,但是它本身依旧存在交互矩阵稀疏性和冷启动的问题。而加入一些辅助信息可以有效的解决这个问题。在各种类型的辅助信息中。KG在实体方面具有得天独厚的优势:
KG可以提供相关实体间的语义关系,通过发掘这层联系有助于提升推荐的items的精度。
KG由各种类型的关系组成,有助于探寻user的深层次兴趣点和增加推荐项目的选择性。
KG把user的历史记录和推荐结果联系到一起,使得个性化推荐有了explainability.
KG-aware recommendation
embedding-basedmethods:用KGE(knowledge graph embedding)对KG预处理,并把学习学习到的entity embedding结合到推荐系统框架中。以Deep Knowledge-aware Network(DKN)为例,DKN把实体embedding和word embedding当做不同的通道,然后设计一个CNN网络把他们结合到一起用于新闻推荐。
path-basedmethods:通过在KG中探索实体之间各种不同的联系来为推荐提供额外的指导。缺点主要是(1)严重依赖手动设计meta-paths,而这在实际当中很难去优化。(2)在一些实体和关系不在同一个域中的场景不可能去手动设计meta-paths。
基于二者的局限性提出了RippleNet。(1)RippleNet通过perference propagation把KGE方法用到了推荐中。(2).RippleNet可以根据user的历史点击记录自动寻找候选item的path,不用手动设置。
RippleNet框架
1.Framework
对于RippleNet:给定交互矩阵Y和知识图谱G,目标是学习一个预测函数F来预测用户u对项目v的点击概率,其中Θ为F的参数:
参数表示:
user:U = {u1,u2,u3.....}
item:V = {v1,v2,v3......}
user-item交互矩阵Y = {yuv|u∈U,v∈V},
知识图谱G用三元组表示:(h,r,t),其中h,t∈E,r∈R。E是图谱中的实体,即entity,R为图谱中的关系,即relation.给定交互矩阵和知识图谱,用户user的k-hop相关实体集定义为:
2.Ripple Set
在Ripple set中随着hop数量的增加,每一轮hop中user的潜在爱好的权重也会随之减小。
3.PreferencePropagation
损失函数
损失函数分为三部分:
第一部分
是交互矩阵Y(隐式反馈矩阵)和RippleNet预测结果之间的交叉熵。
第二部分表示学习到的特征向量多大程度上可以代表原来知识图谱KG的结构。
第三部分用来防止过拟合的正则项
数据集处理
实验结果
RippleNet基于三种数据集进行评测,分别是movie,book,news recommendation
Baselines :
CKE: 表现差于其他baselines
SHINE:在movie和book数据集上的表现好于在news数据集
DKN:在新闻推荐中的表现好于movie和book
PER: 在movie和book推荐中差强人意
LibFM和Wide&Deep:因为在算法中充分利用了KG,表现可以
RippleNet:在三种数据集上表现最佳
从图4可知,当Ripple set的大小为32时,Movie推荐的AUC表现最好
当Ripple set的大小为16时,Book推荐的AUC表现最好
当Ripple set的大小为32时 news推荐的AUC表现最好
从图5可知,当hop number为2时,Movie推荐的AUC表现最好
当hop number为3时,Book推荐的AUC表现最好
当hop number为3时,News推荐的AUC表现最好
部分代码解析
原文链接:
https://arxiv.org/abs/1803.03467
代码链接:
https://github.com/hwwang55/RippleNet
-END-
专 · 知
专知《深度学习:算法到实战》课程全部完成!520+位同学在学习,现在报名,限时优惠!网易云课堂人工智能畅销榜首位!
欢迎微信扫一扫加入专知人工智能知识星球群,获取最新AI专业干货知识教程视频资料和与专家交流咨询!
请加专知小助手微信(扫一扫如下二维码添加),加入专知人工智能主题群,咨询《深度学习:算法到实战》课程,咨询技术商务合作~
请PC登录www.zhuanzhi.ai或者点击阅读原文,注册登录专知,获取更多AI知识资料!
点击“阅读原文”,了解报名专知《深度学习:算法到实战》课程