SIGIR21-自动消除搜索推荐排序bias:ALL you need is AutoDebias

 

 
论文:AutoDebias: Learning to Debias for Recommendation
会议:ACM SIGIR 2021
下载地址:现在SIGIR的论文好像还没有公开下载地址,我把他放百度网盘了。关注公众号,回复autodebias即可。
       前段时间跟中科大何向南老师团队的陈佳伟博士有过一次两小时的技术交流,顺便跟进一下看了看他们最近的Paper。
 
 
总起:
 

       今天给大家分享一篇很有趣的文章。也算是Debias领域比较新颖的工作了。能不能落地我暂时没有实战。不过落地的话他这个需要收集一个随机没有Bias的数据集。

     我们都知道,目前运行的推荐系统中存在很多不平等问题。以电商平台为例,从用户角度来看,他只能在推荐系统给他推荐(搜索排序)的列表中选择买哪些产品,其实这些产品是从数以万计的产品池中挑出来的,很难保证没被选上的产品Ws就不满足用户需求。对于这些产品Ws就是不公平的,这个叫做曝光不公平性;其次,由于有的产品排前面,有的产品排后面,那些排前面的“关系户”对其他产品来说也是不公平的。这个是位置的不公平。还有很多不公平的地方,比如说最近流行一种裙子,导致他得到的流量多,那些精美的不流行的裙子就得不到更多的光顾。就像两家牛肉米粉店,如果一家店里人多,另一家店里没人,很多人就会选那家人多的。

     而推荐算法就是一个放大器,他的训练集来自于这样不公平收集到的数据,然后训练一个算法,让这种不公平不断迭代放大。因此如何解决这个不公平就成了算法魔法师的责任。

      这篇论文的整个思路大致如下:使用元学习(后面会详细介绍)的方法来训练模型。结构相同的模型有两个:meta_model和 ing_model。ing的意思就是进行时。数据集呢也有两个,一个是自然收集到的不公平训练集D1,然后呢,还有一个是特意收集到的随机没有不公平性的数据集P2。这个数据集的收集过程大概就是无论一个产品好卖与否,都有同等的在第一个位置曝光的机会。详细的数据集你可以看这个数据集的说明:

R3 - Yahoo! Music ratings for User Selected and Randomly Selected songs, version 1.0 (1.2 MB)

    首先用meta_model0初始化ing_model,然后在训练集D1上迭代到ing_model1,然后计算ing_moede1在数据集P2上的loss,通过这个loss来反向传播优化Meta_model0到meta_model1。逐渐这样迭代,保证学习到的meta_model在随机数据集上的loss也很低。这样就相当于自动debias了。这个思想就是meta-learning的精髓。

 
 
 
开篇:motivation
 
     目前的Debias方法很麻烦,例如谷歌的这篇文章[5],他是通过加入先验知识来debias的。
 


 


 
 
还有把位置信息加入特征来debias的。这些方法都比较麻烦,不够优雅。论文作者从meta-learning的思路出发,让模型在收集到的不公平数据集上训练,但保证在公平的随机数据集上也能有好效果,这样就自动消除不公平(debias)了。
 
 
 
第一章:meta learning 快速上手

     这篇文章我也搞了好久才弄明白。核心关键是我对meta-learning不熟。所以要想弄明白这篇论文,一定要搞明白元学习。事实上,这个论文可以说就是元学习在debias上的应用。
       我翻了很多资料,发现这段话是对元学习解释的比较清楚的。如果一开始看不明白,多把这段话看几遍就懂了。

 
       搞明白这段话有两个关键。第一个是,他有两个模型,一个是fai(meta网络),一个是sita(参数sita都有网络)。他有两个数据集,一个是suport set,一个是queryset, 在suport set上学知识,在queryset 上校验学习成果。根据query set的结果来更新meta 网络。
   
       通俗地讲,传统的机器学习就是死读书,一个个Model就在练习题中不断做题目,得到反馈,然后就去考试拿成绩,死读书往往成绩不理想,因为考试的题目往往跟练习题长的不一样,他就不会变通了;而meta-learning呢,就是活读书的人,每次都是做一会练习题,就给他考试一次,然后对他是否活学活用打分,一段时间后,这个人就非常活了。脑子反应很快。思维敏捷会 变通。
       
第二篇:Auto Debias的整体思路
 
       整体思路的图如下:
 
      


 
 
       这个图我之前一直没搞明白。这个图不好看。后来终于搞清楚了。其实他这个图画的不太好,很多地方没有区分度。我来解释一下:左右两个网络结构其实是一个,就是ing_model,然后中间这个网络结构是meta-model。然后Dt是不公平数据集,Du是公平数据集。然后你根据backward的箭头走,再套上元学习的步骤,就理解了。
 
       当然,文章中对过拟合的问题有修复。就是Du不公平数据集一般都很小,为了防止过拟合,论文中讲了一个比较有意思的处理方法。感兴趣的带着这个问题去看论文吧。
 
    这段话是刷格式没有删除的。。。强化学习来做自动驾驶决策器的文献和代码做一个整理。方便大家全面了解这个领域。自动驾驶一辆汽车是一个复杂决策问题。强化学习作为一个策略学习器,来做这个事情是比较合适的。有着广阔的前景。尽管目前没有全面接管,还在实验研究阶段,但终究会成为主流决策器。小RL Agent 从一开始模仿学习人类的驾驶决策行为,到可以学会自己跑直线,再到逆强化学习(IRL)来学习人类驾驶行为背后的激励函数,再到最近可以在CALAR模仿器中end2end的驾驶一辆汽车跑复杂城市道路。一大。


参考文献
 
  1. Finn C, Abbeel P, Levine S. Model-agnostic meta-learning for fast adaptation of deep networks[C]//Proceedings of the 34th International Conference on Machine Learning-Volume 70. JMLR. org, 2017: 1126-1135.
  2. Nichol A, Schulman J. Reptile: a scalable metalearning algorithm[J]. arXiv preprint arXiv:1803.02999, 2018, 2: 2.
  3. https://zhuanlan.zhihu.com/p/136975128
  4. https://webscope.sandbox.yahoo.com/catalog.php?datatype=r
  5. https://www.unofficialgoogledatascience.com/2020/11/adding-common-sense-to-machine-learning.html
 

人工智能算法岗位的一点思考
Amazon算法科学家李沐:工作五年后的反思
搜索推荐的debias全面总结(113页PDF)
 

请使用浏览器的分享功能分享到微信等