论文浅尝 | 基于知识图谱注意力网络的商品推荐

论文笔记整理:康矫健,浙江大学计算机科学与技术系,硕士研究生。


论文链接:https://arxiv.org/pdf/1905.07854.pdf

发表会议:KDD 2019

任务定义

输入:协同过滤知识图谱

具体来说包括两个部分,其一是用户和商品的二部图

其二是原始的知识图谱

输出:预测用户u喜爱商品 i 的概率

动机

  1. KG 存在的商品之间的高阶连接关系,比如商品 1 和商品 2 是同一个导演,对推荐系统是有作用的

  2. 在引入 KG 的两类方法中,Meta-Path based Method 需要 domain knowledge 预先设计好 Meta-Path,且并非端到端的训练过程

  3. 而 Regularization-based methods 缺乏显式地捕获商品之间的高阶连接关系

基于以上 3 点,本篇论文作者将 KG 引入到推荐系统,提出了一个新的模型 KGAT,该模型能够以一种端到端的方法,显式地捕获商品之间的高阶连接关系,从而克服了之前 KG-Based Method 的不足之处

                                          

模型

1.     Embedding Layer

基于 TransR,使得真实的 triplet 尽可能地满足,而非真实的 triplet尽可能地不满足该关系,损失函数如下:

2.     Attentive Embedding Propagation Layers

Information Propagation: 用于聚合周围节点的信息

其中

Knowledge-aware Attention:聚合时候采用 knowledge attention的方式,而不是 averaging pooling 的方式

Information Aggregation:将聚合过来的周围节点信息和节点自身的信息结合在一起作为更新后的节点信息。这里边作者提供了三种方式,后续也有对照实验比较这几种方式的优劣


High-order Propagation:聚合多次就可以得到 high order 的 embedding。


3.     Prediction Layer

将L+1层的embedding拼接在一起作为最终user和item的embedding,并用两者的内积作为最终的预测值

4.     Optimization

Loss 包括两个部分,一个是KG embedding的loss,还有一个是商品推荐的loss,因此模型是一个联合训练的过程

实验分析

1.     Performance Comparison

可以看到,本文提出的KGAT在recall和ndcg指标上都不同程度地好于目前效果最好的模型,具体结果如下:

2.     Performance Comparison w.r.t. Interaction Sparsity Levels

在不同sparsity设定下,KGAT均好于当前所有模型

3.     Effect of Model Depth

可以看出,在大多数情况下,当KGAT的层数达到4层时,效果最好,证明了high order信息被我们有效地捕获到了

4.     Effect of Aggregators

 可以发现,Bi-Interaction的聚合方式能够达到最好的performance

5.     Effect of Knowledge Graph Embedding and Attention Mechanism

可以发现,缺少了KG embedding或者attention mechanism之后,模型性能都在一定程度上有所下降,证明了这两个模块是有用的。

6.     Case Study

根据左图的 attention 值,可以发现给用户 u208 推荐商品 i4293 是由于用户 u208 曾经购买过商品 i1827,且商品 i1827 和商品 i4293 有共同的作者,这很明显为模型提供了一定程度的可解释性。

 


 

OpenKG

开放知识图谱(简称 OpenKG)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。

点击阅读原文,进入 OpenKG 博客。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/479440.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 动态调试技术原理及实践

断点调试是我们最常使用的调试手段,它可以获取到方法执行过程中的变量信息,并可以观察到方法的执行路径。但断点调试会在断点位置停顿,使得整个应用停止响应。在线上停顿应用是致命的,动态调试技术给了我们创造新的调试模式的想象…

非常适合初学者的机器学习的数学基础笔记.pdf

本文推荐一份机器学习数学基础专辑,非常适合初学者入门,文末提供下载。机器学习,需要一定的数学基础,也需要一定的代码能力。机器学习从业者数学基础不扎实,只会用一些工具和框架,相当于某些武术家只会耍套…

LeetCode 1094. 拼车

文章目录1. 题目2. 解题1. 题目 假设你是一位顺风车司机,车上最初有 capacity 个空座位可以用来载客。由于道路的限制,车 只能 向一个方向行驶(也就是说,不允许掉头或改变方向,你可以将其想象为一个向量)。…

MySQL的锁机制和加锁原理

原文链接:https://blog.csdn.net/qq_38238296/article/details/88362999 文章目录 MySQL的锁机制和加锁原理1.行锁2.表锁3.页锁4.乐观锁和悲观锁4.1悲观锁4.2乐观锁5.1InnoDB锁的特性 6.Record Lock、Gap Lock、Next-key Lock锁6.1.Record Lock6.2.Gap Lock6.2.​…

CVPR 2019轨迹预测竞赛冠军方法总结

背景 CVPR 2019 是机器视觉方向最重要的学术会议,本届大会共吸引了来自全世界各地共计 5160 篇论文,共接收 1294 篇论文,投稿数量和接受数量都创下了历史新高,其中与自动驾驶相关的论文、项目和展商也是扎堆亮相,成为本…

TSNE画图

TSNE画图 2D图 from sklearn.manifold import TSNE import matplotlib.pyplot as plt import numpy as np# 10条数据,每条数据6维 h np.random.randn(10, 6) # 使用PCA降维到2维 tsne TSNE(n_components2, initpca, random_state0) result_2D tsne.fit_transfo…

深入探讨:为什么要做特征归一化/标准化?

文 | shine-lee源 | CSDN本文解读了一项数据预处理中的重要技术——特征归一化,提出并解答了5个相关问题,同时分析了相关方法和适用场景。写在前面Feature scaling,常见的提法有“特征归一化”、“标准化”,是数据预处理中的重要技…

LeetCode 950. 按递增顺序显示卡牌(deque)

文章目录1. 题目2. 解题1. 题目 牌组中的每张卡牌都对应有一个唯一的整数。你可以按你想要的顺序对这套卡片进行排序。 最初,这些卡牌在牌组里是正面朝下的(即,未显示状态)。 现在,重复执行以下步骤,直到…

技术动态 | 知识图谱从哪里来:实体关系抽取的现状与未来

本文作者为:韩旭、高天宇、刘知远。转载自刘知远老师的知乎专栏,文章链接:https://zhuanlan.zhihu.com/p/91762831最近几年深度学习引发的人工智能浪潮席卷全球,在互联网普及带来的海量数据资源和摩尔定律支配下飞速提升的算力资源…

Android 兼容 Java 8 语法特性的原理分析

本文主要阐述了Lambda表达式及其底层实现(invokedynamic指令)的原理、Android第三方插件RetroLambda对其的支持过程、Android官方最新的dex编译器D8对其的编译支持。通过对这三个方面的跟踪分析,以Java 8的代表性特性——Lambda表达式为着眼点…

由Actvity启动模式之SingleInstance引起的坑的反思

以前对于Activity的启动模式只限于文字说明理解的层面,但最近的一个问题让我对启动模式有了更深的了解。 Activity有四大启动模式:standard,singleTop,singleTask,singleInstance,这些启动模式的特点就不在这里细说,主要说一下SingleInstanc…

“李宏毅老师对不起,我要去追这门美女老师的课了” ,台大陈蕴侬深度学习课程最新资料下载...

估计很多同学看到台大首先想到是李宏毅老师的“深度学习人类语言处理”课程,不过这次我们说的是台湾大学陈蕴侬老师的“应用深度学习”课程,这门课程我们之前推荐过,不过主要给大家推荐的是课程视频和课件资源。前段时间,我把这门…

超级好用的使用python批量更新MYsql,速度从一万条需要一天变道一万条需要10分钟左右

推荐网址:https://www.jb51.net/article/100747.html MySQL批量插入的语法为: UPDATE nine_tupleSET SENTI_VALUE CASE N_T_ID WHEN 1 THEN ‘1.57’ WHEN 2 THEN ‘1.3’ WHEN 3 THEN ‘1.2’ END WHERE N_T_ID IN (1,2,3)主要思想:将42W条…

论文浅尝 | 使用位置敏感的序列标注联合抽取实体和重叠关系

论文笔记整理:余海阳,浙江大学硕士,研究方向为知识图谱、自然语言处理。链接:https://wvvw.aaai.org/ojs/index.php/AAAI/article/view/4591动机之前的联合抽取实体以及实体间的关系的方法,主要是采用管道模型&#xf…

LeetCode 938. 二叉搜索树的范围和(二叉树遍历+搜索剪枝)

文章目录1. 题目2. 解题递归剪枝中序遍历循环剪枝1. 题目 给定二叉搜索树的根结点 root,返回 L 和 R(含)之间的所有结点的值的和。 题目的意思,节点的值在[L, R]这个区间内,就加到结果里,求所有符合条件的…

OneData建设探索之路:SaaS收银运营数仓建设

背景 随着业务的发展,频繁迭代和跨部门的垂直业务单元变得越来越多。但由于缺乏前期规划,导致后期数仓出现了严重的数据质量问题,这给数据治理工作带来了很大的挑战。在数据仓库建设过程中,我们总结的问题包括如下几点&#xff1a…

Android远程服务与本地服务的特点以及功能差异

最近又重新看了点IPC的相关知识,以前看过不少Binder的知识,看到c层思路就很模糊了,回头再看也算是一种学习。 IPC全称为:interprocess communication内部进程间通信,官方地址:http://developer.android.com/intl/zh-c…

svn中文语言包安装(最详细步骤)+Language Pack+TortoiseSVN 安装

原文链接:https://blog.csdn.net/massillon/article/details/102780782 svn中文语言包安装(最详细步骤) 一. 查看自己的SVN 版本(这里省略也可以,同事1.9版本的直接在官网下载的语言包也能用,区别对待把,可以先直接在官网下载,不行再去找对应版本语言包) 1.打开SVN找…

我拿模型当朋友,模型却想泄漏我的隐私?

文 | 阿毅编 | 小轶相信大家对Facebook–Cambridge Analytica隐私泄露事件都还有印象。这事儿在当时可谓爆炸性新闻,激起了公众对数据隐私的强烈关注,也间接影响了美国总统选举结果(这不是重点)。不过从事后诸葛亮来看&#xff0c…

论文浅尝 | SPARQL 语言的 ASK 查询表达性研究进展

论文作者之一:杨炫兴,天津大学博士生。链接:http://cic.tju.edu.cn/faculty/zhangxiaowang/publication/ASK.pdf动机SPARQL是万维网联盟(World Wide Web Consortium,简记W3C)推荐的知识图谱标准查询语言&am…