item2vec--word2vec在推荐领域的使用

一:绪论

在word2vec诞生以后,embedding的思想迅速从自然语言处理领域扩大到各个领域,推荐系统也不例外,既然word2vec可以对词序列中的词进行embedding,那么也可以对用户购买序列中的一个商品也应该存在相应的embedding方法,与 Word2Vec 对应,这种方法被称为 Item2Vec,代表论文是微软研究人员在 2016 年发表《Item2Vec: Neural Item Embedding for Collaborative Filtering》。论文把 Word2vec 的 Skip-gram with Negative Sampling (SGNS)的算法思路迁移到基于物品的协同过滤 (Item-Based CF) 上,以物品的共现性作为自然语言中的上下文关系,构建神经网络学习出物品在隐空间的向量表示。

二:item2vec训练样本的生成方式

在item2vec中,样本的生成方式有两种:
1,基于时序
认为item之间存在存在强时序关系,即前面的item对后面的item的产生有很大影响,那么我们就可以把一段时间内产生的item序列看成是一个句子,序列中的item看成是一个词,这样对item序列的训练过程就与word2vec训练过程无异了,可以直接参照word2vec的方法进行embedding训练。基于时序的示例比如视频网站的用户观看的视频序列,音乐网站用户听的歌曲序列。
2,基于集合
认为 item 之间存在非常弱的时序关系,或者因为某种原因,我们无法获得 item 的序列。那么这种情况只能放弃考虑 item 间的时空信息,转而使用 item 集合来取代序列。
通常我们把用户的行为序列视为一个集合(当然还有其他集合构造方式),我们假定一个静态的环境,在这个环境中,共现在同一个集合的 item 就可以认为它们是相似的,然后视为正样本,不管它们是以什么样的顺序产生的,如果某两个 item 频繁共现,二者的 Embedding 则可能也很相似。很明显,这种利用集合共现性构建样本的方式与 Word2Vec 的输入样本还是不一样的,因此无法直接应用 Word2Vec 的算法,这就需要对 Word2Vec 的过程进行调整。另外还需要注意的是,上面的这种的假设是有局限性的,不一定适用于其它场景。

基于集合的示例比如电商网站订单中的商品集合。
论文中讨论的样本构建方法是第二种,作者还提出了两种相应的调整方式
1,把 Word2Vec 的上下文窗口 (window size) 由定长的修改为变长的,窗口长度就是集合长度。其实也就是对整个 item 结合中的 item 进行两两组合构成正样本,此方法需要修改网络结构。
2,不修改网络结构,而在训练神经网络时对物品集合做 shuffle 操作,变相地起到忽略序列带来对影响。
论文指出两种方法的实验效果基本一致。

三:目标函数

Item2Vec 的论文使用的是第一种调整方法,即给定一个 iterm 集合,SGNS 的目标函数可以改为:
在这里插入图片描述
其中,K 是集合长度,因为摒弃了序列中 item 的时空关系,在原来的目标函数基础上,其实已经不存在时间窗口的概念了,或者说窗口长度就是集合长度,取而代之的是 item 集合中两两之间的条件概率。
在论文中,作者把中心词词向量ui 作为第 i 个 item 的最终的向量表示,同时两个 item 的相似度是通过余弦相似度进行计算的。作者还指出,最终的词向量也可以选用上下文词向量 vi,甚至可以是 ui 和 vi 的向量和 ui+vi 或 ui 和 vi 的连接 [uTivTi]T 来表示,后两种表示方式有时候能够产生更好的向量化表示。

论文中将 Word2Vecs 模型从自然语言序列迁移到物品集合,丢失了时间和空间的序列信息,导致无法对用户行为程度建模(喜欢和购买是不同程度的行为,可以建模体现用户对不同 item 的喜欢程度高低)。好处是可以忽略用户-物品关系,即便获得的订单不包含用户信息,也可以生成物品集合。而论文的结论证明,在一些场景下序列信息的丢失是可忍受的。

最终论文的实验表明,使用 Item2Vec 对协同过滤中的 item 计算相应的向量化表示,在 item 的相似度计算上比起 SVD 方法要更加优越,也就是说 Item2Vec 方法得到的 item 的向量化表示能够很好地提取 item 间的相似度特征。从应用上说,Embedding 也非常便于用于相似 item 主动检索,Item2vec 甚至能够应用到错误标签的检测和纠正上,所以 Item2vec 具有很好的使用价值,这也使得 Embedding 在很多深度学习推荐系统模型中几乎成了 “标配”。

四:item2vec与MF的关系:

1,联系:
如果从embedding的角度来看矩阵分解模型,用户隐向量和物品隐向量就是一种用户embedding和物品embedding向量。用户embedding向量更多通过行为历史中的物品embedding平均或者聚类得到。利用用户向量和物品向量的相似性,可以直接在推荐系统的召回层快速得到候选集,或者在排序层直接用于最终推荐列表的排序
2,区别:
(1)传统的mf通常生成的是user-item矩阵,而item通过滑动窗口样本生成的方式构造的则更像是item-item矩阵。
(2)二者得到隐向量的方式也不同,mf利用均方误差损失,使预测得分和已有得分之间的误差最小, 而item则是利用空间信息并借助了极大似然估计的思想,使用对数损失函数,使得上下文关系或者共现关系构造出的正样本item-pair出现的概率最大。
(3)itrm2vec训练时引入了负样本,而mf没有使用。
总结:对于二者在推荐效果上的差异,一个经验是传统 MF 推荐会让热门内容经常性排在前面,而 Item2vec 能更好的学到中频内容的相似性。Iterm2Vec 加上较短的时间窗口,相似推荐会比 MF 好很多。

五:item2vec方法的特点和局限性

特点:万物皆可embedding
局限性:只能利用序列型数据,在处理互联网背景下大量的网络化数据时不够用。

你可能感兴趣的:(word2vec,自然语言处理,机器学习)