Graph Embedding

Random Walk

先介绍一下Random Walk。
Random Walk从图上获得一条随机的路径。Random Walk从一个节点开始,随机沿着一条边正向或者反向寻找到它的邻居,以此类推,直到达到设置的路径长度。

Embedding

Embedding 在数学上表示一个映射关系, F: X -> Y, 也就是一个函数。深度学习中,Embedding 特指用一个低维度向量表示一个实体,可以是一个词(Word2Vec),可以是一个物品(Item2Vec),更或者是网络关系中的节点(Graph Embedding)。

Embedding 拥有很多优点:得到的向量表达维度更低(避免了独热编码带来的稀疏问题),并且表达了实体间内在的关系。

Embedding主要的三个应用方向:

  1. 在深度学习网络中使用 Embedding 层,将高维稀疏特征向量转换成低维稠密特征向量,从而减少后续模型参数量,后续模型可以是深度学习模型,或者传统的机器学习模型;
  2. 作为预训练技术,直接使用别人训练好的 Embedding 向量,与其他特征向量一同输入后续模型进行训练,例如 Word2Vec;
  3. 通过计算用户和物品的 Embedding 相似度,Embedding 可以直接作为推荐系统或计算广告系统的召回层或者召回方法之一,例如 Youtube 推荐系统。

Graph Embedding

Graph Embedding 用低维、稠密、实值的向量表示网络中的节点。目前,Graph Embedding 已经是推荐系统、计算广告领域非常热门的做法。

Word2Vec通过序列(sequence)式的样本:句子,来学习单词的真实含义。仿照 Word2Vec 思想而生的 Item2Vec 也通过Item的组合去生成Item的 Embedding,这里Item的组合也是序列式的,我们可以称他们为“Sequence Embedding”。下图为淘宝用户行为数据生成的Item Graph。

可以看出,Graph Embedding能够生成一些“不存在”的物品关系序列。比如B-E-F。

Graph Embedding早期技术:DeepWalk

简单来说,DeepWalk是Random Walk和Skip-gram的组合。下图是DeepWalk的伪代码。

可以看出,Random Walk负责对图进行采样,获得图中节点与节点的共西现关系,Skip-gram 从关系(也就是采样的序列)中训练节点的 Embedding 向量。

参考链接:
https://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s/7PZ6L1YzPZdiMNK25sUqjg

https://zhuanlan.zhihu.com/p/68247149