RippleNet:知识图谱与推荐系统联合学习 CIKM 2018

在这里插入图片描述
论文链接:https://arxiv.org/pdf/1803.03467.pdf
代码链接:https://github.com/qibinc/RippleNet-PyTorch
参考文档:https://zhuanlan.zhihu.com/p/73716930

导读

将知识图谱特征学习和推荐算法的目标函数结合,使用端到端(end-to-end)的方法进行联合学习。
在这里插入图片描述

1、引言

推荐系统中,协同过滤(Collaborative Filtering,简称CF)根据用户的历史交互数据,并根据用户的潜在共同爱好进行推荐。然而CF算法也有一些问题:用户数据稀疏(Sparsity),以及冷启动(Cold-start)问题。

为了解决这些问题,研究者们提出在CF模型的基础上加入额外信息。比如社交网络、用户/商品属性、图片信息以及文字信息等。本文考虑将知识图谱(Knowledge Graph,KG)作为额外信息,融入到推荐系统中。

前人将KG融合到推荐系统的相关工作,主要分为两种类别:

  • embedding-based methods:万物皆可embedding

Deep Knowledge-aware Network (DKN)中,实体embeddings和词embeddings当做不同的通道,然后用CNN网络将他们两者结合到一起(用来新闻推荐)。

Collaborative Knowledge base Embedding (CKE)中,CF模型结合了知识embeddings、文本embeddings,图片embeddings。

Signed Heterogeneous Information Network Embedding (SHINE) 中,模型将情感网络、社会网络、个人网站都进行深度编码。模型用于名人推荐。

优点:embedding-based方法在利用KG辅助推荐系统表现出很高的灵活性

缺点:但这些方法中采用的KGE(Knowledge Graph Embedding)算法通常更适用于图形内链路预测应用(何为图内链路预测:通过已知的网络节点及网络结构等信息,预测网络中尚未产生连接的两个节点之间产生连接的可能性),而推荐场景我们需要更多的去发现潜在用户感兴趣的点,而不仅仅是利用当前也有的节点连接,所以学习好的实体embeddings对于表征实体间的关系作用不大。

  • path-based method:探索KG中各个实体之间的各种联系,为推荐系统提供额外的指导。

Personalized Entity Recommendation(PER)和Meta-Graph Based Recommendation 将KG视为异构信息网络(Heterogeneous Information networks,HIN),通过关系路径、图表的类型提取基于元路径/元图的潜在特征来表示user和item之间的连接。

优点:path-based 方法以更自然和更直观的方式使用KG。

缺点:但它们严重依赖于手动设计的元路径,这在实践中很难优化。 另一个问题是,在实体和关系不在一个域内的某些场景(例如,新闻推荐)中设计手工制作的元路径是不可能的。

为了解决前人方法中的问题,作者提出RippleNet:

思路:借鉴水波(Ripple)的传播,以user感兴趣的items为种子(seed),在商品知识图谱上,用seed items向外一圈一圈的扩散到其他的items上,这个过程称之为偏好传播(Preference Propagation)。该模型认为外层的items同样属于用户潜在的偏好,因此在刻画user的时候,需要将其考虑进去,而不能仅仅使用观测到的items去表示user偏好。

RippleNet与前人工作的差异:

(1)RippleNet通过偏好传播方法,很自然地将KGE方法融入到推荐系统中;

(2)RippleNet可以从用户历史的item中,发现用户到候选item的可能路径,不需要任何手工设计;

RippleNet 的贡献:

(1)首次将基于embedding-based和path-based的方法结合到基于知识图谱的推荐系统中;

(2)提出了RippleNet模型,这是一个利用知识图谱实现推荐系统的端到端框架,RippleNet通过在KG中偏好传播的方法,不断自动的发现用户的潜在的层级兴趣;

(3)对三个真实世界的推荐场景(电影、图书、新闻)进行了实验,结果证明RippleNet在几个最好的基线上都是有提高的。

2、问题定义

用户集 U = { u 1 , u 2 , … } U = \{ u1, u2, …\} U={ u1,u2,}
项目集 V = { v 1 , v 2 , … } V = \{ v1, v2, …\} V={ v1,v2,}
用户-项目 交互矩阵 Y = { y u v ∣ u ∈ U , v ∈ V } Y = \{ y_{uv} | u ∈ U, v ∈ V\} Y={ yuvuU,vV}
y u v = { 1 , if interaction  ( u , v )  is observed 0 , otherwise y_{uv}=\left\{ \begin{aligned} 1 &,\quad \text{if interaction $(u,v)$ is observed} \\ 0 &,\quad \text{otherwise} \end{aligned} \right. yuv={ 10,if interaction (u,v) is observed,otherwise

知识图谱 G = { ( h , r , t ) ∣ h , t ∈ E , r ∈ R } G = \{ (h,r,t) | h, t ∈ E, r ∈ R \} G={ (h,r,t)h,tE,rR}

在许多推荐场景中,item v ∈ V v ∈ V vV 可能与知识图谱中的一个或多个 entity相关

目标:学习预测函数 y ^ u v = F ( u , v ; Θ ) \hat{y}_{uv} =F( u, v ; Θ ) y^uv=F(u,v;Θ) y ^ u v \hat{y}_{uv} y^uv表示用户 u u u 点击项目 v v v 的可能性

3、RippleNet模型

3.1、水波纹集Ripple Set

定义1(相关实体):给定交互矩阵 Y Y Y和知识图 G G G,用户 u u u k k k-hop相关实体集被定义为: ε u k = { t ∣ ( h , r , t ) ∈ G a n d h ∈ ε u k − 1 } , k = 1 , 2 , ⋯   , H \varepsilon_u^k=\{t|(h,r,t)\in\mathcal{G}\quad and \quad h\in\varepsilon_u^{k-1}\},k=1,2,\cdots,H εuk={ t(h,r,t)Gandhεuk1},k=1,2,,H k = 0 k=0 k=0时,表示用户历史点击项目,被视为KG中用户 u u u的种子集: ε u 0 = V u = { v ∣ y u v = 1 } \varepsilon_u^0=\mathcal{V}_u=\{v|y_{uv}=1\} εu0=Vu={ vyuv=1}定义2(纹波集):用户 u u u k k

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值