深度CTR之Graph Embedding:阿里电商推荐中亿级商品的Graph Embedding

介绍

阿里巴巴团队发表于KDD 2018,文章题目-《Attentional Factorization Machines:Learning the Weight of Feature Interactions via Attention Networks》。阿里的推荐系统是按照matching + ranking的两步策略,本文解决的是matching阶段的问题,即商品召回阶段的问题。

paper中说到taobao的推荐系统主要面临了3个主要问题:

  1. 可扩展性:十亿用户,二十亿商品的量级;
  2. 稀疏性:有些用户和商品之间的交互信息特别少,导致无法精确的训练推荐模型;
  3. 冷启动:新商品的冷启动问题,taobao上每小时会上线百万级的新商品,而用户与新商品之间没有交互信息,因此无法很好建模用户对商品偏好。

paper主要解决的是matching阶段中对应上面的3类问题。在这之前,taobao的推荐系统在召回阶段主要是使用协同过滤的方法,计算不同商品之间的相似性,来生成商品候选集合。这篇文章中主要是用Graph技术来学习商品的embedding向量,但是考虑到前人工作中Graph embedding的缺点,paper作者引入了辅助信息来学习商品向量表达,再计算商品之间的相似性。作者在构建商品Graph的时候,使用了启发式的方法,从数十亿的用户历史行为中构建商品Graph。paper中先后实验的方案为:

  1. Base Graph Embedding (BGE);
  2. Graph Embedding with Side information (GES);
  3. Enhanced Graph Embedding with Side information (EGES)。

最后作者也介绍了在taobao的大规模的用户和商品量级的规模下,他们也构建了graph embedding系统XTensorflow来支持算法的上线。

框架

这篇文章的思路也是受到最原始的Graph Embedding方法的启发,例如DeepWalk方法,DeepWalk方法就是先通过在graph中随机游走来生成节点的序列,然后应用Skip-gram算法来学习graph中节点的Embeddding表示。沿着这个思路,paper中也是按照两步来介绍的,1)基于用户历史行为构建图结构,2)学习图中item的embedding表示。

基于用户历史行为的 Item Graph的构建

在淘宝中,用户的历史行为都是具有时间序列特点的,例如图2(a)所示,而协同过滤算法中只考虑到商品之间的共现性,而没有将商品的序列关系纳入考虑,而在我们的item graph构建过程中,会考虑商品的序列信息,但是由于计算量和存储空间的成本高、以及用户的兴趣具有随着时间而漂移的特点,因此我们在使用用户历史行为信息时,基于以前的经验,只使用一个小时时间窗口内的历史行为item用于构建item graph,paper中也提到,对于这种一个小时的时间窗口称之为session

在这里插入图片描述

当我们得到基于session的用户历史行为时,在一个session中,我们可以得到item之间的顺序关系,例如在图2(a)中的顺序关系已经反映在了图2(b)中了,而在图2(b)中,节点之间的连接权重被赋值为两个item共现的次数。但是在构建item graph时,对于下面的三类脏数据和不正常行为会过滤掉:

  1. 点击后停留时间太短,例如不超过1秒的;
  2. 三个月内购买超过1000个商品或者点击次数大于3500次的,这种过于活跃的用户,有可能是刷单等异常行为;
  3. 由于商家会给同一个标志码的商品不断地做一些细节上的更新,但是有可能一段时期后,同一个标志码的商品已经变得完全不一样了,对于这种情况,我们会直接去除。

Base版的Graph Embedding

基于图2(b)中的权重有向item graph,paper中使用DeepWalk的随机游走方法生成节点序列,并在序列上运行Skip-gram算法来学习节点的Embedding表示,按照节点间的权重关系将随机游走的节点转移概率定义为:
在这里插入图片描述

我们使用Skip-gram算法学习Embedding向量,该算法是最大化序列中两个节点的共现概率,因此我们可以关联到下面的负数似然概率的优化问题:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DErwibt8-1582962385069)(evernotecid://AFC3459F-70B1-4432-9FEA-943ED3F7E284/appyinxiangcom/22185754/ENResource/p548)]
其中,w表示序列中上下文节点的窗口大小,如果假设节点之间是相互独立的,即独立性假设的情况下,可以得到下面的公式:
在这里插入图片描述

我们通过借鉴Word2vec中的负采样算法,那么方程(3)可以转化为下面的式子:
在这里插入图片描述
其中,
N ( v i ) ′ N(v_i)' N(vi)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值