Multi-modal Knowledge Graphs for Recommender Systems

1.背景

现有的推荐系统主要分为两种方法,基于内容和协同过滤

基于内容的方法是针对user-item的历史交互信息进行推荐的,协同过滤利用user-item群体的行为交互数据进行推荐,然而协同过滤会存在数据稀疏和冷启动的问题。

因此,近几年的研究将知识图谱引入推荐系统,提供高阶特性,丰富一些隐藏的连接,增强推介系统的可解释性。然而现有的知识图谱仅利用了知识图谱的结构化数据,只关注节点和节点关系,忽略了多模态知识图谱信息。

本文的贡献

开发了新的MKGAT模型,利用多模态知识图谱上的信息传播来获得更好的实体嵌入来进行推荐

通过两个大规模真实数据集进行的实验证明了模型的合理性和有效性

相关工作

作者将多模态信息加入到了知识图谱,并总结了前人使用多模态信息的方法:

基于特征的方法

将模态信息作为实体的辅助特征。通过考虑视觉表示来扩展TransE。可以从知识图谱实体相关联的图像中提取视觉表示。三元组的能量是根据知识图谱的结构和实体的视觉表示来定义的。因此,每个实体必须包含图像属性。该方法忽略了有些实体不包含多模态信息,缺乏部分实际场景的考虑,无法广泛应用

基于实体的方法

将不同的模态信息作为结构化知识的关系三元组,而不是预先确定的特征。在这些著作中,多模态信息被认为是知识图谱的一等公民,然后采用基于实体的方法,利用CNN的KGE方法训练知识图谱嵌入,然而现有的基于实体的方法独立处理三元组,忽略了多模态信息融合,对多模态组不友好

2.模型框架

提出了一种新的模型,多模态知识图谱注意力网络(MKGAT),主要由两个子模块组成(多模态知识图嵌入模块和推荐模块)

在子模块中还是用了两个关键组件:多模态知识图谱编码器和多模态知识图谱注意层。

3.Multi-modal Knowledge Graph Embedding
3.1 Multi-modal Knowledge Graph Entity Encoder(多模态知识图谱实体编码器)

使不同的编码器嵌入每种特定的数据类型

Structured knowledge

考虑以(h,r,t)形式存在的三元组信息。为了将head entity,tail entity和relation r表示为独立的嵌入向量,通过嵌入层传递实体id或关系id来生成密集向量

Image

为了嵌入图像,使编码能够表示这些语义信息,我们使用了ResNet50的最后一层隐藏层,该模型由Imagenet预训练得到。

Texts

文本信息与内容高度相关,以便捕获用户偏好。对于文本实体,我们使用Word2Vec训练词向量,然后应用SIF(Smooth Inverse Frequency,SIF)模型得到一个句子的词向量的加权平均,通过句子向量来表示文本特征。该模型相比使用LSTM对句子编码具有更好的性能。

3.2Multi-modal Knowledge Graph Attention Layer(多模态知识图谱注意层)

沿高阶连接性递归地传播嵌入,此外还利用图注意网络(GATs)的思想,生成级联传播的注意权值,以揭示这种连通性的重要性,由于GATs忽略了KGs之间的关系,不适用于KGs,因此对GATs进行修改,考虑了KGs关系嵌入

Propagation layer(传播层)

通过TransE模型学习知识图谱的结构化表示,将实体h的多模态邻接实体聚合到实体h,丰富实体h的表示。
N h 表示与 h 相连的三元组集合。 e a g g 是一个聚合邻居实体信息的表示向量,是每个三元组表示的线性组合 e a g g = ∑ ( h , r , t ) ∈ N h Π ( h , r , t ) e ( h , r , t ) e ( h , r , t ) 是每个三元组的嵌入,而 Π ( h , r , t ) 是每个 e ( h , r , t ) 的注意力分数,控制 e ( h , r , t ) 的信息量 (1) N_h表示与h相连的三元组集合。e_{agg}是一个聚合邻居实体信息的表示向量,是每个三元组表示的线性组合 e_{agg}=\sum_{(h,r,t)\in{N_h}}Π(h,r,t)e(h,r,t) \tag{1} \\ e(h,r,t)是每个三元组的嵌入,而Π(h,r,t)是每个e(h,r,t)的注意力分数,控制e(h,r,t)的信息量 Nh表示与h相连的三元组集合。eagg是一个聚合邻居实体信息的表示向量,是每个三元组表示的线性组合eagg=(h,r,t)NhΠ(h,r,t)e(h,r,t)e(h,r,t)是每个三元组的嵌入,而Π(h,r,t)是每个e(h,r,t)的注意力分数,控制e(h,r,t)的信息量(1)
为了学习三元组关系的嵌入,通过对实体h,t,关系r嵌入串联进行线性变换来学习这种嵌入:
e ( h , r , t ) = W 1 ( e h ∣ ∣ e r ∣ ∣ e t ) (2) e(h,r,t)=W_1(e_h||e_r||e_t) \tag{2} e(h,r,t)=W1(eh∣∣er∣∣et)(2)
通过关系注意机制实现Π(h,r,t):
Π ( h , r , t ) = L e a k y R e L U ( W 2 e ( h , r , t ) ) (3) Π(h,r,t)=LeakyReLU(W_2e(h,r,t)) \tag{3} Π(h,r,t)=LeakyReLU(W2e(h,r,t))(3)
采用LeakyReLU作为非线性激活函数,然后采用softmax函数对与h相连的所有三元组的系数进行归一化:
Π ( h , r , t ) = e x p ( Π ( h , r , t ) ) ∑ ( h , r ‘ , t ‘ ) ∈ N h e x p ( Π ( h , r ‘ , t ‘ ) ) (4) Π(h,r,t)=\frac{exp(Π(h,r,t))}{\sum(h,r^`,t^`) \in{N_h}exp(Π(h,r`,t`))} \tag{4} Π(h,r,t)=(h,r,t)Nhexp(Π(h,r,t))exp(Π(h,r,t))(4)
Aggregation layer(聚合层)
将实体表示 e h 和对应的 e a g g 聚合为实体 h 的新表示。本文通过两种方法实现聚合函数 f ( e h , e a g g ) 将实体表示e_h和对应的e_agg聚合为实体h的新表示。本文通过两种方法实现聚合函数f(e_h,e_{agg}) 将实体表示eh和对应的eagg聚合为实体h的新表示。本文通过两种方法实现聚合函数f(eh,eagg)
1)ADD聚合
f a d d = W 3 e h + e a g g W 3 为权重矩阵 (5) f_{add}=W_3e_h+e_{agg} \tag{5} \\ W_3为权重矩阵 fadd=W3eh+eaggW3为权重矩阵(5)
2)Concatenation聚合

使用线性转换将实体和聚合实体连接在一起:
f c o n c a t = W 4 ( e h ∣ ∣ e a g g ) W 4 是可训练的模型参数 (6) f_{concat}=W_4(e_h||e_{agg}) \tag{6} \\W_4是可训练的模型参数 fconcat=W4(eh∣∣eagg)W4是可训练的模型参数(6)

3.3 Knowledge Graph Embedding

使用知识图谱嵌入中广泛使用的平移评分函数来训练知识图谱嵌入,当三元组有效时,通过优化平移原则学习如何嵌入每个实体和关系,其中e_h和e_t是来自MKGs注意层的新实体嵌入。三元组(h,r,t)的分数表示:
s c o r e ( h , r , t ) = ∣ ∣ e h + e r − e t ∣ ∣ 2 2 (7) score(h,r,t)=||e_h+e_r-e_t||_2^2 \tag{7} score(h,r,t)=∣∣eh+eret22(7)

4.Recommendation

与知识图谱嵌入模块类似,推荐模块也使用MKGs注意层来聚合邻居实体信息。

5.模型影响和效果

对比KGAT和MKGAT模型在大众点评数据集上的实验结果

具有多模态特征的方法优于具有单模态特征的方法

视觉模态在推荐效果上比文本模态更重要

与KGAT相比,MKGAT模型更好地利用图像信息提高推荐性能,因为MKGAT能更好地将图像实体的信息聚合成item实体

6.结论

本文提出了一种创新型地将多模态知识图谱引入到推荐系统中基于知识图谱的推荐系统——多模态知识图谱注意网络(multimodal Knowledge Graph Attention Network, MKGAT),该模型通过学习实体间关系,并将相邻实体信息聚合到自身,可以更好地利用多模态实体信息,并在实验中验证了模型地合理性和有效性。

【论文阅读笔记】Multi-modal Knowledge Graphs for Recommender Systems相关推荐

  1. 论文阅读笔记—Reasoning on Knowledge Graphs with Debate Dynamics(AAAI,2020)

    这是一篇非常有趣的工作,看完会觉得眼前一亮. 论文标题:Reasoning on Knowledge Graphs with Debate Dynamics 发表于AAAI,2020 动机  很多机器 ...

  2. 【推荐系统】【论文阅读笔记】【survey】Hybrid Recommender Systems: Survey and Experiments

    一.推荐技术简介: 论文链接:https://www.researchgate.net/publication/263377228_Hybrid_Recommender_Systems_Survey_ ...

  3. 【推荐系统->论文阅读】Towards the Next Generation of Recommender Systems(推荐系统综述,下一代推荐系统: 最新技术和可能扩展)

    Towards the Next Generation of Recommender Systems: A Survey of the State-of-the-Art and Possible Ex ...

  4. 《Beta Embeddings for Multi-Hop Logical Reasoning in Knowledge Graphs》论文阅读笔记

    <Beta Embeddings for Multi-Hop Logical Reasoning in Knowledge Graphs>论文阅读笔记 主要挑战贡献: KG上的推理挑战主要 ...

  5. [论文阅读笔记17]A Survey on Knowledge Graph-Based Recommender Systems

    一,题目 TKDE 2020 A Survey on Knowledge Graph-Based Recommender Systems 综述:基于知识图谱的推荐系统 In IEEE Transact ...

  6. [论文阅读笔记15]Recognizing Complex Entity Mentions:A Review and Future Directions

    一,题目 Recognizing Complex Entity Mentions:A Review and Future Directions 识别复杂实体mentions:回顾与未来方向 Dai X ...

  7. 论文阅读笔记:Improving Attacks on Speck32 / 64 using Deep Learning

    论文阅读笔记:Improving Attacks on Speck32 / 64 using Deep Learning 本文通过神经网络利用了减少轮数的 Speck 的差分性质.为此,作者对神经网络 ...

  8. [论文阅读笔记53]2021深度神经方法的关系三元组抽取综述

    1. 题目 Deep Neural Approaches to Relation Triplets Extraction: A Comprehensive Survey Tapas Nayak†, N ...

  9. [论文阅读笔记] Are Meta-Paths Necessary, Revisiting Heterogeneous Graph Embeddings

    [论文阅读笔记] Are Meta-Paths Necessary? Revisiting Heterogeneous Graph Embeddings 购物返利 www.cpa5.cn 本文结构 解 ...

最新文章

  1. 网页学名为html文件,什么是HTML
  2. Java引用计数与实现
  3. 036、Linux下ipmitool命令
  4. 青少年蓝桥杯_2020_steam考试_中级组_第一题
  5. 函数内部定义的tensroflow变量也会被保存
  6. CCNA学习指南第二章
  7. 扬尘监测系统_工地扬尘监测_工地扬尘监测解决方案
  8. 关于 SAP Spartacus 支持不同的环境配置部署到 SAP Commerce Cloud 上的讨论
  9. 切记!职场邮件需注意的细节
  10. 【Flink】Flink 状态恢复报错 StateMigrationException For heap backendsthe new state serializer must not be
  11. SpringBoot:@ConfigurationProperties注解使用与源码
  12. 关于 iOS 中 new Date()的坑
  13. Java非静态内部类中为什么不能有静态变量却可以有常量?
  14. oracle替换字符串replace
  15. [译]Selenium —— 怎样使用FireBug和FirePath
  16. 445端口爆破试验 net use IPC$
  17. Excel VBA快速去除Excel中的所有公式
  18. 如何自给自足获取磁力种子
  19. C语言实现背包与商城的小项目
  20. Linux打印添加水印,Linux 下给图片批量加水印

热门文章

  1. 【Java】Socket网络编程实现内网穿透、端口映射转发、内网穿透上网工具的编写,设置IP白名单防火墙
  2. Qt之图形(QPainter的基本绘图)
  3. 3种风吹图片jquery堆叠图片切换效果插件
  4. Oracle调优之Hint用法整理笔记
  5. 太空射击第09课:精灵动画
  6. TFN S5光纤熔接机,高性价比六马达光纤熔接机
  7. java 线性回归_线性回归算法原理(附java实现)
  8. JSP页面的scriptlet的使用
  9. 给想成为技术领导者的六点建议
  10. 一些不为人知的浏览器使用小秘籍