深度融合 | 当推荐系统遇见知识图谱

2021-06-12  本文已影响0人  科技州与数据州

以下文章来源于NewBeeNLP ,作者上杉翔二

本篇文章继续整理『推荐系统+知识图谱』这个lineup的后续,主要是2020年SIGIR,CIKM,RecSys的相关文章。

关于以前博主整理过的知识图谱文章传送门:

知识图谱用于推荐系统问题(CKE,RippleNet)[1]

知识图谱用于推荐系统问题(MKR,KTUP,KGAT)[2]

深度融合 | 当推荐系统遇见知识图谱

深度融合 | 当推荐系统遇上知识图谱(二)

MVIN

论文:MVIN:Learning Multiview Items for Recommendation

地址:

https://arxiv.org/abs/2005.12516

代码:

https://github.com/johnnyjana730/MVIN/

来自SIGIR2020的文章。现在有很多文章都在推荐系统中引入外部的知识来提升推荐系统的效果,但没有人考虑过多方面的item特性,所以不能非常精确的学习商品表示。

这个意思就是说某一些用户对同一作者的书籍感兴趣,而其他用户则对某一本书题材感兴趣。即在现实世界中,每个用户对给定的项目都有不同的看法视图(views),而在实体视图中,项目表示由KG中连接到它的实体来定义的。这也对应了想要解决多视图的两大问题:

用户视图Graph如何丰富?

实体视图Graph如何细化?

所以作者相应提出multi-view item network (MVIN) ,从user和item来学习多个视角下的商品表示,进而进行商品推荐。

具体对应以上两点的解决方案为:

为了丰富「用户-实体交互」。具体是提出一个用户导向模块去描述每个实体之间关系的重要性。如上面模型图的左边user-entity interaction,论文里面的公式比较复杂,大致就是做以user为中心的多跳GNN聚合(如图中坐下的小蓝框),可以得到:

为了细化「实体-实体交互」。具体提出一个混合层,以进一步改进GCN聚合的实体的嵌入,并允许MVIN从各种分层邻域特征中捕获混合GCN信息。如上面模型图的右边entity-entity interaction,简单来看就是将分层的GCN进行信息对比,以从KG中的内部实体-实体交互中获得全面的特征:

最后再计算分数:

KERL

论文:KERL: A Knowledge-Guided Reinforcement Learning Model for Sequential Recommendation

地址:

https://dl.acm.org/doi/abs/10.1145/3397271.3401134

来自SIGIR2020,如题,这篇论文将KG做到用强化学习控制序列推荐的任务中。加入KG的目的,同样是为了融合知识的信息来加强状态向量的表达能力。

作者认为在序列推荐中,用户偏好的动态变化在强化学习探索过程中更不稳定,仅仅用历史序列的知识是不能充分的指导强化学习的探索过程。

强化学习不做科普,传送门[3]。这里重要的改动为把state变成了三部分,即时序信息ht,历史知识ct,未来知识f,分别对应上图的GRU得到时序,外部知识用KG的TransE得到,未来知识用一个推断网络建模历史知识与未来知识的关联性,,最后拼接三者

另一部分的改动是融合知识与序列的复合奖励函数,Reward有两部分组成一是序列(物品级),二是KG(知识属性级)。

序列。受机器翻译评估工作的启发,作者通过 BLEU 指标,评估预测序列 和真实序列 之间单个商品,以及子序列片断的相似性

KG。直接用余弦函数测量 预测序列和 真实序列之间知识的语义相似性即可。

CKAN

论文:CKAN: Collaborative Knowledge-aware Attentive Network for Recommender Systems

地址:

https://dl.acm.org/doi/abs/10.1145/3397271.3401141

代码:

https://github.com/weberrr/CKAN

同样来自SIGIR2020,这篇文章的论点在于现有的基于知识属性的推荐方法大多关注于如何有效地对知识属性关联进行编码,而没有突出隐藏在用户-物品交互中的关键协同信号。所以提出CKAN来编码协同信号。

模型架构如上图,可以分为4个部分:

Collaboration Propagation。可以看到user的表示是很多个item set,item的表示是通过user得到的item表示,这一点和RippleNet是一致的。

Knowledge Graph Propagation。在KG中沿着链路传播,从而得到扩展的实体集,这里也和RippleNet差不多。

Knowledge-aware Attentive Embedding。提出了一种基于知识感知的动态嵌入方法,通过Attention去区分不同的头部实体和关系时尾部实体所具有的不同意义,这里直接做个attention就好。

Prediction。聚合方式有3种,加和,池化和拼接。

KRED

论文:KRED: Knowledge-Aware Document Representation for News Recommendations

地址:

https://arxiv.org/abs/1910.11494

代码:

https://github.com/weberrr/CKAN

来自RecSys2020,将KG扩展填充到新闻推荐中,技术上比较像 KG Transformer。一般来说新闻文章通常包含名人或组织等知识实体,用KG来增强任意文档表示是非常合适的,但是现有方法1BERT这种大规模不考虑实体;2DKN只纳入标题,扩展全文效率低;3实体在文章中出现的位置,频率,类别等对理解新闻很重要。

模型架构如上图,首先是用KGAT来表示每个实体,然后:

Context Embedding Layer。加入实体Position Encoding(实体的位置),Frequency Encoding(实体出现频率),Category Encoding(实体的类别)。

Information Distillation Layer。实体的最终重要性不仅由它自己的消息决定,还受文章中同时出现的其他实体和文章的主题的影响。所以这里用Transformer来优化表征。

Multi-Task Learning。最后做一个多任务:包括个性化推荐,项目到项目推荐、新闻流行预测、新类别预测和本地新闻检测等等。

GAEAT

论文:GAEAT: Graph Auto-Encoder Attention Networks for Knowledge Graph Completion

地址:

https://dl.acm.org/doi/10.1145/3340531.3412148

代码:

https://github.com/TomersHan/GAEAT

来自CIKM2020的小短文,虽然比较短感觉还可以。motivation是一般学习kg只能学到三元组知识,却不能学到内在的关系(即不能推理和其他三元组内的复杂关系)。所以作者想表达实体和关系特征,同时挖掘实体-关系的交互作用。具体来说,GAEAT模型就是简单的attention的GAE学其内在关系。

模型图如上,第一个部分直接学三元组的Embeddin

然后接一个GAE[4],即图自编码器,分为两块:

编码器:使用图注意网络得到实体和关系特征,这里用的也是实体多跳。

解码器:利用这些已经提取到的三元组内的潜在特征,DistMult算分数

本文参考资料

[1]知识图谱用于推荐系统问题(CKE,RippleNet):

https://blog.csdn.net/qq_39388410/article/details/106430685

[2]知识图谱用于推荐系统问题(MKR,KTUP,KGAT):

https://nakaizura.blog.csdn.net/article/details/106428258

[3]传送门:

https://nakaizura.blog.csdn.net/article/details/88795124

[4]GAE: https://nakaizura.blog.csdn.net/article/details/107895198

扩展阅读:如何从0开启地震深度学习科研之路

如果喜欢请点赞或关注交流

上一篇 下一篇

猜你喜欢

热点阅读