本文介绍的论文题目是:《Sampling-Bias-Corrected Neural Modeling for Large Corpus Item Recommendations》
论文下载地址是:https://dl.acm.org/citation.cfm?id=3346996(论文是付费的,公众号后台回复 google 即可获得下载链接)
本文是谷歌工业风论文的新作,介绍了在大规模推荐系统中使用双塔模型来做召回的一些经验,值得细细品读。本文仅对文章内容做一个简单介绍,更多细节建议阅读原论文。
1、背景
大规模推荐系统一般分为两阶段,即召回和排序阶段,本文重点关注召回阶段。
给定{用户,上下文,物品}的三元组,一个通用的方法首先是分别计算{用户,上下文} 和 {物品} 的向量表示,然后通过一定的方式如点积来计算二者的匹配得分。这种基于表示学习的方法通常面临两个方面的挑战:
1)工业界中物品的数量十分巨大。
2)通过收集用户反馈得到的数据集十分稀疏,导致模型对于长尾物品的预测具有很大的方差,同时也面临着物品冷启动的问题。
近几年来,随着深度学习的发展,双塔模型常用来用做召回阶段的模型,双塔模型的一般结构如下:
可以看到,双塔模型两侧分别对{用户,上下文} 和 {物品} 进行建模,并在最后一层计算二者的内积。对于每一个正样本,需要随机采样一些负样本,当物品数量十分巨大的时候,上述结构的双塔模型很难得到充分训练。
那么如何对双塔模型进行一定的改进呢?本文主要提出了以下两个要点:通过batch softmax optimization来提升训练效率和通过streaming frequency estimation来修正sampling bias。
2、模型介绍
2.1 batch softmax optimization
假设训练集包含T条,物品数量为M:
x包括了用户特征和上下文特征,y