最近对推荐中的长尾问题/多样性问题比较感兴趣,最近看了一篇IJCAI-19上录用的的一篇《Sequential and Diverse Recommendation with Long Tail》的文章,介绍了如何在序列推荐中来提升推荐系统的多样性,一起来了解一下。
1、背景
用户在访问推荐系统的某一刻, 其兴趣往往是单一的,那么如果推荐列表只能覆盖用户的一个兴趣点,而这个兴趣点不是用户这 个时刻的兴趣点,推荐列表就不会让用户满意。反之,如果推荐列表比较多样,覆盖了用户绝大多数的兴趣点,那么就会增加用户找到感兴趣物品的概率。因此给用户的推荐列表也需要满足用户广泛的兴趣,即具有多样性。多样性推荐列表的好处用一句俗话表述就是“不在一棵树上吊死”。
提升推荐系统多样性的一种手段是充分利用长尾商品。但大多数的长尾商品被曝光的机会很少,与用户交互的次数也很少,此时可能推荐模型学习不充分导致推荐系统的精度有所损失。因此许多工作中将这部分长尾物品从训练集中剔除,从而也导致了推荐结果集中在较为热门的部分商品上。
为了解决上面的挑战,本文提出了一种在保留推荐精度的情况下,提升推荐系统多样性的方法。一起来看一下。
2、方法介绍
2.1 问题陈述
这里介绍的场景是topN推荐,下面是本文中使用的一些符号的定义:
基于上面的符号,最终需要通过向量sj中对每一个物品(不仅包括普通物品,还包括长尾物品(下文中会介绍,其实是长尾物品聚类集合))的打分进行排序,选择top-N进行排序。接下来,