该召回手段,是基于google提出的word2vec方法,来计算不同items的隐向量,并通过计算不同items间的向量距离,来判断item-to-item间的相似度。
参考paper如下:
https://arxiv.org/vc/arxiv/papers/1603/1603.04259v2.pdf
综述
许多协作过滤(CF)算法是通过分析items间的关系来计算相似度的。最近,自然语言处理方面研究,建议使用神经嵌入算法去学习words的隐向量。众多研究之中,负采样的Skip-Gram算法,即word2vec,表现出了不错的效果。受此激发,作者提出了一种item-based协同过滤的方法,也就是item2vec。该方法计算了在隐向量空间中的items向量。即使当用户信息难以获取的时候,这种方法也能够用来推断出item-to-item间的关系。
word2vec是由神经概率语言模型延展而来,有CBOW(continuous Bag-Of-Words Model)和skip-gram(Continuous skip-gram Model)两种模型方法,对于两种模型,word2vec团队给出了两种框架实现,分别是Hierarchical softmax和Negative Sampling。而本文是基于Negative Sampling的Skip-Gram模型。
下面对这种模型做简单介绍。
基于负采样的skip-gram方法(SGNS)
SGNS是由Mikolov团队提出的一种神经语言嵌入方法。该方法目的在于找到词表示,来捕捉一个句子中的单词和上下文单词的关系。下面对SGNS方法做简短的介绍。
给定一个来自于词典 W = { w i } i = 1 W W = \{w_i\}_{i=1}^W W={
wi}i=1W的词序列 ( w i ) i = 1 K (w_i)_{i=1}^K (wi)i=1K,skip-gram目标在于最大化下面的公式:
1 K ∑ i = 1 K ∑ − c ≤ j ≤ c , i ≠ 0 log p ( w j ∣ w i ) \frac 1 K \sum_{i=1}^K \sum_{-c\le j \le c, i \ne0}\log p(w_{j}|w_{i}) K1i=1∑K−c≤j≤c,i=0∑logp(wj∣wi)
其中,