1. item2vec产生背景
在了解item2vec,我们首先应该了解Embedding的概念,什么是Embedding?Embedding 中文是嵌入,主要作用是将不同物体的特征映射到一个低维空间去表示,然后根据不同物体之间在低维空间的距离去衡量不同物体之间的关联关系相似性等推理推荐问题。为什么要用Embedding?LR不香吗?LR除了我们知道的模型简单,直观可衡量性高等优点外,它的缺点也很明显,显著的缺点之一是,LR模型都使用离散特征进行训练(连续特征也可以训练,但是需要做标准化,另一方面容错性也没有离散特征好),许多特征onehot后维度非常高,典型就是id类特征,并且onehot编码许多有意义的信息变丧失了,并且计算过程中我们经常用到许多的交叉特征,交叉特征导致维度爆炸。基于此,我们需要一种能最大限度保留原物体特征,并不会导致维度爆炸的解决方法,受到word2vec在NLP中良好表现的启发,我们可以将这里的word类比为item,就成为item2vec。
2. item2vec的特点
2.1. 特征降维
2.2. 工程中负采样
2.3. 无序性
2.4. 序列->物品->特征
3. item2vec的网络模型
上图为盗图,由于item2vec算法借鉴了word2vec,网络模型和word2vec基本相似,所以这里我们直接以上图的word2vec为例, cbow是根据t-2到t+2这几个词预测第t个词的概率;Skip-gram是根据第t个词预测周围的t-1到t+2个词的概率,生活中我们应用最广泛的是Skipp-gram这种比较多。 以电商购物为例,item2vec是利用已加购的N个商品预测最有可能购买的N个商品,既是我们常见的买了还买了场景;item2vec和word2vec相比,打破了词之间的有序性,并且将窗口的值从“M”个扩展到物品“N”个。
4. item2vec算法
4.1. item2vec公式
这里我们依旧不说话,默默上公式
上述公式的意思是对k个物品之间的条件概率求和,然后平均,越大发生的可能性越大,关联性也越大;
概率p又如何定义呢,公式如下:
根据word2vec的神经网络架构图输入向量表达和输出向量表达,输入向量表达就是input layer到hidden layer的权重矩阵,而输出向量表达就是hidden layer到output layer的权重矩阵。
上图为盗图
根据 p(w(t+j)|w(t)) 的定义,我们可以把两个vector的乘积再套上一个softmax的形式转换成上面的神经网络架构,在训练过程中通过梯度下降的方式求解模型参数。当模型训练好后,我们上面所说的输入向量矩阵中每一行对应的权重向量就是我们所需要的词向量v(w),于是这个权重矩阵自然转换成了item2vec的lookup table(我们所需的词向量表)。
5. 参考文献
网友评论