本文内容
主要内容: KGAT这篇论文代码的一些注释和相关信息
次要内容: 知识图谱+推荐系统+深度学习的一些入门资料
为什么写这篇文章
进入研究生阶段所选的方向是知识图谱+推荐系统+深度学习, 然后将这几天看的东西做一个整理
知识图谱+深度学习
前言
将知识图谱引入推荐系统的工作分为两类:
以LibFM[1]为代表的通用的基于特征的推荐方法(generic feature-based methods)。这类方法统一地把用户和物品的属性作为推荐算法的输入。例如,LibFM将某个用户和某个物品的所有属性记为x,然后令该用户和物品之间的交互强度y(x)依赖于属性中所有的一次项和二次项:
以PER [2]、MetaGraph[3]为代表的基于路径的推荐方法(path-based methods)。该类方法将知识图谱视为一个异构信息网络(heterogeneous information network),然后构造物品之间的基于meta-path或meta-graph的特征。简单地说,meta-path是连接两个实体的一条特定的路径,比如“演员->电影->导演->电影->演员”这条meta-path可以连接两个演员,因此可以视为一种挖掘演员之间的潜在关系的方式。这类方法的优点是充分且直观地利用了知识图谱的网络结构,缺点是需要手动设计meta-path或meta-graph,这在实践中难以到达最优;同时,该类方法无法在实体不属于同一个领域的场景(例如新闻推荐)中应用,因为我们无法为这样的场景预定义meta-path或meta-graph。
微软的两篇入门介绍
对第二篇文章的Ripple Net的补充: 【论文笔记】Ripple Net:融合知识图谱的推荐模型
知识图谱特征学习
论文 Knowledge Graph Embedding: A Survey ofApproaches and Applications
对上面这篇文章的中文介绍, 知识图谱嵌入(KGE):方法和应用的综述
KGAT
官方
KGAT中文笔记
#PaperCarrier:KGAT | 知识图注意力网络推荐
这两篇文章把论文思想都写出来了, 基本没什么遗漏的
Trans系列
用来学习实体和关系embedding的一些算法整理
知识图谱嵌入的Translate模型汇总(TransE,TransH,TransR,TransD)
KGAT调试环境搭建
下面dockerfile文件未经测试, 但大体就是这样的过程
1 | FROM ubuntu:18.04 |
KGAT相关代码解释
详细看这 -> Link, 这里只保存了几个我添加注释的文件