亿级用户的平台是如何使用词嵌入来建立推荐系统的

2021-03-10 14:45:24 浏览数 (1)

推荐系统对于我们今天使用的几乎所有应用程序都是至关重要的。 借助大数据,我们有大量可供选择的内容。并且我们可以建系统,通过这些系统可以帮助我们筛选和确定选择的优先次序。 这些系统还给我们一种个性化的内容和服务的感觉。

词嵌入是指单词在低维空间中的分布式表示。词嵌入使机器更容易理解文本。有多种算法可用于将文本转换为词嵌入矢量,例如Word2Vec,GloVe,WordRank,fastText等。所有这些算法都提供了多种单词矢量表示形式,但可以将它们直接输入到NLP模型中。这些算法的用法取决于我们要执行的任务的类型,例如,如果我们要执行单词相似性任务,并且要输出可互换的单词,则应使用Word2Vec,否则,如果我们要输出相关的属性到一个特定的单词,那么我们应该选择WordRank。

词嵌入是任何任务的基础,例如情感分析,文本摘要,语言翻译或任何其他NLP任务。Airbnb,Spotify等公司大量使用它们来构建推荐系统,从而提供实时个性化。但是他们使用词嵌入构建这些系统的方式各不相同,这就是我们将在此处讨论的内容。

Airbnb使用点击会话来构建单词嵌入,即他们从用户点击的列表中提取模式。他们将每个列表转换成词嵌入向量,然后根据其点击会话最终向用户显示最相似的列表。为了将列表转换为向量,他们将用户的每次点击会话都视为句子和skipgram(在Word2Vec的两个变体中)。他们找到了正样本和负样本,它们可以用于训练并最终计算嵌入向量。考虑以下示例:

每个用户的这些点击会话均视为句子。然后,进行正负采样。只要用户没有点击推荐的列表,就会被视为否定样本。为了进一步改善模型的性能,它们将最终预订的用户列表作为该用户单击的其他所有列表的肯定示例。例如,如果我们认为用户1最终预订了清单124,那么正样本和负样本的生成将与图2相似。这样,Airbnb便会为其用户提供实时建议。

阿里巴巴以不同的方式使用词嵌入。他们还利用产品点击会话,但不会直接使用skipgram ,而是根据它们建立有向图。考虑图1的示例,图看起来像图3中的图。现在,他们使用随机游走的概念来计算我们所谓的图嵌入。在这里,他们随机选择一个节点并继续沿着路径行驶,直到到达终点为止。然后,对这些随机游动序列进行skipgram 操作,从而为这些产品中的每一个找到单词嵌入。他们还使用影响这些嵌入的产品附带信息来进一步提高准确性。在这里详细了解他们的工作。

现在让我们谈谈Spotify。针对其用户创建和收听的播放列表进行Spotify的skipgram。他们还考虑了用户跳过的歌曲,用户在歌曲上花费的时间以及整个用户的收听历史。他们从这些活动中构建正样本和负样本,然后运行单词嵌入算法。最后,他们根据此推荐相关的艺术家。

最后,让我们谈谈一家名为ASOS的在线时装和化妆品零售商公司。他们使用词嵌入作为输入来预测客户价值寿命预测。如果客户访问的时间取决于销售,产品价格等的不同,则其生命周期价值较低。另一方面,生命周期价值高意味着您在相似的时间进行相似的访问。现在,ASOS不会对用户的点击会话创建skipgram 。他们要做的是找到访问产品页面的用户序列,然后对这些用户序列创建skipgram 。因此,每个用户都将转换为嵌入向量。然后将这些嵌入用作模型的输入以进行预测。

以上内容均来自以下论文的整理,有兴趣的可以搜索查看:

[1] Grbovic and Cheng, Real-time Personalization using Embeddings for Search Ranking at Airbnb

[2] Huang et al., Billion-scale Commodity Embedding for E-commerce Recommendation in Alibaba

[3] Chamberlain et al., Customer Lifetime Value Prediction Using Embeddings

[4] Jay Alammar’s talk on “Intuition & Use-Cases of Embeddings in NLP & beyond”

[5] Lev Konstantinovski’s talk on “Next generation of word embeddings in Gensim”

[6] Jay Alammar’s blog on “The Illustrated Word2Vec”

0 人点赞