item2vec的原型:word2vec
一、背景
1. Item2item的推荐方式效果显著:
很多场景下item2item的推荐方式要优于user2item;
item2item的推荐方式:在获取item相似度矩阵之后,根据用户的最近的行为,根据行为过的item找到相似的item,完成推荐,如itemCF。
user2item:根据用户的基本属性和历史行为等基于一定的模型,算出最可能喜欢的item列表写在KV存储中;当用户访问系统的时候,将这些item列表推荐给用户,像userCF、LFM、personal rank算法等。
2. NN model的特征抽象能力
深层要比浅层的特征抽象能力更强,主要有两方面原因:
(1)输入层与隐含层之间是全连接;
(2)激活函数的去线性化;
基于上述,基于神经网络的item2item的个性化召回算法item2vec也就在这个大背景下产生了。
二、物理意义
在介绍item2item之前,先介绍一下原型word2vec。
1. word2vec
根据所提供的语料,语料可以想象成一段一段的文字,将语料中的词embedding成词向量,embedding成词向量之间的远近可以表示成词与词之间的远近。
2. item2item
(1)将用户行为序列转换成item组成的句子。
解释:在系统中,无论是用户的评分系统,还是信息流场景下用户的浏览行为,或者是电商场景下用户的购买行为。在某一天内,用户会进行一系列的行为,那么将这一系列的行为抽象出来。每一个用户组成的item与item之间的这种序列的连接关系就变成了之前所说的文字组成的一段一段的句子。
(2)模仿word2vec训练word embedding 将item embedding。
word embedding的过程只需要提供语料,也就是一段一段的文字,那么训练得到的word embedding可以表示词语义的远近,那么同样希望得到item之间内涵的远近。
所以,可以将第一步构成的item语料放到word2vec中,也能够完成item embedding。embedding完成的向量同样可以表示item之间的隐语义的远近,也就是说,可以表示item之间的相似性。
以上就是item2vec的物理意义。
三、缺陷
(1)用户的行为序列时序性缺失:
在介绍物理意义的时候,说过将用户的行为转化成由item组成的句子,这里句子之间词与词之间的顺序与按照用户行为顺序进行排列和不按照用户行为顺序进行排列的结果是几乎一致的。
也就是用户的行为顺序性,模型是丢失的。
(2)用户行为序列中的item强度是无区分性的:
这里比如说,在信息流场景中,观看短视频的50%或者80%或者100%,在用item组成的句子当中,同样都是出现一次的,而不是说观看100%就会出现2次。
再如,在电商场景中,可能你购买一件商品,或者说你加了购物车,都会出现一次;而不会说,你购买了就会出现两次。
四、item2vec算法的主流程
(1)从log中抽取用户行为序列
按照用户“天”级别,构成一个完整的句子,这里的行为根据不同的推荐系统所指的不同。比如:在信息流场景下,用户点击就可以认为是行为;那么在评分系统中,我们可能需要评分大于几分;在电商系统中,可能希望用户购买,得到用户行为序列所构成的item句子。
(2)将用户序列当做语料训练word2vec得到item embedding
在训练过程中,word2vec代码不需要书写,但是有很多参数是需要我们具体设定的。
(3)得到item sim关系用于推荐
根据item embedding向量,可以计算每一个item最相似的top k个,然后将相似度离线写入到KV当中,当用户访问我们的推荐系统的时候,用户点击了哪些item,推出这些item所最相似的top k个给用户,就完成了推荐。
eg:
原始:
转化为句子:
放入word2vec模型(三层的神经网络:输入层、隐含层、输出层)
经过word2vec模型的训练,会得到每一个item对应的embedding向量:
得到item向量之后,就得到item的sim关系。