Graph Embedding用于处理互联网中的图数据——社交网络、知识图谱、行为关系类型图数据。
1、DeepWalk——基于随机游走的Graph Embedding
DeepWalk 是一种用于学习图(网络)中节点的低维向量表示(即节点嵌入)的算法。
DeepWalk 的核心思想是利用随机游走(Random Walk)来生成节点的序列,这些序列类似于自然语言处理中的句子。然后,这些序列被用作输入到一个类似 Word2Vec 的模型中,以学习每个节点的向量表示。
DeepWalk可以被看作连接序列embedding和graph embedding之间的过渡方法。
1.1、步骤
- 随机游走:
- 对图中的每个节点进行多次固定长度的随机游走,产生一系列节点序列。
- 这些序列反映了节点之间的邻近性和连接模式。
- 序列建模:
- 使用 Word2Vec 中的 Skip-Gram 模型或其他相似的模型来处理这些序列。
- 目标是预测给定节点周围的邻居节点,从而学习到节点的向量表示。
1.2、推荐系统实现步骤
- 首先基于原始的用户行为序列来构建物品关系图——转移概率矩阵
- 采用随机游走的方式随机选择起始点,重新产生物品序列;
- 将2)这些随机游走生成的物品序列输入Word2vec模型,生成最终的物品Embedding向量。
2、Node2vec——在同质性和结构性间权衡
Node2vec 通过调整随机游走跳转概率的方法,让 Graph Embedding 的结果在网络的同质性(Homophily)和结构性(Structural Equivalence)中进行权衡,可以进一步把不同的 Embedding 输入推荐模型,让推荐系统学习到不同的网络结构特点。
2.1、结构性:
BFS:从一个起点出发,逐层扩展搜索,首先访问所有直接相邻的节点,然后再访问它们的邻居节点。
“结构性”指的是结构上相似的节点的 Embedding 应该尽量接近。
通过BFS可以生成更多周边结构的序列(凸显节点是中心节点、边缘节点、还是连接节点),从而使Embedding抓住更多的结构信息——相似结构的节点的Embedding更加相似。
2.2、同质性:
DFS:从一个起点出发,尽可能深地搜索树的分支,直到无法前进为止,然后回溯并探索其他分支。
例子:在社交网络中,如果两个朋友有很多共同的朋友,那么从其中一个朋友出发,通过 DFS 游走很可能会多次跳转到另一个朋友那里,即使他们之间并没有直接连接。这样做的结果是,同一社区内的节点将更频繁地出现在同一个游走序列中。
- DFS 风格的随机游走倾向于深入探索图中的特定区域,这使得它更可能停留在同一个社区内部——导致多次跳转到较远但仍然属于同一社区的节点。
- 在训练过程中,出现在同一游走序列中的节点会被视为有相似的上下文环境,从而导致它们在嵌入空间中更加接近。
- 因此,DFS 风格的游走有助于捕捉和表达图中的“同质性”。
3、EGES——阿里巴巴研发——集成多种信息源
EGES是一种由阿里巴巴提出并应用于其电子商务推荐系统的图嵌入技术。EGES的主要目的是为了克服传统推荐系统中遇到的几个关键问题,如扩展性、数据稀疏性和冷启动问题。其基本思想是Embedding过程中引入带权重的补充信息(Side Information),从而解决冷启动的问题。
- 扩展性: 数据集非常大,需要高效的方法来处理大量的物品和用户。
- 数据稀疏性: 用户与物品的交互数据往往是稀疏的,即大多数用户只与一小部分物品有过交互。
- 冷启动问题: 新物品或新用户缺乏足够的历史交互数据来进行有效的推荐。