Billion-scale Commodity Embedding for E-commerce Recommendation in Alibaba
文中指出淘宝推荐系统面临的三大挑战:规模、稀疏性、冷启动。
本文提出的方法首先从用户的行为历史中构建物品关系图,然后学习图中所有物品的embedding。通过物品embedding可以计算所有物品的两两相似度,然后将相似度用于推荐过程中。为了能够缓解稀疏性和冷启动问题,side information也被考虑进来。
淘宝设计了一个two-stage的推荐框架,两个阶段分别是matching和ranking。
在matching阶段,为用户交互过的每个物品生成相似物品候选集。
在ranking阶段,训练一个深度神经网络模型,根据用户的偏好对候选集中的物品进行排序。
本文主要focus在matching阶段遇到问题的处理上,matching阶段的核心目标是基于用户的行为,计算物品之间的两两相似度。
本文提出根据用户的行为历史,构建物品图(item graph),然后使用graph embedding方法来学习每个物品的embedding,这种方式被称为Base Graph Embedding(BGE)。然后可以通过物品embedding向量的点积来衡量物品的相似度。
对于那些交互很少甚至没有交互的物品,很难准确学习它们的embedding。为了缓解这一问题,本文在embedding过程中利用了side information,称为Graph Embedding with Side information(GES)。比如说,同一种类或者品牌的物品在embedding上是接近的。
然而在淘宝,有着非常多的side information,比如种类、品牌、价格等。不同的side information在学习物品embedding的过程中起到的贡献是不同的。因此,本文提出了一种带权机制来学习embedding with side information,被称为Enhanced Graph Embedding with Side information(EGES)。
Construction of Item Graph from Users’ Behaviors
用户在淘宝上的行为可以用序列来表示,如下图,用户u1只有一个session,而用户u2和u3各有两个session。
文中指出以前的基于CF的方法只考虑了items的共现,忽视了序列信息,而序列信息可以更加准确的反应用户偏好。
然而,利用用户的所有历史信息是不现实的,因为1)计算复杂度和空间复杂度非常高.2)一个用户的兴趣会随着时间而慢慢改变。
因此,在实际操作过程中,会设置一个time window,并且只选择window中的用户行为。这被称为session-based users' behaviors。在经验上,time window的持续时间被设置为1个小时。
获得session-based users' behaviors后,两个item如果连续的出现,则用一条有向边把它们连起来。
前面的item序列可以转为下图中的带权有向图。
通过所有user的历史行为,即可获得整个item graph(边出现1次权重为1,以此类推)。
在实际情况中,需要过滤一些反常行为来排除噪声。比如说:
•一次点击后在页面停留的时间少于1秒。
•一些过度活跃的用户。当一个用户在小于三个月的时间内购买了1000个物品或点击量超过3500,则过滤掉这些用户的行为。
•remove the item related to the identifier。
Base Graph Embedding
在item的带权有向图上执行deepwalk(带权随机游走),用负采样优化,即可获得item的embedding。随机游走的权重如下,
Graph Embedding with Side Information
base graph embedding方法不能很好的处理冷启动问题,即与用户没有交互的物品。于是,提出了GES(Graph Embedding with Side Information)。
side information指的是种类、店铺、价格等信息,这些信息常用来ranking,但很少用在graph embedding中。GES中,认为两个物品如果有相似的side information(比如说同属一个种类,同属一个品牌),则应该是相似的。
上图中SI 0表示item本身,SI 1...SI n表示side information,这些通常都是one-hot的。
将item v的n+1个embedding向量concatenate起来,在hidden层做一个average-pooling,即
那么Hv就是item v整合后的embedding。通过这种方式整个了side information,那么有相似的side information的item在embedding上也会更相似。
Enhanced Graph Embedding with Side Information
然而GES假设了所有的side information的贡献是一样的,在实际情况中,往往不是这样的。为了解决这一问题,提出了EGES来整合不同类型的side information。
使用e的指数形式是为了保证每个side information的贡献大于0。分母起到了normalize的作用。
目标函数如下,需要注意的是Zu指的是节点u的输出向量(作为相邻节点时的向量)。y表示负采样时的label。
Hv即为节点v的最终embedding向量。
总的来说,EGES比普通的skip-gram在模型上多了一层hidden representation层和side information。
Cold Start Items
冷启动物品的embedding没有办法通过item graph来学习,因此可以用side information的embedding求平均作为该物品的embedding。
网友评论