本文分享的是CIKM2020微信的论文:Learning to Build User-tag Profile in Recommendation System,主要介绍了微信看一看("Top Stories")中,如何进行用户-标签的兴趣建模,提升推荐效果。
背景
看一下微信看一看场景下的推荐流程:
它整个推荐系统主要有四部分:新闻画像层(news profile layer),用户画像层(user profile layer),召回层(recall layer)和排序层(rank layer)。
在新闻画像层,对新闻相关的特征如文章标签,类别等进行提取。在用户画像层,对用户的基本信息和行为信息进行建模。这里很重要的一个特征是用户标签。随后是召回层,有多种召回方式;最后是排序层,可以使用更复杂的模型对召回层得到的结果进行精确的排序,最后展示给用户。
因为用户画像和召回层、排序层的模型非常相关,所以有必要建立一个准确的用户画像。论文主要讲了对用户对文章标签的偏好的建模,提出了User Tag Profiling Model。
构建user-tag profile的时候,对每个user,会收集他阅读历史中点击过的新闻的标签,并在模型训练步骤中计算出用户对这些标签的偏好。在新闻推荐系统中,通常将点击过的新闻作为正样本,浏览过但是没有点击的新闻作为负样本。但是直接将这个方法用于标签,会使点击过的新闻的标签都是正样本,这是有问题的。因为用户点击新闻也许只是对其中一个标签感兴趣。
基于这些考虑,文章提出了两个问题:
RQ1: 如何自动选择有用的特征?并且学习到同一个field和不同field之间的特征的相互作用?
<