前言 在自然语言处理(NLP)领域,谷歌提出的 Word2Vec 模型是学习词向量表示的重要方法。其中,带有负采样(SGNS,Skip-gram with negative sampling)的 Skip-Gram 神经词向量模型在当时被证明是最先进的方法之一。各位读者需要自行了解 Word2Vec 中的 Skip-Gram 模型,本文只会做简单介绍。 在论文 Item2Vec:Neural Item Embedding for Collaborative Filtering 中,作者受到 SGNS 的启发,提出了名为 Item2Vec 的方法来生成物品的向量表示,然后将其用于基于物品的协同过滤。
在自然语言处理(NLP)领域,谷歌提出的 Word2Vec 模型是学习词向量表示的重要方法。其中,带有负采样(SGNS,Skip-gram with negative sampling)的 Skip-Gram 神经词向量模型在当时被证明是最先进的方法之一。各位读者需要自行了解 Word2Vec 中的 Skip-Gram 模型,本文只会做简单介绍。
在论文 Item2Vec:Neural Item Embedding for Collaborative Filtering 中,作者受到 SGNS 的启发,提出了名为 Item2Vec 的方法来生成物品的向量表示,然后将其用于基于物品的协同过滤。
Skip-Gram 模型的思想很简单:给定一个句子 (w_i)^K_{i=1},然后基于中心词来预测它的上下文。目标函数如下:
其中,c 表示上下文的窗口大小;w_i 表示中心词;w_{i+j} 表示上下文。
表达式中的概率 p\left(w_{j} \mid w_{i}\right) 的公式为:
简单来理解一下 Skip-Gram 模型的表达式:
注意到分母项,由于需要遍历语料库中所有的单词,从而导致计算成本过高。一种解决办法是基于负采样(NEG)的方式来降低计算复杂度:
其它细节:
单词 w 作为负样本时,被采样到的概率:
单词 w 作为中心词时,被丢弃的概率:
Item2Vec 的原理十分十分简单,它是基于 Skip-Gram 模型的物品向量训练方法。但又存在一些区别,如下:
Item2Vec 论文假设对于一个集合的物品,它们之间是相似的,与用户购买它们的顺序、时间无关。当然,该假设在其他场景下不一定使用,但是原论文只讨论了该场景下它们实验的有效性。由于忽略了空间信息,原文将共享同一集合的每对物品视为正样本。目标函数如下:
在 Skip-Gram 模型中,提到过每个单词 w_i 有2个特征表示。在 Item2Vec 中同样如此,论文中是将物品的中心词向量 u_i 作为物品的特征向量。作者还提到了其他两种方式来表示物品向量:
原文还补充到,这两种方式有时候会有很好的表现。
原论文链接:[1603.04259] Item2Vec: Neural Item Embedding for Collaborative Filtering (arxiv.org)