摘要

什么是embedding?

Embedding在数学上表示的是一个映射关系,F: X -> Y,也就是一个函数。该函数具有两个性质:injective和structure-preserving。Injective,即我们所说的单射函数,对于每个 Y 只有唯一的 X 对应,反之亦然;structure-preserving,结构保存,比如在X所属的空间上X1<X2,那么映射后在Y所属空间上Y1<Y2。

深度学习中,Embedding特指用一个低维度向量表示一个实体,可以是一个词(Word2Vec),可以是一个物品(Item2Vec),亦或者网络关系中的节点(Graph Embedding)。

Embedding的初始化状态可以理解为是一组随机数,随着算法的优化与不断迭代更新,当网络达到收敛状态的时候,网络中各个层的参数就相对固化,这样就得到了隐层权重表,此时就相当于得到了我们想要的embedding。在实际应用中,通常将神经网络倒数第二层的权重参数当作对应样本的embedding。

什么是Graph Embedding?

Graph Embedding用低维、稠密、实值的向量表示网络中的节点。目前,Graph Embedding已经是推荐系统、计算广告领域非常流行的做法,并且在实践后取得了非常不错的线上效果。

Graph Embedding技术将图中的节点以低维稠密向量的形式进行表达,要求在原始图中相似(不同的方法对相似的定义不同)的节点其在低维表达空间也接近。得到的表达向量可以用来进行下游任务,如节点分类,链接预测,可视化或重构原始图等。

Graph Embedding是把图结构转化成一个向量或者一组向量的变换,在这里,Embedding能够捕捉到图的拓扑结构、节点到节点的关系、其他关于图、子图和节点的相关信息等。

Graph Embedding算法的演进

DeepWalk(2014)【推荐系统】Graph Embedding系列之EGES: Billion-scale Commodity Embedding for E-commerce Recommendation in AliLine(2015)【推荐系统】Graph Embedding系列之EGES: Billion-scale Commodity Embedding for E-commerce Recommendation in AliNode2vec(2016)【推荐系统】Graph Embedding系列之EGES: Billion-scale Commodity Embedding for E-commerce Recommendation in AliEGES(2018)


Billion-scale Commodity Embedding for E-commerce
Recommendation in Alibaba

  1. 论文地址:https://arxiv.org/pdf/1803.02349.pdf
  2. Github地址:

算法讲解:

1、论文前面的综述

淘宝的推荐系统面对的三个主要技术挑战:

  • 可扩展性:当前许多推荐方法在较小规模的数据集上很有效,但不能应用在淘宝十亿级的数据集上。
  • 稀疏性:users趋向于只与小部分items进行交互,训练一个准确的推荐模型,尤其在users和items只有很少交互的情形下是非常困难的,这就是“稀疏性”问题。
  • 冷启动:淘宝系统中,每小时会有百万级的新items上线,这些items没有用户行为。处理这些items或者预测users对这些items的偏好很有挑战,这就是“冷启”问题。

为了解决这些挑战,淘宝采用了一个“两个阶段”的推荐框架:召回+排序(matching+ranking)。在召回阶段,为每个用户交互过的item生成一个相似items的候选集;在排序阶段,根据用户的偏好,训练一个深度神经网络模型来为每个用户排序这些候选items。召回和排序阶段面对的问题不同,每个阶段的目标也不同,因此需要分开技术方案。

论文只关注解决召回阶段的问题,主要工作是根据用户行为计算所有items间成对的相似性。在得到所有items间的成对相似性之后,可以生成一个items候选集用于排序阶段的进一步个性化。为了实现,我们从用户的行为历史中构建一个item graph,然后应用最先进的graph embeding方法(deepwalk、line、node2vec)学习每个item的embedding表示,被称为Base Graph Embedding (BGE)。用这种方法,我们可以根据items的embedding向量的点积计算出来的相似度生成items的候选集。在先前的工作中,基于CF的方法被用来计算相似性。然而,基于CF的方法只考虑了items在用户行为历史中的共现。论文在item graph中使用随机游走,进而得到items间的高阶相似性。因此,会优于基于CF的方法。然而,在很少或者没有交互的情况下学习出准确的items embedding仍然充满挑战。为了解决这个问题,论文提出使用边信息来增强embedding过程,被称为Graph Embedding with Side information (GES)。例如,属于相同category或者相同brand的items应该embedding到相近的空间中。用这种方法,我们能够在很少或者没有交互的情况下学习出items的精确的embedding。淘宝系统中存在几百种边信息类型,直觉上,不同的边信息在学习items的embedding时应该贡献不同。因此,论文在使用边信息学习embedding时进一步提出了一个加权机制,被成为Enhanced Graph Embedding with Side information (EGES)。

2、overview of graph embedding

论文提出的Graph Embedding算法是以DeepWalk算法为基础的,因此这里对其进行一个简单的overview。

给定一个图G=(V,E),这里V是顶点集、E是边集。Graph Embedding的目的是对图中每个顶点【推荐系统】Graph Embedding系列之EGES: Billion-scale Commodity Embedding for E-commerce Recommendation in Ali在空间【推荐系统】Graph Embedding系列之EGES: Billion-scale Commodity Embedding for E-commerce Recommendation in Ali中学习一个低维的向量表示,其中d远小于顶点数量。也就是说,学习的目标是一个映射函数【推荐系统】Graph Embedding系列之EGES: Billion-scale Commodity Embedding for E-commerce Recommendation in Ali,即用一个d维向量表示每个节点【推荐系统】Graph Embedding系列之EGES: Billion-scale Commodity Embedding for E-commerce Recommendation in Ali

受word2vec启发,DeepWalk首先在图中进行随机游走生成顶点序列,然后应用SkipGram算法学习出图中每个顶点的向量表示。为了保留图的拓扑结构,优化的目标函数是:

【推荐系统】Graph Embedding系列之EGES: Billion-scale Commodity Embedding for E-commerce Recommendation in Ali

这里,【推荐系统】Graph Embedding系列之EGES: Billion-scale Commodity Embedding for E-commerce Recommendation in Ali是顶点【推荐系统】Graph Embedding系列之EGES: Billion-scale Commodity Embedding for E-commerce Recommendation in Ali的邻居节点,也即距离【推荐系统】Graph Embedding系列之EGES: Billion-scale Commodity Embedding for E-commerce Recommendation in Ali游走一步或者游走两步的那些顶点。【推荐系统】Graph Embedding系列之EGES: Billion-scale Commodity Embedding for E-commerce Recommendation in Ali表示的是给定一个顶点【推荐系统】Graph Embedding系列之EGES: Billion-scale Commodity Embedding for E-commerce Recommendation in Ali有一个context顶点【推荐系统】Graph Embedding系列之EGES: Billion-scale Commodity Embedding for E-commerce Recommendation in Ali的条件概率。

3、Construction of Item Graph from Users’ Behaviors

淘宝的用户行为趋向于一个有序序列:

【推荐系统】Graph Embedding系列之EGES: Billion-scale Commodity Embedding for E-commerce Recommendation in Ali

早期的基于CF的算法只考虑了items的共现,忽律了能够更精确反应用户偏好的连续信息。与此同时,由于(1)历史记录的计算和空间代价(2)用户的兴趣随机时间转移,使用用户的整个行为历史是不可行的。在实际中,我们设置了一个时间窗口,同时只选择窗口之内的用户行为(session-based用户行为)。经验上,淘宝选择的时间窗口的持续时间是1个小时。

在获取了session-based用户行为之后,如果两个item连续出现,则它们被一条有向边连接。这里举例说明一下:下图中的itemD和itemA被一条边连接,因为U1连续访问了itemD和itemA。

【推荐系统】Graph Embedding系列之EGES: Billion-scale Commodity Embedding for E-commerce Recommendation in Ali

通过利用所有淘宝用户的协同行为,我们根据两个连接item在所有用户行为中总的共现次数,为每条边【推荐系统】Graph Embedding系列之EGES: Billion-scale Commodity Embedding for E-commerce Recommendation in Ali分配一个权重。特别地,边的权重等于item_i在所有用户的行为历史中经过item_j的频率。用这种方式构造的item graph能够为所有淘宝用户的行为中出现的不同items间表示出相似性。

在实际中,在提取用户行为序列之前,需要对无效数据和不正常行为进行过滤,进而消除我们提出方法的噪音数据。下列行为将被认定为噪音数据:

  • 点击后的停留时长小于1秒,这个点击被认为是无意的需要移除。(无效点击)
  • 一个用户在不到3个月内买了1000件物品或者他的总点击数大于3500,这个用户很有可能是过于活跃的垃圾用户,需要过滤掉这类用户的行为。(过于活跃的垃圾用户)
  • 淘宝零售商持续更新商品细节。极端情况下,经过一系列更新之后,对一些相同的identifier来说,一件商品可能变成一个完全不同的item。因此,我们移除与这个identifier相关的这个item。(对于identifier来说频繁更新的item)

 

 

相关文章: