it编程 > 开发工具 > IDE

【kg推荐->精读】RippleNet: Propagating User Preferences on the Knowledge Graph for Recommender Systems

104人参与 2024-08-05 IDE

ripplenet

ripplenet: propagating user preferences on the knowledge graph for recommender systems

abstract

为了解决协同过滤的稀疏性和冷启动问题,通常利用side information,比如social networks,item attributes。

为了解决基于embedding和基于path的knowledge-aware recommendation的局限性,提出了ripplenet。ripple名为涟漪,模型通过自动地、迭代地延伸用户的潜在兴趣(沿着kg的links),促进 用户偏好在knowledge entities上的传播。因此,用户历史点击item的多个“ripples”(涟漪)被叠加,形成用户对候选item的偏好分布,用于预测最终点击的概率。

keywords

1 introduction

🔆基于kg的推荐的3个好处

  1. kg引入了item间的语义关系,有助于发现它们的潜在联系
  2. kg由多种类型的关系组成,有助于扩展用户兴趣、增加推荐item的多样性
  3. kg将用户的历史记录和推荐记录连接起来,为推荐带来可解释性

现有的kg分为2类:

使用knowledge graph embedding(kge) [35]预处理kg,并将学习到的entity embedding结合到推荐框架中去。例如dkn[33], cke[43], shine[32]。

这种方法灵活性高,但kge方法更适合in-graph应用,比如link prediction,而不是推荐[35]。

探索kg中items之间的各种连接模式,为推荐提供指导。例如per[42], meta-graph based recommendation[45]将kg视为异构信息网络(hin),并提取基于元路径/元图的潜在特征,以表示用户和项目之间沿着不同类型的关系路径/图的连通性。

这种方法更自然、直观,但是严重依赖手动设计的元路径,在实践中很难优化。或者说有些场景不可能手动设计元路径。


为了解决以上局限,提出了ripplenet

模型用于ctr预测,输入:user-item对;输出:user 点击(engaging) item的概率。

模型的关键思想:preference propagation。对于user,模型将他的历史兴趣作为kg中的seed set,然后 沿着kg的连接 迭代地 扩展用户的兴趣。,以发现他对于 候选item 的hierarchical potential interests(分层潜在兴趣)。

preference propagation与涟漪做类比,多个“涟漪”叠加,形成用户在kg上的最终偏好分布。

ripplenet的优点(结合了上述2种方法的优点):

  1. 使用kge方法用于preference propagation。
  2. 从用户历史记录中的item到候选item,可以自动地发现可能路径,不需要手工设计。

2 problem formulation

user-item interaction mtrix y

knowledge graph g \mathcal{g} g,(h, r, t)三元组

问题描述:给定y和 g \mathcal{g} g

在这里插入图片描述

给定用户u,item v, θ \theta θ是函数参数,返回u是否点击v的概率。

3 ripplenet

3.1 framework

ripplenet框架如图2所示。输入:用户u,item v。输出:u点击v的预测概率。

对于输入用户u,他的历史兴趣集 v u \mathcal{v}_u vu作为kg的seeds,然后沿着link扩展,形成ripple sets s u k ( k = 1 , 2 , . . . , h ) \mathcal{s}^k_u (k = 1,2,..., h) suk(k=1,2,...,h)。ripple set s u k \mathcal{s}^k_u suk是距离seed set v u \mathcal{v}_u vu k-hop的set of knowledge triples。

ripple sets和item embedding(黄色块)迭代交互,以获得u对v的responses(绿色块),之后将其组合形成最终的user embedding(灰色块)。最后,使用u的embedding和v的embeddng,计算预测概率 y ^ u v \hat{y}_{uv} y^uv

在这里插入图片描述

3.2 ripple set

kg可以让很多实体联系在一起,如图3所示。

在这里插入图片描述

为了根据kg来描述用户的hierarchically extended preference(分层扩展偏好),ripplenet递归地定义了针对用户u的k-hop相关实体集,如下所示:

在这里插入图片描述

其中 ε u 0 \varepsilon^0_u εu0表示user点击过的item = seed set。(其实从图2就很好理解了)

在这里插入图片描述

模型借用“ripple”这个概念有两层含义:

  1. 用户对item的潜在兴趣从历史偏好开始,从近到远逐层传播
  2. 其强度随着跳数k的增加而减弱,如图3

还有一个关心的问题是,随着跳数k的增加,它们的大小可能会变得太大。如何解决?

  1. kg中大量实体是汇入实体(sink entities),无outgoing links,比如“2004”、“pg-13”。
  2. 我们还可以局限场景相关的类别,比如例子中只选择与firm相关的类别
  3. 我们不会设置太大的最大跳数h,不然会带来很多噪声
  4. 我们可以固定 邻居集的大小。

3.3 preference propagation

在这里插入图片描述

在这里插入图片描述

p i可以被视为在item v和 在关系r i空间中测量实体h i 的相似性。

在这里插入图片描述

t i为tail的embedding; o u 1 o^1_u ou1看成对于item v的用户u历史记录 v u \mathcal{v}_u vu的1-order response。

通过等式4和5的操作,用户的兴趣沿着 s u 1 s^1_u su1中的links 从其历史集合 v u \mathcal{v}_u vu转移到set of 1-hop relevant entities ε u 1 \varepsilon^1_u εu1,这在ripplenet中称为preference propagation

在这里插入图片描述

通过迭代执行,v替换为 o u 1 o^1_u ou1,等等等等,就可以获得 s u i s^i_u sui,i=1, …, h。则user u对于item v的embedding是通过组合所有order来计算的。理论上讲最后一跳包含了以前跳的所有信息,但是还是要加起来,因为它们可能被稀释了。

在这里插入图片描述

最后,将用户embedding和项目embedding结合起来,以输出预测的点击概率。 σ ( x ) \sigma(x) σ(x)是sigmoid函数。

3.4 learning algorithm

xxx(有关如何训练模型)

q1. 里面有用到贝叶斯定理,具体作用?

3.5 discussion

3.6 links to existing work

q2. 用到了很多另外的技术,比如attention,knowledge graph embedding,后面要学

4 experiments

5 conclusion and future work

我的疑问/总结

q1-q2

推荐理论视频:b站

(0)
打赏 微信扫一扫 微信扫一扫

您想发表意见!!点此发布评论

推荐阅读

【计算机视觉 | 目标检测】术语理解6:ViT 变种( ViT-H、ViT-L & ViT-B)、bbox(边界框)、边界框的绘制(含源代码)

08-05

【图像处理高级编程】-真彩色转256 色源程序

08-05

分享12个免费AI一键生成PPT的网站【2024年最新】

08-05

《AI编程类工具之六——CodeWhisperer》

08-04

调用openai 的文生图功能,用中文制作图片

08-04

注册中心 Eureka; Ribbo - 负载均衡; 负载均衡策略 ;注册中心的配置集群, 创建 namespace,配置命名空间,nacos添加配置文件,从nacos拉取配置等相关的操作

08-06

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论