Learning and Transferring IDs Representation in E-commerce, KDD 2018
Abstract
该工作来自阿里,主要关注了如何学习ID的表示,从而在电商场景中用于推荐。在电商场景中ID包括user ID, item ID, product ID, store ID, brand ID, category ID等,传统的one-hot编码高维稀疏,并且无法反映ID之间的关联性(如同类或异类),本文提出了一种基于embedding的方法学习ID的表示,通过采集用户行为的ID序列,结合ID之间结构化的联系,将所有类型的ID嵌入到一个统一的低维空间用于之后的任务:(1)计算商品之间相似度(2)从观察到的商品迁移到未见过的商品(3)迁移到不同的领域(4)在不同任务中迁移。该模型在阿里旗下盒马鲜生业务中得到了有效的验证。
Introduction
传统方法将ID视为atomic units,用序号或one-hot编码表示。这些表示方式简洁、鲁棒,在统计模型中得到广泛的应用。然而这些表示方式具有以下两种局限:(1)特征维度高带来的稀疏问题,存储空间与ID数呈指数关系(2)无法反映ID之间的联系(如同类或异类)。在one-hot编码中任意两个item ID之间的距离是相同的,无论它们之间是否相似。而如果将item ID和store ID视为异类,由于二者处于不同的空间无法衡量。
目前embedding的技术从NLP领域的word2vec掀起,在诸多领域中得到了广泛的应用。word2vec将所有的word嵌入到统一的低维空间中,能够得到不同word之间句法和语义上的关系。item2vec通过建模item IDs在序列中co-occurrence,将item ID嵌入低维空间,用于提高搜索和电商中推荐的准确度。
本文基于item2vec提出一种embedding-based的框架,对于所有类型的ID学习并迁移其低维表示。除了使用用户的隐式反馈,还考虑了item ID与其他类型ID之间的结构化联系。通过这些联系,item ID序列表达的信息可以传播其他类型的ID中,同时学习得到所有类型ID的表示。所有类型的ID都将嵌入到同一个低维空间,这样就便于计算ID之间的相似度,判断其同类/异类。便于实际生产环境中部署、迁移学到的表示。
- Measuring Items Similarity
- 通过计算embedding向量的余弦相似度,相比item-based CF召回率更高。
- Transferring from seen items to unseen items
- 解决物品冷启动问题。使用已有的item ID的表示得到新item ID的表示。
- Transferring across different domains
- Taobao to Hema
- Transferring across different tasks
- store IDs learned by our approach can be transferred to this new task
Hema是一个online-to-offline(O2O)的平台,主要商品是生鲜,所以商品会经常更新,有很多新商品出现。并且Hema每天都会产生大量新用户,对于个性化推荐是一个极大的挑战。在传统的推荐系统中,用于计算user对于item的CTR。然而在该场景下,由于user-item对的数目巨大( 1 0 15 − 1 0 20 10^{15} -10^{20} 1015−1020)。在本文中,推荐框架分为以下四部分:
- Preparation user-to-trigger (u2t) 偏好度和trigger-to-item (t2i) 匹配度通过离线计算得到,存储在key-key-value数据库中用于在线提取。
- Matching 每次用户访问,首先根据user ID提取triggers。然后基于triggers得到推荐物品候选列表。
- Filtering 删除重复商品以及无效商品,例如已经卖完的商品
- Ranking 使用一个综合的分数(preference score, matching score,etc)对候选商品排序
其中候选集合的大小和计算的次数可以通过触发的数量来控制,整个系统非常灵活。触发的类型包括访问item,categories等。
模型
Skip-gram on User’s Interactive Sequences
在电商场景下,我们可以通过不同的交互会话得到item ID序列,其表明了用户的隐式反馈。我们将序列看作文档,skip-gram模型能够得到ID表示用于预测给定item ID得到其在序列中邻近的item ID。给定的一个item ID的序列 { i t e m 1 , . . . , i t e m i , . . . , i t e m N } \{ item_1,..., item_i,...,item_N\} {
item1,...,itemi,...,itemN},skip-gram模型的目标是最大化平均对数概率
1 N ∑ n = 1 N ∑ − C ≤ j ≤ C 1 ≤ n + j ≤ N , j ≠ 0 l o g p ( i t e m n + j ∣ i t e m n ) \frac{1}{N} \sum_{n=1}^{N} \sum_{-C\leq j \leq C}^{1 \leq n+j \leq N,j\neq 0} {\rm{log}} \ p(item_{n+j} | item_n) N1n=1∑N−C≤j≤C∑1≤n+j≤N,j̸=0log p(itemn+j∣itemn)
C是上下文窗口的长度
其中在基本的skip-gram模型中, p ( i t e m j ∣ i t e m i ) p(item_j|item_i) p(itemj∣itemi) 由softmax函数定义
p ( i t e m j ∣ i t e m i ) = e x p ( e ′ j T e i ) ∑ d = 1 D e x p ( e ′ d T e i ) p(item_j|item_i) = \frac{
{\rm exp}(\mathbf{e'}_j^{\rm T} \mathbf{e}_i)}{\sum_{d=1}^{D} {\rm exp}(\mathbf{e'}_d^{\rm T} \mathbf{e}_i)} p(itemj∣itemi)=∑d=1Dexp(e′dTei)exp(e