论文阅读—阿里Graph Embedding的大规模应用

本人知乎地址:https://zhuanlan.zhihu.com/p/83382019

paper:Billion-scale Commodity Embedding for E-commerce Recommendation in Alibaba
https://arxiv.org/pdf/1803.02349.pdf

花了一周时间,零零碎碎终于把阿里这篇文章研究了一下,也看了很多知乎大佬的讨论,整理总结如下,如果有哪里说得不妥当或有问题,烦请指出讨论,深表感谢。

主要参考:zhuanlan.zhihu.com/p/70

目前有以下几个小问题,列在前面。

1. 有向图 vs. 无向图?

deepwalk使用无向图,而node2vec适用于无向图和有向图。在实际应用时,n2v也是基于deepWalk产生

序列训练集,那么有向图的用法体现在哪里了?

2. 如何训练?

BGE是把item的one hot形式输入w2v模型,而EBGE是item 和 side infor的 one hot输入得到embedding取平均后得到了一个稠密向量,而w2v不是要求输入是一个one hot 形式么…

——自己理解: 得到稠密向量后并不是直接输入w2v,是把item 和n个side infor的n+1个OHE分别输入到n+1个embedding_lookup层,得到embedding,取平均后得到d维稠密向量H,输入分层softmax训练。

经典回顾

DeepWalk(2014)、LINE(2015)、node2vec(2016)

原paper中对deepwalk的描述就不写了,网上资料非常多,这里就贴个图,很容易。

这部分主要摘录知乎的公开分享,Graph Embedding在知乎的应用实践

  1. DeepWalk:总体分为两个步骤,首先通过随机游走得到节点序列,然后使用word2vec进行训练。
  2. LINE: 设计了新的边采样方法和损失函数。首先采样图中的边,然后使用每一个边对模型参数进行更新。
  3. node2vec:基于DeepWalk,只是设计了灵活的随机游走策略(DFS和BFS结合)。

各方面对比:

  1. 适用范围:DeepWalk只适用无向、无权重的图;LINE和node2vec适用任意类型的图。
  2. 模型效果:按照论文的说法,三个模型呈递进关系。
  3. 网络规模:DeepWalk(百万的点和百万的边);LINE(百万的点和十亿的边);node2vec(百万的点,每个点平均出度为10,它使用的数据集比较小)。

这里存疑,并不知道网络规模是哪里得到的,在公司我们使用n2v也是在一个小场景使用,一两百万的node,20轮游走,七八个小时 训练,效果还不错,查看case基本都挺令人满意,不知道有没有朋友在大场景用过,训练速度怎么样?

EGES ——2018 阿里 千亿级别GE实践

个人总结

文章主要是为了解决在图里面表征冷启动item的问题。

几个值得注意的地方有三点:

1、 每个item的side infor的权重是不同的,并且是训练得到。

2、 冷启动商品用side infor的embedding取平均作为embedding vector。

3、 假设item 有1000W,3个side infor的OHE维度分别为10,100,1000,那么模型输入的第一层稀疏向量的维度就是1000W+1110维,然后得到4个d维embedding,之后取平均得到d维item embedding H。

如何利用用户的行为构建item graph

设置时间窗口切分用户行为(session-based users’ behaviors),短时间内访问的商品更具相关性。 经验设置1小时,

item1 和 item2是两个连续的行为,那么用边相连,权重是这两个商品邻接出现的次数。

需要过滤异常和噪声数据:

  1. 去掉点击后停留时间少于1s的
  2. 过滤过度活跃的用户(三个月内购买了1000件商品,点击量超过3500次)
  3. 商户会对商品各项内容进行更新,更新一定次数之后应该被认为是一个新的商品。

Base GE (BGE)

基于deepWalk在加权的item graph上学习每个node item的embedding。

根据用户行为,构建以商品为node的图,然后通过random walk生成商品的序列,再利用skip-gram算法,生成商品的表示向量。

Enhance BGE (GES)

BGE无法较好的学到冷启动物品的embedding。

把那些常在ranking阶段用到的side information(也可以叫做泛化属性)用在matching阶段,如类别,店铺,价格等核心参数。

核心假设:具有这些side infor的商品,在embedding空间上should be closer.

item的embedding维度和side infor的embedding维度设置为相同经验数值。

下图是GES和EGES的通用框架,SI表示side infor,而 SI 0 表示itemid,文中用了n个 side infor,每个SI都是OHE输入,故而总共n+1个item feature field(借用FFM中的说法)。

刚开始看这个图总是迷惑item id 去哪了,原来是文章没看仔细…

个人理解就是在BGE的基础上,加上了side infor这几个OHE特征,每个item feature field(文中就是每个维度为d的W向量)得到d维的embedding vector,共n+1个 (在上图中应该是第一层的稀疏特征和第二层的稠密embedding之间的embedding操作,TF中就是一个embedding_table API)。将这n+1个特征embedding直接concat起来也就是第二层,做一个类似average-pooling layer的操作,取平均(公式6,),聚合得到该item的d维embedding vector H_v(每个特征的边权重a_i = 1),也就是文中的公式(6)。

这样,具有相似side infor的商品,他们的embedding 就会很相似。

对于冷启动的商品,没有Item id 怎么办?—— 直接将这些泛化属性的embedding取平均作为cold item的embedding。(原文3.3.2)

得到的该item 的 embedding H_v ,输入一个采样(负采样)的softmax训练即可。

Enhanced Graph Embedding with Side Information (EGES)

GES假设side infor对item的贡献是相同的,直接取平均太粗糙。注意这个泛化特征的权重不是设定死的,是模型学习得到的,不同商品的同个特征的权重可能是不同的,用a来表示这个权重。

为了保证所有边信息的权重大于0,对权重取e的指数。

取的8个不同的商品,在各个边信息上的权重的分布。可以看到,对每个商品,不同的边信息有不同的权重。最重要的还是item本身的向量,次重要的是shop这个边信息。

算法步骤和圈中更新EGES的伪代码写的很清楚

SEQ: 对每个节点RandomWalk走l步的序列。

在加权的skipGram训练步骤:

对一个序列SEQ中的每个item v = SEQ[i],遍历v的窗口内的上下文,例如item u = SEQ[j],更新(update(v,u,1))上下文u(label = 1)的embedding,以及input v的每个side infor的权重a_v和embedding。

之后,对负采样的ns个item,例如 u,更新(update(v,u,0)),再次更新了input v的item embedding以及side infor 的embedding和权重a_v。

好了,又整理出来一篇,关于第一个问题我一直没想明白,还请各位不吝赐教!感谢。

编辑于 17:47
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
电子科大《图嵌入推荐系统技术》综述论文,64页pdf422篇文献阐述图嵌入推荐技术进展 推荐系统是一种缓解信息超载问题的关键工具,旨在通过分析观察到的用户-商品关系,从数百万的候选商品中预测出用户喜欢的商品。针对推荐系统存在的稀疏性和冷启动问题,利用侧信息和知识来挖掘隐藏的(间接的)用户-物品关系来丰富推荐的观测信息,近年来被证明是有前景的;而推荐模型在面对高度复杂和大规模的侧信息和知识时的可扩展性在很大程度上决定了推荐模型的性能。为了有效地利用复杂和大规模的数据,图嵌入技术的研究是一个重要的课题。将图嵌入技术用到推荐系统中,可以大大优于传统的直接基于图拓扑分析的推荐实现,近年来得到了广泛的研究。本文从二部图、一般图和知识图谱的嵌入技术出发,系统地回顾了基于图嵌入的推荐方法,提出了基于图嵌入的推荐方法的总体设计思路。此外,将几种有代表性的基于图嵌入的推荐模型与最常用的传统推荐模型进行了仿真比较,结果表明,传统推荐模型在预测隐式用户-物品交互方面总体上优于基于图嵌入的推荐模型。揭示了基于图嵌入的推荐在这些任务中的相对弱点。为了促进未来的研究,本文提出了基于图嵌入的推荐与传统推荐在不同任务中的权衡,以及一些有待解决的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值