精通推荐算法11:基于异构图游走的Graph Embedding

news2024/12/28 18:47:11

DeepWalk、Line和Node2vec对图结构数据进行随机游走,成功将其转化为一个序列问题,并利用Word2vec训练得到节点的Embedding向量。但它们都基于同构图,其节点均属于同一种类型。但现实世界的数据网络大多基于异构图,其节点类型以及节点间关系是多元化的。因此基于异构图的Graph Embedding十分重要。

基于异构图游走的Graph Embedding,以Metapath2VecEGES等网络为代表。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、Node2vecMetapath2Vec等模型的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”为物品本身。模型总共分为四层:

  1. 稀疏特征输入层。一般会对原始特征采用one-hot编码,然后输入到模型中。
  2. 稠密Embedding层。一般通过查找表的方式,将高维稀疏的输入特征,转化为低维稠密的Embedding向量。
  3. 加权平均。为每个Embedding赋予一个权重,然后按照公式6-10,加权平均并融合为一个新的Embedding
  4. 负采样训练模型。基于Word2vec的Skip-gram和负采样方法训练模型,通过随机梯度下降算法更新模型参数,并最终得到物品Embedding向量。

3 异构图游走优点和不足

基于异构图随机游走的Graph Embedding,可以建模不同节点间的关系,并充分利用节点属性信息,具有更强的表达能力。其对稀疏图和冷启动问题有较好的优化,在工业界推荐系统中得到了广泛应用。

不论是基于同构图,还是基于异构图,随机游走都需要消耗大量计算资源,特别是大规模应用场景。同时,它容易受到图形稀疏性和连通性等结构限制,且难以捕获拓扑结构和层次结构等高阶信息。另外,基于Word2vec的单隐层网络,节点间缺少共享参数,模型表达能力有限。随着GCN、GraphSAGE和GAT等图神经网络的提出,这些问题得到了较好优化,下一节会重点阐述。

4 作者新书推荐


历经两年多,花费不少心血,终于撰写完成了这部新书。本文在6.4节中重点阐述了。

源代码:扫描图书封底二维码,进入读者群,群公告中有代码下载方式

微信群:图书封底有读者微信群,作者也在群里,任何技术、offer选择和职业规划的问题,都可以咨询。

详细介绍和全书目录,详见

《精通推荐算法》,半日达icon-default.png?t=N7T8https://u.jd.com/VbCJsCz

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1960441.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】全志Tina配置log串口信息以及env信息的方法

一、文件位置 V:\f1c100s\Evenurs\f1c100s\tina\device\config\chips\c200s\configs\F1C200s\linux\env-3.10.cfg 二、文件内容 三、介绍 console:串口信息 version:版本信息 appAB:ab区信息 cma:cma容量 四、总结 在此文…

【HarmonyOS】鸿蒙中如何获取资源文件的指定类型 fd,string,Uint8Array,RawFileDescriptor

【HarmonyOS】鸿蒙中如何获取资源文件的指定类型 fd,string,Uint8Array,RawFileDescriptor 一、问题背景: 众所周知,在鸿蒙中的资源分为media和rawfile。两者的区别对标android工程一致,后者是其他类型文…

高月供,高负债,有没有好的办法去解决?

朋友们,有没有过这样的经历,觉得手里那堆贷款账户和每个月高高的月供,就像两座大山压得你喘不过气?特别是想从网贷的高利贷坑跳到银行的低息怀抱,却屡遭拒绝,那种无力感和自我怀疑,简直让人崩溃…

【城市数据集】世界城市数据库和访问门户工具WUDAPT

世界城市数据库和访问门户工具WUDAPT WUDAPTLCZ分类具体步骤参考 在 城市气候研究中,用于描述城市特征的数据集一般采用基于类别的传统方法,将城市地区分为数量有限的类型,从而导致精确度下降。越来越多的新数据集以亚米微尺分辨率描述城市的…

嵌入式学习Day17---Linux软件变编程

目录 ​编辑 一、Linux 系统 1.1.Linux服务器 1.2.Linux嵌入式 1.3.Linux系统上的软件开发 1.操作系统 2.Linux内核 3.man手册 1.4.shell命令 1.基本命令 2.文件查看命令 3.文件查找命令 4.压缩解压文件 5.其他命令 6.通配符 7.管道 8.重定向 1.5.虚拟机上网 1.NAT模式 …

JS学习(变量、数据类型、运算符以及流程控制语句)

目录 一、变量 二、数据类型 三、运算符 四、类型转换 (1)字符串类型转为数字 (2)其他类型转为boolean(这些全部都是自动转换) 五、流程控制 一、变量 (1)var:声…

2024西安铁一中集训DAY26 ---- 模拟赛(最短路 + 实数域二分 + 线段树 + 并查集(平面图欧拉定理))

文章目录 前言时间安排与成绩题解A. 江桥的蓝紫灯(最短路)B. 江桥的破坏行动(实数域二分)C. 江桥的最小值(线段树)D. 江桥的山谷(并查集,平面图欧拉定理) 前言 感觉是做…

Android NDK 编译 libcurl支持https

最后在使用NDK中使用libcurl,由于不同的安卓设备,版本不一样;使用so时,会导致报错dlopen时找不到某函数或出错。 最后直接使用libcurl.a后,目前在几款盒子上测试均能正常工作。 libcurl需要支持https得提前编译两个库…

LLM评估 | 大模型评估方法调研--论文解读(持续更新ing!!!)

目录 LLM-based NLG Evaluation: Current Status and ChallengesAdaptEval: Evaluating Large Language Models on Domain Adaptation for Text SummarizationThe Potential and Challenges of Evaluating **Attitudes, Opinions, and Values** in Large Language ModelsEvalLM…

揭秘高效语音转文字工具:让沟通更便捷

嘿,各位办公室的小伙伴们,今儿咱们来聊聊那些能让咱们文员生活大变样的神器——特别是那些能把咱们嘴里嘟囔的话儿,瞬间变成电脑里整整齐齐文字的语音转文字工具。说起来,自从有了这些宝贝,我感觉自己都快能飞起来了&a…

VUE 3.0 如何新建项目 详细教程 附环境搭建 推荐

本人新入手一台电脑,需要安装各种环境配置,顺便把过程记录一下,方便自己以后查看,也欢迎大家参考交流。 目录 一、环境搭建: 1.Node.js安装 2.国内淘宝镜像设置 3.安装vue 环境 二、新建vue项目 1.vue脚手架新建…

昇思25天学习打卡营第21天|FCN图像语义分割案例:从数据集下载到模型推理

目录 MindSpore 版本管理与数据集下载准备 图像分割数据集的定义、处理与获取 训练集数据的图像展示 基于 MindSpore 的 FCN8s 图像分割模型定义 图像分割模型的预训练模型加载与评估指标定义 基于 CPU 的 FCN8s 模型训练配置与准备 FCN8s 模型的权重加载与评估数据集的评…

大模型系列5--卷积神经网络

卷积神经网络 1. 背景2. 架构2.1. 卷积2.1.1. 单卷积层(多Channel输出)2.2.2. 多层卷积(卷积堆叠)2.2.3. 卷积关键参数2.2.4. 卷积常用计算公式 2.2. 池化层(pooling) 3. 经典网络结构3.1. VGG-163.2. ResN…

燃气安全无小事,一双专业劳保鞋让你步步安心!

燃气作为我们日常生活中不可或缺的能源之一,为我们的生活提供了极大便利,其安全性往往被忽视在忙碌的日常生活背后。然而,燃气事故一旦发生,后果往往不堪设想,轻则财产损失,重则危及生命。因此,…

【Linux】全志Tina配置AB区分区升级包

一、文件位置 V:\f1c100s\Evenurs\f1c100s\tina\target\allwinner\generic\configs\sw-subimgs-ab.cfg 二、文件内容 三、介绍 在第七行,可以设置产生的升级包是a区或是b区,使用ab区的名称来区分,ab区名称查询方法详见文章: …

angular入门基础教程(八)表单之双向绑定

绑定表单数据 为了让表单使用 Angular 的特性实现数据绑定,需要导入 FormsModule。 这个比 vue 要繁琐点,不复杂,但是比 react 的自己手动实现要方便,ng 帮我们实现了双向绑定 import { Component } from "angular/core&qu…

金蝶云星空历史库存信息批量计算生成

文章目录 金蝶云星空历史库存信息批量计算生成业务背景需求背景参考开发步骤创建单据《历史库存信息》界面表结构需要生成日期库存信息的日期范围存储为表创建日期表使用递归插入数据创建存储过程1,根据日期生成计算当日库存,生成《历史库存信息》创建存储过程2,根据日期范围…

Linux修炼之路之进程优先级,并行,环境变量

目录 一:进程优先级 二:并行并发 三:环境变量 接下来的日子会顺顺利利,万事胜意,生活明朗-----------林辞忧 一:进程优先级 1.基本概念 当使用ps -al指令时,就会显示用户所启动的所有进…

音视频入门基础:WAV专题(4)——FFmpeg源码中获取WAV文件音频压缩编码格式、采样频率、声道数量、采样位数、码率的实现

音视频入门基础:WAV专题系列文章: 音视频入门基础:WAV专题(1)——使用FFmpeg命令生成WAV音频文件 音视频入门基础:WAV专题(2)——WAV格式简介 音视频入门基础:WAV专题…

求职Leetcode题目(2)

1.柱状图中最大的矩形 据说这是2024年字节二面的题目,我感觉这道题跟接雨水有点类似,最重要的思路还是要找到什么时候能形成矩形的这么个情况,某个范围的矩形的高度,是由最短的柱形来决定的。 我们先整理一下,解决这道…