论文笔记|ITEM2VEC: NEURAL ITEM EMBEDDING FOR COLLABORATIVE FILTERING

本文介绍了word2vec的原理和优化方法,包括CBOW、Skip-Gram、Hierarchical Softmax和Negative Sampling。然后,文章将word2vec的概念扩展到推荐系统中,提出了item2vec,用于捕捉商品之间的相似性,以实现更好的推荐效果。
摘要由CSDN通过智能技术生成

前两天在朋友圈看到学弟发的一个图,巨佬学习是hash,大佬学习是遍历,我学习是无穷递归,今天才发现诚不我欺。早上决定将YouTube 16年在RecSys那篇经典的文章学习一下,结果看到Negative Sample就看不懂了,然后在知乎查了一下,又在大佬的指引下找ICML 2016的这篇文章学习一下。
推荐系统最经典的算法是基于用户相似度的推荐算法u2u,称为memory-based,和基于物品相似度的推荐算法i2i,称为model-based。而在深度学习加入后,NLP中embedding的方法在推荐系统算法中发挥了较好的效果。

word2vec

在NLP中,word2vec可以说是最知名的word embedding算法。
词向量最早采用one-hot编码,也称为1-of-N表示,即在长向量中仅有该词对应的那一维值为1,其余维度皆为0。向量的长度与词库大小相关,通常达百万级别(推荐系统中物品资料也是如此),因此向量相似度的计算复杂度十分高昂。Dristributed representation解决了one-hot的这一问题,其通过训练,将高维稀疏向量映射到低维稠密向量空间(值为float),之后再采取相应的相似度计算。但是,如何保证词向量之间的关系不变,是模型的关键所在。在NLP中,认为词的含义与其上下文信息相关,若两个词的上下文信息相似,则认定这两个词相似。
那如何用DNN训练这一模型呢?一般分为CBOW(Continuous Bag-of-Words)与Skip-Gram两种模型。其中,CBOW是输入某一词上下文中词的词向量,输出该词的词向量。设定词袋大小后,输入维度是确定的。经过隐藏层的非线性变换后,输出层(softmax层)的长度与词库的长度相同,计算每个词的softmax概率,通过反向传播优化模型参数。最终可以得任意词的one-hot编码到Dristributed representation的变换模型。
与CBOW相似,Skip-Gram模型是反着来的,即输入一个词向量,输出中选取softmax值最高的2N个值对应于与该词对应的上下文中2N个词。
这两个模型是完全可行的,但是由于庞大的词库,该模型训练的复杂度十分高,比如计算数百万个softmax值。针对这一问题,word2vec做了相应的优化。首先,word2vec也采用了CBOW和Skip-Gram的方式训练模型得到词向量,但是并没有采用简单的DNN模型。结构方面,隐藏层、输出层的神经元用霍夫曼树代替,霍夫曼树的叶子节点起到输出层神经元作用,内部节点起到隐藏层神经元作用。众所周知,将节点构建霍夫曼树后,权重高的叶子节点离根节点更近,霍夫曼编码更短。在word2vec中,左子树编码为1,右子树编码为0。
对于DNN模型的优化,word2vec有基于Hierarchical Softmax和基于Negative Sampling两种优化方式。在基于Hierarchical Softmax的模型中,输入层到隐藏层没有采用线性变换加激活函数的方式,而是对所有输入词向量求和取平均,得到一个词向量(此部分对应于CBOW中的2N个词向量拼接)。根据词库中各词在训练数据中的出现频率作为权值,建立霍夫曼树,则每个词可得到一个霍夫曼编码。假设one-hot编码长为M,则共有M-1个非叶节点,每个叶节点代表一长为M-1的参数 θ \theta θ。从根节点,每分裂一次相当于做一次二分类,左负右正,按照sigmoid函数计算是正类的概率。对于每个训练样本,按照最大似然方法,从根节点到该叶路线上所有节点处概率值乘积作为最终概率
L ( θ , x ) = l o g ∏ j = 2 ( σ ( x w T θ j − 1 w ) ) 1 − d j w ( 1 − σ ( x w T θ j − 1 w ) ) d j w L(\theta,x)=log\prod_{j=2}(\sigma(x_w^T\theta_{j-1}^w))^{1-d_j^w}(1-\sigma(x_w^T\theta_{j-1}^w))^{d_j^w} L(θ,x)=logj=2(σ(xwTθj1w))1djw

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值