2016年的论文:Item2vec: Neural Item Embedding for Collaborative Filtering (我们公司用的就是这个)
这篇文章比较朴素,创新性不高,基本是参照了google的word2vec方法,应用到推荐场景的i2i相似度计算中,但实际效果看还有有提升的。主要做法是把item视为word,用户的行为序列视为一个集合,item间的共现为正样本,并按照item的频率分布进行负样本采样,缺点是相似度的计算还只是利用到了item共现信息,1).忽略了user行为序列信息; 2).没有建模用户对不同item的喜欢程度高低。
Skipgram + Negative Sampling:
是中心词,
是上下文词,
是负例样本。极大化似然函数,后面转成极小化负对数似然(和交叉熵损失函数一样)
最后表示embedding可以有3种方式:1. 用;2.用
;3.用concatenate:
为了解决热门物品和冷门物品之间的不平衡,引入子采样 (subsampling),对于输入的序列,一定概率丢弃词w,出现概率越高的词被丢弃的概率越大;
item2vec与word2vec不同,在CF场景下,是假设有共现的item没有顺序差异的,所以 item2vec 中把每两个有共现的item都作为了正例,在这种场景下, window 是由 item set 大小决定的。
同理,UserCF可以把item被访问的用户序列视为一个集合,user间的共现为正样本;