DeepWalk、Line和Node2vec对图结构数据进行随机游走,成功将其转化为一个序列问题,并利用Word2vec训练得到节点的Embedding向量。但它们都基于同构图,其节点均属于同一种类型。但现实世界的数据网络大多基于异构图,其节点类型以及节点间关系是多元化的。因此基于异构图的Graph Embedding十分重要。
基于异构图游走的Graph Embedding,以Metapath2Vec和EGES等网络为代表。Metapath2Vec使用事先定义好的异构节点游走规则,利用随机游走策略生成多条包含异构节点的序列,基于Word2vec训练模型并最终得到每个节点的Embedding向量。EGES则在物品关系图中,引入了物品属性信息(side information),从而优化稀疏图和物品冷启动问题。
1 Metapath2Vec
Metapath2Vec由微软研究人员于2017年,在论文“ metapath2vec: Scalable Representation Learning for Heterogeneous Networks”[8]中提出。其思想比较简单,先预先定义异构节点游走路径(meta path),然后按照这个路径规则进行随机游走并生成多条序列,再利用Word2vec和Skip-gram训练模型,最终得到节点Embedding向量。可以将其简单理解为基于meta path的DeepWalk。
什么是异构节点游走路径呢?如图6-10所示,在一个学术信息图网络中,有四种不同类型的节点:Org(组织)、Author(作者)、Paper(论文)和Venue(会议或期刊,如ACL或KDD)。不同类型节点的连接,形成了不同类型的边。基于先验知识,可以预先定义一些比较重要的游走路径,后续随机游走以及生成序列,就只能基于这些固定的路径了。
如图6-10所示,定义了三种不同的异构节点游走路径。其中APA即为作者-论文-作者,表示两个作者共同完成一篇论文。APVPA即为作者-论文-会议-论文-作者,表示两个作者写的两篇论文,属于同一个会议或期刊。OAPVPAO表示两个组织中的两个作者,写了两篇论文,属于同一个会议或期刊。
定义好异构节点游走路径后,按照这些固定路径进行随机游走,生成多条序列,然后再基于Skip-gram自监督任务产出训练样本,并基于负采样方法训练模型,最终即可得到每个节点的Embedding。这一过程和DeepWalk、Node2vec基本一致,不再赘述。
Metapath2Vec负采样时,从所有节点中进行选择负样本,而没有考虑当前正样本的节点类型。基于此,作者又提出了Metapath2Vec++。其核心优化为,负采样时,只能选择与当前正样本节点类型相同的其他节点。如图6-11所示,左边为DeepWalk、Node2vec和Metapath2Vec等模型的Skip-gram网络结构图,它们在所有节点中进行负采样,而没有考虑节点类型。右边为Metapath2Vec++的Skip-gram结构图,其输出为与正样本类型相同的节点概率分布,即只对与正样本类型相同的节点进行负采样。
2 EGES
DeepWalk、Line和Node2vec等基于同构图的Graph Embedding方法,无法充分利用物品本身的属性信息。这一方面导致信息利用率不足,并影响模型表达能力。另一方面当数据比较稀疏时,某些物品与其他物品的连接很少,甚至完全没有连接(比如冷启动新品),无法训练准确的Embedding。
基于此,阿里巴巴研究人员于2018年在论文“ Billion-scale Commodity Embedding for E-commerce Recommendation in Alibaba”[9]中提出了EGES( Enhanced Graph Embedding with Side information)模型。它将物品属性信息(side information)融入到基于DeepWalk的图模型中,成功解决了稀疏图和冷启动问题。
EGES主要应用在召回模块中,基于构建的物品Embedding,可以计算物品间相似性,从而为目标用户推荐与其点击过的物品,相似的其他物品。物品side information主要有物品类目ID、品牌ID、卖家ID和价格等。阿里巴巴研究人员提出了三种Graph Embedding方法:BGE、GES和EGES,三者逐步递进。
BGE( Base Graph Embedding)没有对物品side information建模,它在DeepWalk随机游走算法中加入了对边权重的处理,从而可以建模有权图。其随机游走转移概率如公式(6-8所示)。
GES( Graph Embedding with Side Information)则将物品side information加入到了图网络中。其思想为side information相似的物品,其Embedding应当相近。它先构建物品ID、类目ID和品牌ID等多个维度相同的Embedding,并对它们进行平均池化,将融合得到的结果作为物品Embedding。然后基于BGE方法进行建模,并最终训练得到每个物品的Embedding。平均池化表达如公式6-9所示。
EGES( Enhanced Graph Embedding with Side information)则在GES基础上更进一步,将平均池化优化为加权平均池化,从而区分不同side information的重要性。其表达如公式6-10所示。
EGES模型结构如图6-12所示。SI表示side information,其中“SI 0”为物品本身。模型总共分为四层:
- 稀疏特征输入层。一般会对原始特征采用one-hot编码,然后输入到模型中。
- 稠密Embedding层。一般通过查找表的方式,将高维稀疏的输入特征,转化为低维稠密的Embedding向量。
- 加权平均。为每个Embedding赋予一个权重,然后按照公式6-10,加权平均并融合为一个新的Embedding
- 负采样训练模型。基于Word2vec的Skip-gram和负采样方法训练模型,通过随机梯度下降算法更新模型参数,并最终得到物品Embedding向量。
3 异构图游走优点和不足
基于异构图随机游走的Graph Embedding,可以建模不同节点间的关系,并充分利用节点属性信息,具有更强的表达能力。其对稀疏图和冷启动问题有较好的优化,在工业界推荐系统中得到了广泛应用。
不论是基于同构图,还是基于异构图,随机游走都需要消耗大量计算资源,特别是大规模应用场景。同时,它容易受到图形稀疏性和连通性等结构限制,且难以捕获拓扑结构和层次结构等高阶信息。另外,基于Word2vec的单隐层网络,节点间缺少共享参数,模型表达能力有限。随着GCN、GraphSAGE和GAT等图神经网络的提出,这些问题得到了较好优化,下一节会重点阐述。
4 作者新书推荐
历经两年多,花费不少心血,终于撰写完成了这部新书。本文在6.4节中重点阐述了。
源代码:扫描图书封底二维码,进入读者群,群公告中有代码下载方式
微信群:图书封底有读者微信群,作者也在群里,任何技术、offer选择和职业规划的问题,都可以咨询。
详细介绍和全书目录,详见
《精通推荐算法》,半日达https://u.jd.com/VbCJsCz