热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

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

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


论文链接: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 博客。



推荐阅读
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • WhenIusepythontoapplythepymysqlmoduletoaddafieldtoatableinthemysqldatabase,itdo ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • IOS开发之短信发送与拨打电话的方法详解
    本文详细介绍了在IOS开发中实现短信发送和拨打电话的两种方式,一种是使用系统底层发送,虽然无法自定义短信内容和返回原应用,但是简单方便;另一种是使用第三方框架发送,需要导入MessageUI头文件,并遵守MFMessageComposeViewControllerDelegate协议,可以实现自定义短信内容和返回原应用的功能。 ... [详细]
  • 本文介绍了Oracle存储过程的基本语法和写法示例,同时还介绍了已命名的系统异常的产生原因。 ... [详细]
  • 使用圣杯布局模式实现网站首页的内容布局
    本文介绍了使用圣杯布局模式实现网站首页的内容布局的方法,包括HTML部分代码和实例。同时还提供了公司新闻、最新产品、关于我们、联系我们等页面的布局示例。商品展示区包括了车里子和农家生态土鸡蛋等产品的价格信息。 ... [详细]
  • 本文介绍了2015年九月八日的js学习总结及相关知识点,包括参考书《javaScript Dom编程的艺术》、js简史、Dom、DHTML、解释型程序设计和编译型程序设计等内容。同时还提到了最佳实践是将标签放到HTML文档的最后,并且对语句和注释的使用进行了说明。 ... [详细]
  • 本文介绍了Foundation框架中一些常用的结构体和类,包括表示范围作用的NSRange结构体的创建方式,处理几何图形的数据类型NSPoint和NSSize,以及由点和大小复合而成的矩形数据类型NSRect。同时还介绍了创建这些数据类型的方法,以及字符串类NSString的使用方法。 ... [详细]
  • 三、查看Linux版本查看系统版本信息的命令:lsb_release-a[root@localhost~]#lsb_release-aLSBVersion::co ... [详细]
author-avatar
桃Z夭夭
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有