在互联网背景下,数据对象之间更多的是以图结构的方式呈现的,典型的例子就是由用户行为序列产生的物品关系图,以及由属性和实体之间组成的知识图谱(knowledge graph)。在面对图结构时候,传统的序列embedding方法就显得力不从心了,因此graph embedding 就成了最新的研究方向。
graph embedding是一种对图结构中的节点进行embedding编码的方法,最终生成的节点Embedding 向量一般包含图的结构信息和邻近节点的局部相似性信息。
一、Deep Walk—最早最基础的Graph Embedding 方法
DeepWalk 的主要思想是在由物品组成的图结构上进行随机游走,产生大量物品序列,然后将这些物品序列作为训练样本输入 Word2vec 进行训练,得到物品的 Embedding。因此,DeepWalk 可以被看作连接序列 Embedding 和 Graph Embedding 的过渡方法。
DeepWalk的算法流程为:
上述DeepWalk的跳转概率是跳转边的权重占所有相关出边权重之和的比例。如果物品关系图是无向无权图,那么权重 M i j M_{ij} Mij的将为常数1。
二、Node2vec – 同质性和结构性的权衡
Node2vec 通过调整随机游走权重的方法使 Graph Embedding 的结果更倾向于体现网络的同质性 (homophily) 或结构性 (structural equivalence)。
网络的同质性和结构性在推荐系统中可以被很直观的解释。同质性相同的物品很可能是同品类、同属性,或者经常被一同购买的商品,而结构性相同的物品则是各品类的爆款、各品类的最佳凑单商品等拥有类似趋势或者结构性属性的商品。毫无疑问,二者在推荐系统中都是非常重要的特征表达。由于 Node2vec 的发掘不同图特征的能力,甚至可以把不同 Node2vec 生成的偏向 “结构性” 的 Embedding 结果和偏向 “同质性” 的 Embedding 结果共同输人后续的深度学习网络,以保留物品的不同图特征信息。
Node2vec主要通过节点之间的跳转概率来控制BFS和DFS的倾向性。Node2vec 重新定义了节点间的跳转概率。下图所示为 Node2vec 算法已经从节点 t 跳转到了节点 v,并正在估计从节点 v 跳转到周围各点的跳转概率。
三、EGES – 阿里巴巴的综合性 Graph Embedding 方法
EGES (Enhanced Graph Embedding with Side Information) 的基本思想是在 DeepWalk 生成的 Graph Embedding 基础上引入补充信息 (side information)。
单纯使用用户行为生成的物品相关图,固然可以生成物品的 Embedding,但是如果遇到新加入的物品,或者没有过多互动信息的 “长尾” 物品,则推荐系统将出现严重的冷启动问题。为了使 “冷启动” 的商品获得 “合理” 的初始 Embedding, 阿里巴巴团队通过引入更多补充信息来丰富 Embedding 信息的来源,从而使没有历史行为记录的商品获得较合理的初始 Embedding。
生成 Graph Embedding 的第一步是生成物品关系图,通过用户行为序列可以生成物品关系图,也可以利用 “相同属性” “相同类别” 等信息建立物品之间的边,生成基于内容的知识图谱。而基于知识图谱生成的物品向量可以被称为补充信息 Embedding 向量。当然,根据补充信息类别的不同,可以有多个补充信息 Embedding 向量。
对于融合一个物品的多个 Embedding 向量:
- 最简单的方法是加入平均池化层,将不同 Embedding 平均起来;
- 为了防止简单的平均池化导致有效 Embedding 信息的丢失,阿里巴巴在引入注意力机制,对每个 Embedding 加上了权重
a
i
a_i
ai ,然后将加权平均后的 Embedding 向量输入 softmax 层,通过梯度反向传播求得每个 Embedding 的权重
a
i
a_i
ai(在实际的模型中,阿里巴巴采用了
e
a
i
e^{a_i}
eai 而不是
a
i
a_i
ai 作为相应 Embedding 的权重,主要原因有二:一是避免权重为 0; 二是因为在梯度下降过程中有良好的数学性质)。
参考资料
- 深度学习推荐系统 王喆编著 中国工信出版集团
- 推荐系统 (四): Embedding 技术在推荐系统中的应用