BLOG

个人博客,记录学习与生活

[KDD2018]Alibaba Embedding

Published July 30, 2020, 5:57 p.m. by kkk

基于亿级用户和商品淘宝平台,主要在于工程上的创新,能保证的是工业上的效率和实用性。

简介

在工业落地上,推荐系统技术在淘宝平台上主要面临三个问题:

  • 可拓展性。第一个问题是扩展性,许多算法或技术在小规模数据集上具有各方面很好的效果,但由于计算复杂度或某些特殊性质,很难拓展到大规模数据上。
  • 稀疏性。由于电商平台中,很多用户(商品)与其它用户(商品)间的交互较少,导致面临稀疏问题。
  • 冷启动。冷启动指的是在系统(网络)中,新加入的商品(节点)与现有的网络没有直接联系,很难处理这些商品或预测用户对这些商品的偏好。

所设计的淘宝推荐系统框架具有两步:匹配排名。论文主要解决的是第一步的问题。提出EGES(Enhanced Graph Embedding with Side information),匹配阶段分为三个部分:

  1. 通过一个有效的启发式方法(基于在淘宝的多年实际经验)从用户历史行为构建商品图
  2. 举出三种embedding方法:BGE、GES、EGES,学习淘宝二十亿商品的embeddings,通过离线实验展示了GES和EGES的效果(对比BGE和其它embedding方法)
  3. 为了部署,在Xtensorflow上搭建图嵌入系统,之后在手机淘宝上表现出该框架对推荐系统性能的提升

从用户行为生成商品图

用户浏览商品生成的是序列信息,传统CF方法只考虑序列中商品的同时出现,而忽略了这一序列信息。但是受限于时间、空间复杂性和用户兴趣的变化,不可能直接使用用户生成的整个商品序列,实际中采用固定时间窗口的方式来截断商品序列,按照实际经验,选择1个小时作为时间窗口。

通过固定时间窗口之后,将截断的序列根据时间(序列)顺序,构建成有向图,比如序列中有连续的$AB$,那么就在图中生成一条从$A$到$B$的有向边,边的权重设定为所有用户行为生成序列中,形成该边的频次

在用户行为序列抽取中,噪声认定和处理方式如下:

  • 点击商品后停留时间不足1s,认为是噪声,进行删除
  • 对于过度活跃的用户,进行单独判定。(根据淘宝长期观察)如短短三个月内买了1000+商品或者浏览了3500+商品,极有可能是垃圾邮件用户(spam user),需要剔除该用户的行为
  • 商品经过商家长期更新之后,有可能变得跟原商品的标签完全不同,这种场景下要删除与原标签相关的商品。

Graph Embedding

Base Graph Embedding(BGE)

就是采用DeepWalk进行Embedding,负采样进行优化,由于是带权有向图,使用RandomWalk进行采样时,从当前节点向某节点的转移概率为该边权重除以当前节点出度方向的所有权重和。

Graph Embedding with Side Information(GES)

BGE确实实现了商品的embedding,并且保存了传统CF忽略掉的高阶结构,但无法解决冷启动问题,尝试引入边信息。在讨论的电商推荐系统之中,边信息指的是商品的类别店铺价格等,这些在排序阶段作为关键的特征,但在匹配阶段却少有使用。

做法:每个商品(节点)构建$n+1$的embedding,$W_v^0,W_v^1, \cdots, W_v^{n}$,分别为商品、商品第一个边信息embedding...作者说这些embedding经验上都设置为相同维度,之后将这$n+1$层通过一个平均池化层进行连接起来(图中$a_0,\cdots,a_n$都相同),得到商品(节点)聚合的embedding,为$H_v$,以此将边信息合并进来,如下图所示 $$ H_v = \frac{1}{n+1} \sum^n_{s=0}W^s_v $$

对于冷启动商品,由于是具有标签的,那么就是具有边信息的embedding,只将其边信息embedding连结起来,就可以正常地进行同类商品选择、推荐。

Enhanced Graph Embedding with Side Information(EGES)

GES在实践遇到的一个问题是不同的边信息并不是有有相同的贡献,GES中将其进行的平均操作并不能客观反映事实,EGES网络图同GES,区别在于不同embedding间权重的调整,权重为图中的$a_0,a_1, a_2, \cdots, a_m$,于是有 $$ H_v = \frac{\sum_{j=0}^n e^{a_v^j}W_v^j}{\sum^n_{j=0}e^{a_v^j}} $$ 如果$Z_u$代表点$v$的一个上下文节点$u$的embedding,$y$为标签,那么算法的目标函数为: $$ \mathcal L (v,u,y) = -[y\log(\sigma (H_v^TZ_u))+(1-y)\log(1-\sigma(H_v^TZ_u))] $$ 算法伪代码如下图:

淘宝推荐系统架构

RSP: Ranking Service Platform

TPP: Taobao Personality Platform



  1. Wang J, Huang P, Zhao H, et al. Billion-scale commodity embedding for e-commerce recommendation in alibaba[C]//Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. 2018: 839-848. 


Share this post
< Pre: [MLSP2016]Item2Vec Pos: [KDD2018]Airbnb Embedding >
5 comments
Similar posts
Add a new comment