深度学习中不得不学的Graph Embedding方法

深度学习中不得不学的Graph Embedding方法

这里是「王喆的机器学习笔记」的第十四篇文章,之前已经有无数同学让我介绍一下Graph Embedding,我想主要有两个原因:

  • 一是因为Graph Embedding是推荐系统、计算广告领域最近非常流行的做法,是从word2vec等一路发展而来的Embedding技术的最新延伸;
  • 二是因为已经有很多大厂将Graph Embedding应用于实践后取得了非常不错的线上效果

那我们今天就一起讨论一下Graph Embedding的主要做法和前沿应用。

word2vec和由其衍生出的item2vec是embedding技术的基础性方法(我在之前的文章中也详细介绍了二者的技术原理,王喆:万物皆Embedding,从经典的word2vec到深度学习基本操作item2vec),但二者都是建立在“序列”样本(比如句子、推荐列表)的基础上的。而在互联网场景下,数据对象之间更多呈现的是图结构。典型的场景是由用户行为数据生成的和物品全局关系图(图1),以及加入更多属性的物品组成的知识图谱(图2)。

图1 由用户行为序列生成的物品全局关系图 (引自阿里论文)
图2 由属性、实体、各类知识组成的知识图谱

在面对图结构的时候,传统的序列embedding方法就显得力不从心了。在这样的背景下,对图结构中间的节点进行表达的graph embedding成为了新的研究方向,并逐渐在深度学习推荐系统领域流行起来。

经典的Graph Embedding方法——DeepWalk

早期影响力较大的graph embedding方法是2014年提出的DeepWalk,它的主要思想是在由物品组成的图结构上进行随机游走,产生大量物品序列,然后将这些物品序列作为训练样本输入word2vec进行训练,得到物品的embedding。图3用图示的方法展现了DeepWalk的过程。

图3 DeepWalk的算法流程(引自阿里论文)

如图3,整个DeepWalk的算法流程可以分为四步:

  1. 图a展示了原始的用户行为序列
编辑于 2020-03-24 07:40