Billion-scale Commodity Embedding for E-commerce Recommendation in Alibaba,KDD 2018
Abstract
该工作来自阿里和港科大,主要关注通过用户行为历史构建item图,学习图上所有item的embedding。为了图表示学习中稀疏性和冷启动问题,提出了两种方法结合item embedding和side information。该方法部署在淘宝平台,CTR取得了明显提高。
淘宝平台推荐的三个问题:
1)数据量大:已有的推荐算法可以在小数据集上有不错效果,但是对于百万用户,20亿商品这样海量的数据集上效果差。
2)稀疏性:用户仅与小部分商品交互,难以训练准确的推荐模型。
3)物品冷启动问题:物品上新频繁
本文根据为了解决这三个问题分别提出了三个模型:BES,GES,EGES
淘宝的首页推荐是基于用户过去的行为进行推荐。本文关注的问题在推荐系统的matching,也就是从商品池中召回候选商品的阶段。核心的任务是计算所有item的pairwise similarity。本文提出根据用户行为历史构建一个item graph,然后使用state-of-the-art的graph embedding方法学习每个item的embedding,这被称为Base Graph Embedding(BGE)。在该方式下,可以基于items的embeddings向量进行点积计算pairwise similarity。BGE优于CF,但是对于少量或者没有交互行为的item,仍然难以得到准确的embedding。为了减轻该问题,本文提出使用side information来增强embedding过程,提出了Graph Embedding with Side information (GES)。例如,属于相似类别或品牌的item的embedding应该相近。在这种方式下,即使item只有少量交互或没有交互,也可以得到准确的item embedding。在淘宝场景下,side information包括:category,brand,price等。不同的side information对于最终表示的贡献应该不同,于是本文进一步提出一种加权机制用于学习embedding with side information,称为Enhanced Graph Embedding with Side information (EGES)。
根据用户行为历史构建item graph
之前基于CF的方法只考虑了项目的共现,但忽略了序列信息(可以更精准地影响使用者的偏好)。在实际中不可能使用用户的全部历史,因为(1)计算复杂度大(2)用户兴趣随着时间改变。在实际中设置一个时间窗口,只选取窗口内的用户行为,通常选取窗口大小为1个小时。这样取得的用户行为称为session-based users’ behavior。
如果两个item连续出现,则有一条有向边连接。基于在所有用户行为中这两个item出现的总次数,为每条边 eije_{ij}eij分配权重,该权重等于item i转移到item j的频次。 在抽取用户行为序列时,需要过滤掉噪声行为(无效/异常数据):
- 停留时长少于1s
- 过度活跃用户,可能是spam user
- 同一个商品多次更新后id相同,但是可能变成不同item
BGE(Base Graph Embedding)
本文的基础框架,通过上述方法得到ietm graph。使用deep walk算法,经过随机游走得到序列,输入skip-gram进行训练。
GES(Graph Embedding with Side information)
Wv0{\bf W}_v^0Wv0 表示item v的embedding; Wvs{\bf W}_v^sWvs表示item v的s-th类型的side information的embedding。由此得到 n + 1 个向量 Wv0,...,...Wvn∈Rd{\bf W}_v^0,...,...{\bf W}_{v}^{n} \in \mathbb{R}^dW