《Causal Embeddings for Recommendation》笔记

摘要

应用中期望使用推荐策略来推荐最适合的结果来改变用户行为,最大化推荐收益,如极大化点击率等。但由于推荐系统改变了用户的行为方式,使得用户的日志行为和原本的用户自然行为有了比较大的差异。简单的在用户日志上训练和评估推荐策略,产生的结果和用户的自然行为产生比较大的误差。论文中提出一种矩阵分解的方法,利用随机曝光的数据,得到了更好的结果。

参考资料

Bonner S, Vasile F. Causal embeddings for recommendation[C]//Proceedings of the 12th ACM Conference on Recommender Systems. ACM, 2018: 104-112.

介绍

应用的推荐策略向用户推送结果,然后用户点击、浏览的记录行为即用户日志。直接在用户日志上训练、评估推荐策略,除了产生的推荐结果和用户自然行为产生较大误差,也会使得频次高但历史悠久的商品依然被推荐很多。这个我比较深有感触,在实习期间发现,两个月前的内容依然被不断推荐给用户,由于内容本身与明星相关,点击率不会很低,可由于历史悠久点击率也上不去。对于这种比较旧的内容是应该降低推荐的频次,尝试推荐新的内容产生更好的收益。对于新内容缺乏训练数据,这方面就是多臂赌博机问题了。这是由于用户日志行为是被推荐策略改变的行为的偏好,如果能直接在用户的自然行为上进行策略学习,推荐的结果就是最符合用户的偏好。

用户的自然行为可以看作是向用户随机推荐商品产生的用户行为记录。由于随机策略不会改变商品曝光的概率分布(即是商品曝光概率是相同的),因此用户的行为记录能反映真实的偏好。但随机策略产生的收益较低,因为推荐的结果和用户的偏好通常是不吻合的。所以很难应用随机推荐策略产生大量的数据来学习好的推荐策略。

其中,两种策略的对比如下:

  1. 应用推荐策略,数据量大,精度高,但改变用户的自然行为。
  2. 随机策略,数据量少,精度低,反映用户的自然行为。

论文中采用多任务学习来训练模型,方法之前的证明感觉和方法没什么太大的关联,都是为了证明考虑自然行为的有效性。

对于推荐策略的学习目标是:
$$L_{t}=\sum_{\left(i, j, y_{i j}\right) \in S_{t}} l_{i j}^{t}=L\left(U \Theta_{t}, Y_{t}\right)+\Omega\left(\Theta_{t}\right)$$
可以看出,通过用户嵌入$U$和物品嵌入$\Theta_t$计算的内积得到用户点击概率,就是简单的FM模型。而对于随机策略的数据也是类似的:
$$L_{c}=L\left(U \Theta_{c}, Y_{c}\right)+\Omega\left(\Theta_{c}\right)+\Omega\left(\Theta_{t}-\Theta_{c}\right)$$
和之前相比只是物品嵌入$\Theta_c$不同,其中两个物品嵌入之间的联系,用一个超参来控制它们的差异。

在实验里,通过平衡物品间曝光的概率,得到随机策略产生的数据,这部分我是比较的有疑问的。

感想

论文中认为只考虑推荐策略结果来训练模型的问题,解释了我一直以来的疑问。通过考虑用户自然行为来提升模型效果,这个概念我觉得是比较有意思的。但方法中简单使用多任务学习,我觉得好像也太简单了点。而且不适用于推广到其它复杂的模型上。