ABSTRUCT
1.针对差距分析偏差根源:采用风险差异来表现预期和真实之间的差异。(现有的都只针对一个偏差来解决)
2.提出通用学习框架,通过指定通用框架的参数来总结去偏。
3.提出AutoDebias,解决了双层优化问题来优化去偏参数。
Introduction
1.推荐中产生偏差的原因:用户的自我选择(选择偏差)[19, 33]、系统的暴露机制(暴露偏差)[ 34, 47]、舆论(conformitybias)[25, 29]和展示立场(positionbias)[22, 23]=>引发问题:放大长尾效应[1]和先前模型偏差[28]
2.解决偏差的方式:1)数据插补[19, 42],为缺失数据分配伪标签以减少方差,2)逆倾向评分(IPS)[ 39, 47],一种反事实技术,重新权衡收集的数据以进行期望无偏差学习,以及3)生成建模[27],它假设数据的生成过程并相应地减少偏差。
3.认为不好的地方:通用性和偏差不够。之前的方法都是解决一些一个或者两个偏差,而且在实际应用的时候是对于人的能力有要求的(相同的方法可能换了个数据分布就没法降低数据方差)
PRELIMINARY
(1)从经验风险的角度来理解偏差。
首先我们假设用户群体为U,单个用户是u;物品集合为I,单个物品是i;用户u对物品i产生的反应则为r,r的集合是R。
那么这时候我们就可以得到收集数据的集体为.,它其中的每一项是一个三元组标签,标签空间为
此时推荐任务就等于:基于来了解用户偏好,学会做推荐。同时,偏差的定义可以引入𝛿 (., .)来解释,它表示预测和真实标签之间的误差函数。
此时我们认为,推荐学习的含参函数长这样,它的学习数据集是,且训练过程中需要最小化”真实风险“(因为是和真实反馈比较后产生的偏差):
中括号内的我们解释好了,接下来再说说是怎么来的(注意,这里U是p的下标),首先再定义上,表示的是模型测试时用户反应r的无偏分布(理想的,不是真有),用条件概率的表示我们可以将它拆分成 用户-物品对分布[在理想情况下,这种分布是均匀的]和 用户对物品的“事实”反应 的乘积。
很显然,我们没法得到真实的风险(我的理解是:因为根本没法得到完全实际的用户反应分布),因此在训练中优化的其实都是经验风险:
根据无偏性,如果我们的经验风险是无偏的,那它的期望就等于[数理统计的知识,死去的记忆攻击我],但很显然,这是理想情况。现实是数据不够大,所以选择的都是次优结果。
所以这里也说明了去偏的意义:如果不进行去偏,那么推荐系统一味拟合训练集的结果会导致其在现实测试环境中的性能下降。
(2)回顾之前的偏差:
这里回顾偏差用的是2020年的综述:Bias and Debias in Recommender System: A Survey and Future Directions. arXiv preprint arXiv:2010.03240 (2020).(之后可能也得看看)
Selection Bias:用户选择偏差。这种偏差可以被理解为由于用户自由选择下不会乖乖遵守理想状态下的均匀分布,因此用户实际选择情况会脱离均匀分布。由于倾向于高评级价值的对(u,i),因此推荐模型会高估用户对物品的偏好。
Comformity Bias:从众偏差。简单来说,就是用户没有按照自己的喜好,而是基于从众心理而去产生r,那么这时候显然
Exposure Bias:暴露偏差。暴露偏差来自两个方面:
1)用户只对暴露的物品(也就是看到的一部分物品)进行反馈,所以显然。
2)在进行反馈收集的时候,我们能得到的数据只有这种:,也就是用户选了某个物品的情况,而在用户没有选择的部分,其概率p不一定为0(我不拿不等于我完全不喜欢),所以没选择的这部分的实际情况是“未暴露的”
Position Bias:位置偏差。位置偏差代表了用户喜欢和高rank的物品做交互,因此首先影响了分布,也就是,然后,由于用户信任推荐系统,因此判断还会受到推荐系统中排名的影响,因此。
A GENERAL DEBIASING FRAMEWORK
1) 消除经验风险偏差的办法
如果认可前面的风险评估论,那么就可以看出:去偏本要消除和之间的bias。而bias产生的原因在于实际数据和训练集的差别(废话),所以作者提出了一个重新加权训练数据+重新加权经验风险函数的公式:
在这里出现了一个参数。在文章中,,也就是实际值和经验值的比,通过这种方式,经验分线”好像“等价于真实风险:
这里S_1表示这样的一个子空间(真实数据空间):
而根据上面的图2,我们可以得知:S1只表示一部分数据,如果想要得到无偏的结果,就应该要把“伪数据(pseudo-data)”填充到S0的数据空间中去。
基于这种填充的想法,我们可以将L(f)的计算给拆成S1和S0两个部分:
这时候,前面S1的部分我们是了解的,所以要考虑S0怎么解释(也就是解释)
在这里,如果定义,则可以得到这样的组:
在这里,I[]表示指示函数。
PS:指示函数的定义
所以这里的意思就是将作为检测这个三元组是否在S0中的标准。
另外对于m_ui有个很涩的操作:如果使用L2,L1和交叉熵损失等来表示偏差函数,那么就可以让,因为有,而是无偏的(期望依然是自己)
根据前面的变换,我们可以最终得到公式(7)
2)相关工作的去偏[这些到时候还是要看看论文的]
1.针对选择bias:
①Inverse Propensity Score(IPS)对数据进行重新的权重赋值。
在这里,表示数据被观测到的概率(但是具体怎么算没讲),用前面的角度来看,w1和w2按如下表达定义:
②Data Imputation 数据插补:为缺失数据分配伪标签,优化以下风险函数:
此时表示通过启发式的方法指定[21]或者是专用的模型[7,32,37],则表示为控制估算数据的贡献。作者认为,这相当于我们框架下的一种特殊情况,只要按照下面的方法设置和.
③双倍稳健性:结合1)和2)
这里出现了以及,这里分别解释:
,表示的是预测错误和估算错误的不同。其中,是观察到的评估价值(也就是实际的评估价值),而是模型预测的评估价值。
而表示(u,i)对是否被观察到。
使用之前的框架,我们可以这样设置参数。
2.针对从众bias:这种bias可以通过优化来抵消:
这里出现了一个,它是一个引入的偏置项,相当于所有用户或者是其社交媒体上的朋友的评分平均值。在这里还有个,它表示的是对这种从众效果的控制程度(因为是有从众可能的,但是是比较客观的表达)
在框架中,可以用以下方式来进行构建:
3.针对Exposure bias:两种方法:
1)负权重,对于没被观察到的(u,i)对取负权重,此时可以得到以下公式:
这里出现了没见过的参数,它表示的是这个item(i)暴露给用户的可能性,由启发式方法或者是暴露模型(6,9,27)来指定,同样可以设置:
2)IPS变体:
ps:Varient IPS(IPS变体)的无偏性要求训练分布pT覆盖pU,所以很难成立。
4.针对position bias:也是采用IPS,不过是基于一个位置感知(postion-aware)的参数
公式及赋值如下:
4 AUTODEBIAS
(先看基本思路,具体做法明天再看)
总体思路:
首先,企图通过训练数据来消除所有偏差不太可能(因为根本不知道有什么偏差,也没有对应的无偏形式)。所以要引入一个统一数据集合来进行参数学习,和前面类似,中包含了多个的三元组,而且每个三元组都通过随机日志策略采样(random logging policy),从而能作为一个无偏推荐表现的黄金标准。
需要优化的参数:
模型:
具体步骤:
1.Base Learner(基础学习):基本推荐模型。在基于当前的去偏参数上进行学习[也就是一开始针对得到的大规模数据学习结果]。
换言之,在base learner上,去偏参数就是超参
2.Meta Learner(元学习)
在得到的基础上,我们希望进一步优化这个“超参”,从而使得它能够在引入的上也表现良好。
&在这里,为了之后图3的表示方便,作者定义了一个和对应的,所以在这里就可以表示成:
问题:都这样了,为什么不直接拿D_U来训?用无偏的来训练不是更好吗?
答案:因为(统一数据)是小规模收集得到,空间很小,扩大范围之后还是会导致有偏。
不过,用现在的方法去训,也会在Meta Learner阶段导致过拟合,所以需要一个Meta Model来对进行重新参数化。重新参数化的作用:减少参数数量、将有用信息编码转为去偏数据。
在这里,Meta Model是一个简单的线性模型:
解释:
表示用户u的特征向量,表示物品i的特征向量。(比方说id的one-hot向量)
则代表了和的one-hot向量
表示的是串联(concatenation)操作
此时,我们需要学习的参数就是
则表示插入值(imputation value)的激活函数。
3.模型训练 Model learning
按照(1)和(2)的过程,我们每次更新都需要对进行一次完整的训练,这很昂贵。要解决这问题,一种可能方法是在一次循环中分别更新和。换言之:每次训练时,先用当前的来尝试对推荐模型做更新,并检查模型在(统一数据)上的性能,这样,在上面的loss就可以用来更新meta model。具体拆分成下图中的三步:
①->’:假设性更新。使用学习率 η1 的梯度下降来更新 θ(黑色箭头)
②更新:在同一数据上测试’,这时候loss反馈用来更新。(蓝色箭头)。
更新方式是沿链反向传播计算梯度:
③更新:实际更新
5 THEORETICAL ANALYSIS
两个问题:
针对问题1:
定义:
表示meta model的假设空间
表示推荐模型的假设空间
f*表示最小化L(f)的最优函数
表示对的经验最优(empirical optimum),也就是:
表示对的经验最优,也就是:
此时,对于现实风险,是无偏估计,因此可以得到:
a.泛化界限:
这里,表示的均方根,计算方法是:
且表示损失函数的边界。
注意:当在空间中包含最优的时,有这样的不等式:
根据这个不等式,还能得到一个推论:
这里的的定义:
b.类似于a,还有:
由a和b,我们可以得到:
c.AutoDebias的泛化误差边界
这个公式也转换成:
因此,当训练数据和统一数据足够多时,AutoDebias近乎最优,这说明趋势是一致的。问题1得证。
d.如果考虑归纳偏置(inductive bias,在算法当中进行的一些提前假设对实际结果产生的影响)的话,那么(22)就不成立了,但尽管这样,还是可以推导出下面的公式:
d告诉我们,虽然存在归纳偏差,但泛化误差是有界的。
事实上,用归纳偏差约束元模型的容量通常可以提高模型性能。一方面,假设空间Φ的大小减小;另一方面,约束空间 Φ 中的代理最优值 φo 通常具有较小的方差,从而减小了均方 So w(1) 并进一步收紧了界限。
6 EXPERIMENT
需要解决的问题:
RQ1:AutoDebias 是否优于 SOTA 去偏方法?
RQ2:不同的组件(即 w (1) 、 w (2) 或 m 的学习)如何影响 AutoDebias 性能?
RQ3:学习后的去偏参数是怎么纠正数据bias的?
RQ4:AutoBias是否能够解决各种类型的bias
实验覆盖数据类型:
显示反馈(这指的是用户明确提供的反馈,可能是通过评分、评论或其他直接的表达方式)、隐式反馈(这表示用户行为或其他间接信号,而非直接陈述的反馈。例如,用户点击、浏览历史等可以被视为隐性反馈)、基于推荐列表的反馈(推荐列表的概念:由推荐系统生成的包含个性化建议或推荐的列表)
1.实验设置:
(1)数据集:Yahoo!R3 和 Coat 2个数据集,内容为包括正常交互的有偏差数据,以及一小组无偏差数据。
在这里,有偏差数据设置为,无偏差数据的分配是:5%作为数据集用于训练,5%作为,也就是验证超参数的数据集,剩下的90%用来评估整个模型的质量。
评价用户偏好时使用常数3作为阈值,换言之,观察到的评级大于3就认为是积极的(r=1),否则消极(r=-1)。
遵从之前工作,没有训练数据负反馈。
合成数据集Simulation:模拟用户对推荐列表的反馈。自己做的。
(2)评价指标:
NLL。评估预测表现。
AUC。评估排名表现。
NDCG@k。基于位置的重要性来判断推荐表现。
ChatGPT上的解释:
2.RQ1的实验:
Baseline:
(1) MF(biased)、MF(uniform) 和 MF(combine):分别在 DT 、 DU 和 DT +DU 上训练的基本矩阵分解模型;
(2)逆倾向评分(IPS)[39]:一种重新衡量收集数据的反事实技术。我们按照[39]并用朴素贝叶斯计算倾向;
(3)双重稳健(DR)[48]:结合数据插补和逆倾向评分;
(4) KDLabel [28]:最先进的方法,通过教师模型传输无偏差信息。我们参考[28]并选择最好的基于标签的蒸馏进行比较。
(5)CausE[28]:用额外的对齐项提取无偏见的信息。
实验结果:
首先是总体去偏方面,确实很fucking好。
然后对于不同的uniform data size(也就是),这里很重要的一点是,小规模情况下AutoDebias表现依然良好,但是有的方法(比如KD-label)就阳痿了。
3.RQ2实验结果:所有参数都很重要。(w1,m,w2)
尽管w2在coat上有点损害,但是有利于yahoo!R3。
就算移除插补模块,autodebias-w1也比IPS好,说明baselearner阶段找w1的有效性。
4.RQ3
对于m:从Table5中,作者发现在填补值上有positive>missing>negative(越小这个值越好),而missing的值夹在中间却也非常小,和之前发现的“用户高概率厌恶随机选择item”的性质一致。
对于w(1):论文将和都进行了拆分:
这里的是从来的,因为它是线性连接的,所以能这样拆分
u、i、r分别对应用户、物品和反馈
接下来table6对其中wr进行了分析:
AutoDebias-w1:消融的AutoDebias(没有进行imputation value),这里可以看出来对r=-1(negative)的值变大了,对r=1(positive)的值变小了。
作者认为:AutoDebias对于缺失的数据(imputation value)有填充,因此就不需要额外进行对negative instances(负例)再进行额外区分,因此数据充分,就转而去学习了数据置信度等其他方面。
table7(a)分析了wi,发现其权重随着物品流行度(也就是受欢迎程度)的增加而减小,说明热门的item反馈是过度表征的,要降权;此外,不流行的item权重方差更大,这说明热门物品中的一部分可能是从众效应导致,并不可靠
[我的理解是:受欢迎的物品和不受欢迎物品的权重方差本来应该差不多,但是这里受欢迎的物品差距不大,说明有一部分的权重并不真实,而导致其不真实的原因来自于从众效应。]
进一步则可以从图b和图c看出来,autodebias对受欢迎item的推荐结果比其他更低,而对不受欢迎的item推荐结果比其他要高一些,这说明autodebias在推荐上给不受欢迎的物品更多的机会。
5.Q4,对于隐式反馈和推荐列表反馈:都更好: