AutoDebias: Learning to Debias for Recommendation


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。

那么这时候我们就可以得到收集数据的集体为D_T.,它其中的每一项是一个三元组标签{(u_k,i_k,r_k)},标签空间为U\times I\times R

此时推荐任务就等于:基于D_T来了解用户偏好,学会做推荐。同时,偏差的定义可以引入𝛿 (., .)来解释,它表示预测和真实标签之间的误差函数。

此时我们认为,推荐学习的含参函数f_\theta :U\times I\rightarrow R长这样,它的学习数据集是D_T,且训练过程中需要最小化”真实风险“(因为是和真实反馈比较后产生的偏差):

L(f)=E_{p_U(u,i,r)}[\delta (f(u,i),r)]

中括号内的我们解释好了,接下来再说说p_U(u,i,r)是怎么来的(注意,这里U是p的下标),首先再定义上,p_U(u,i,r)表示的是模型测试时用户反应r的无偏分布(理想的,不是真有),用条件概率的表示我们可以将它拆分成 用户-物品对分布p_U(u,i)[在理想情况下,这种分布是均匀的]和 用户对物品的“事实”反应p_U(r|u,i) 的乘积。

很显然,我们没法得到真实的风险(我的理解是:因为根本没法得到完全实际的用户反应分布),因此在训练中优化的其实都是经验风险:

\hat{L_T}(f)=\frac{1}{|D_T|}\Sigma \delta (f(u_k,i_k),r_k)

根据无偏性,如果我们的经验风险\hat{L_T(f)}是无偏的,那它的期望就等于L(f)[数理统计的知识,死去的记忆攻击我],但很显然,这是理想情况。现实是数据不够大,所以选择的都是次优结果。

有偏经验风险

所以这里也说明了去偏的意义:如果不进行去偏,那么推荐系统一味拟合训练集的结果会导致其在现实测试环境中的性能下降。

(2)回顾之前的偏差

这里回顾偏差用的是2020年的综述:Bias and Debias in Recommender System: A Survey and Future Directions. arXiv preprint arXiv:2010.03240 (2020).(之后可能也得看看)

Selection Bias:用户选择偏差。这种偏差可以被理解为由于用户自由选择下不会乖乖遵守理想状态下p_U(u,i)的均匀分布,因此用户实际选择情况p_T(u,i)会脱离均匀分布p_U(u,i)。由于p_T(u,i)倾向于高评级价值的对(u,i),因此推荐模型会高估用户对物品的偏好。

Comformity Bias:从众偏差。简单来说,就是用户没有按照自己的喜好,而是基于从众心理而去产生r,那么这时候显然p_T(r|u,i)\neq p_U(r|u,i)

Exposure Bias:暴露偏差。暴露偏差来自两个方面:

    1)用户只对暴露的物品(也就是看到的一部分物品)进行反馈,所以显然p_U(u,i)\neq p_T(u,i)

    2)在进行反馈收集的时候,我们能得到的数据只有这种:p_T(r=1|u,i)=1,也就是用户选了某个物品的情况,而在用户没有选择的部分,其概率p不一定为0(我不拿不等于我完全不喜欢),所以没选择的这部分的实际情况是“未暴露的”

Position Bias:位置偏差。位置偏差代表了用户喜欢和高rank的物品做交互,因此首先影响了分布,也就是p_U(u,i)\neq p_T(u,i),然后,由于用户信任推荐系统,因此判断还会受到推荐系统中排名的影响,因此p_T(r|u,i)\neq p_U(r|u,i)

A GENERAL DEBIASING FRAMEWORK

1) 消除经验风险偏差的办法

如果认可前面的风险评估论,那么就可以看出:去偏本要消除E_{p_U(u,i,r)}[\delta (f(u,i),r)]L(f)之间的bias。而bias产生的原因在于实际数据和训练集的差别(废话),所以作者提出了一个重新加权训练数据+重新加权经验风险函数的公式:

在这里出现了一个参数w^{(1)}。在文章中,w_k^{(1)}=\frac{p_U(u_k,i_k,r_k)}{p_T(u_k,i_k,r_k)} ,也就是实际值和经验值的比,通过这种方式,经验分线”好像“等价于真实风险:

这里S_1表示这样的一个子空间(真实数据空间):S_1\equiv {(u,i,r)\in U\times I \times R: p_T(u,i,r)>0,p_U(u,i,r)>0}


而根据上面的图2,我们可以得知:S1只表示一部分数据,如果想要得到无偏的结果,就应该要把“伪数据(pseudo-data)”填充到S0的数据空间中去

基于这种填充的想法,我们可以将L(f)的计算给拆成S1和S0两个部分:

拆分后

这时候,前面S1的部分我们是了解的,所以要考虑S0怎么解释(也就是解释w_{ui}^{(2)}和m_{ui})

在这里,如果定义\phi \equiv {w^{(1)},w^{(2)},m},则可以得到这样的组:


在这里,I[]表示指示函数。

PS:指示函数的定义

所以这里的意思就是将p_T(u,i,r)=0作为检测这个三元组是否在S0中的标准。

另外对于m_ui有个很涩的操作:如果使用L2,L1和交叉熵损失等来表示偏差函数\delta (\cdot ),那么就可以让E[\delta(f(u,i),m_{ui})]=\delta(f(u,i),m_{ui}),因为有E[\delta(\cdot ,\cdot )]=\delta(\cdot,E[\cdot]),而m_{ui}是无偏的(期望依然是自己)

根据前面的变换,我们可以最终得到公式(7)

2)相关工作的去偏[这些到时候还是要看看论文的]

1.针对选择bias:

①Inverse Propensity Score(IPS)对数据进行重新的权重赋值。

在这里,q_{u_ki_k}表示数据被观测到的概率(但是具体怎么算没讲),用前面的角度来看,w1和w2按如下表达定义:

②Data Imputation 数据插补:为缺失数据分配伪标签,优化以下风险函数:

此时m_{ui}表示通过启发式的方法指定[21]或者是专用的模型[7,32,37],\lambda 则表示为控制估算数据的贡献。作者认为,这相当于我们框架下的一种特殊情况,只要按照下面的方法设置w_kw_{ui}.

③双倍稳健性:结合1)和2)

这里出现了O_{ui}以及d_{ui},这里分别解释:

d_{ui}=\delta (f(u,i),r_{ui}^o)-\delta (f(u,i),r_{ui}^i),表示的是预测错误和估算错误的不同。其中,r_{ui}^o是观察到的评估价值(也就是实际的评估价值),而r_{ui}^o是模型预测的评估价值。

O_{ui}表示(u,i)对是否被观察到。

使用之前的框架,我们可以这样设置参数。

2.针对从众bias:这种bias可以通过优化来抵消:

这里出现了一个b_{u_ki_k},它是一个引入的偏置项,相当于所有用户或者是其社交媒体上的朋友的评分平均值。在这里还有个\alpha,它表示的是对这种从众效果的控制程度(因为r_k是有从众可能的,但是b_{u_ki_k}是比较客观的表达)

在框架中,可以用以下方式来进行构建:

3.针对Exposure bias:两种方法:

1)负权重,对于没被观察到的(u,i)对取负权重,此时可以得到以下公式:

这里出现了没见过的参数a_{ui},它表示的是这个item(i)暴露给用户的可能性,由启发式方法或者是暴露模型(6,9,27)来指定,同样可以设置:

2)IPS变体:

ps:Varient IPS(IPS变体)的无偏性要求训练分布pT覆盖pU,所以很难成立。

4.针对position bias:也是采用IPS,不过是基于一个位置感知(postion-aware)的参数\hat{q}_{t_k}

公式及赋值如下:


4 AUTODEBIAS

(先看基本思路,具体做法明天再看)

总体思路:

首先,企图通过训练数据来消除所有偏差不太可能(因为根本不知道有什么偏差,也没有对应的无偏形式)。所以要引入一个统一数据集合D_U来进行参数学习,和前面类似,D_U中包含了多个(u_l,i_l,r_l)的三元组,而且每个三元组都通过随机日志策略采样(random logging policy),从而能作为一个无偏推荐表现的黄金标准。

需要优化的参数:\phi

模型:\theta

具体步骤:

1.Base Learner(基础学习):基本推荐模型。在基于当前的去偏参数\phi上进行学习[也就是一开始针对得到的大规模数据学习结果]。

换言之,在base learner上,去偏参数\phi就是超参

2.Meta Learner(元学习)

在得到\phi的基础上,我们希望进一步优化这个“超参”,从而使得它能够在引入的D_U上也表现良好。

&在这里,为了之后图3的表示方便,作者定义了一个和L_T对应的L_U,所以在这里就可以表示成:

\phi^*=arg_{\phi}minL_U(f_\theta)

问题:都这样了,为什么不直接拿D_U来训?用无偏的来训练不是更好吗?

答案:因为D_U(统一数据)是小规模收集得到,空间很小,扩大范围之后还是会导致有偏。

不过,用现在的方法去训,也会在Meta Learner阶段导致过拟合,所以需要一个Meta Model来对\phi进行重新参数化。重新参数化的作用:减少参数数量、将有用信息编码转为去偏数据。

在这里,Meta Model是一个简单的线性模型

解释:

X_u表示用户u的特征向量,X_i表示物品i的特征向量。(比方说id的one-hot向量)

e_r,e_{O_{ui}}则代表了rO_{ui}的one-hot向量

\circ 表示的是串联(concatenation)操作

此时,我们需要学习的参数就是\varphi_1,\varphi_2,\varphi_3

\sigma (.)则表示插入值(imputation value)的激活函数。

3.模型训练 Model learning

按照(1)和(2)的过程,我们每次更新\phi都需要对\theta进行一次完整的训练,这很昂贵。要解决这问题,一种可能方法是在一次循环中分别更新\theta\phi。换言之:每次训练时,先用当前的\phi来尝试对推荐模型做更新,并检查模型在D_U(统一数据)上的性能,这样,在D_U上面的loss就可以用来更新meta model。具体拆分成下图中的三步:

\theta->\theta  ’:假设性更新。使用学习率 η1 的梯度下降来更新 θ(黑色箭头)

②更新\phi(\varphi):在同一数据D_U上测试\theta’,这时候loss反馈用来更新\varphi。(蓝色箭头)。

更新方式是沿链反向传播计算梯度:

③更新\theta实际更新

5 THEORETICAL ANALYSIS

两个问题:

针对问题1:

定义:

\Phi 表示meta model的假设空间

F表示推荐模型的假设空间

f*表示最小化L(f)的最优函数

f(\phi)表示对\phi的经验最优(empirical optimum),也就是:

\phi^{\omicron}表示对\Phi的经验最优,也就是:

此时,对于现实风险,L_T(f|\phi^{*})是无偏估计,因此可以得到:

a.L_T(f|\phi^{*})泛化界限:

这里,S_{w^{(1)}}表示w^{(1)}的均方根,计算方法是:

\rho 表示损失函数\delta 的边界。

注意:当在空间\Phi中包含最优的\phi^{*}时,有这样的不等式:

根据这个不等式,还能得到一个推论:

这里的\varepsilon _1的定义:

b.类似于a,还有:

由a和b,我们可以得到:

c.AutoDebias的泛化误差边界

这个公式也转换成:

因此,当训练数据和统一数据足够多时,AutoDebias近乎最优,这说明趋势是一致的。问题1得证。

d.如果考虑归纳偏置(inductive bias,在算法当中进行的一些提前假设对实际结果产生的影响)的话,那么(22)就不成立了,但尽管这样,还是可以推导出下面的公式:

其中 So w(1) 表示 φo 中替代项 wo (1) 的均方,其中 So w (1) = |DT | Í k =1 (wo (1) k )2; Δ(1) , Δ(2) , Δm 分别表示由归纳偏置引起的 φo 和 φ* 之间的预期偏差,以 w (1) , w (2) , m 表示,也就是……(后面公式直接看)

d告诉我们,虽然存在归纳偏差,但泛化误差是有界的。

事实上,用归纳偏差约束元模型的容量通常可以提高模型性能。一方面,假设空间Φ的大小减小;另一方面,约束空间 Φ 中的代理最优值 φo 通常具有较小的方差,从而减小了均方 So w(1) 并进一步收紧了界限。

6 EXPERIMENT

需要解决的问题:

RQ1:AutoDebias 是否优于 SOTA 去偏方法?

RQ2:不同的组件(即 w (1) 、 w (2) 或 m 的学习)如何影响 AutoDebias 性能?

RQ3:学习后的去偏参数\phi是怎么纠正数据bias的?

RQ4:AutoBias是否能够解决各种类型的bias

实验覆盖数据类型:

显示反馈(这指的是用户明确提供的反馈,可能是通过评分、评论或其他直接的表达方式)、隐式反馈(这表示用户行为或其他间接信号,而非直接陈述的反馈。例如,用户点击、浏览历史等可以被视为隐性反馈)、基于推荐列表的反馈(推荐列表的概念:由推荐系统生成的包含个性化建议或推荐的列表)

1.实验设置:

(1)数据集:Yahoo!R3 和 Coat 2个数据集,内容为包括正常交互的有偏差数据,以及一小组无偏差数据。

在这里,有偏差数据设置为D_T,无偏差数据的分配是:5%作为D_U数据集用于训练,5%作为D_V,也就是验证超参数的数据集,剩下的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(也就是D_U),这里很重要的一点是,小规模情况下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):论文将\varphi w^{(1)}都进行了拆分:

这里的\varphi_{11}、\varphi_{12}、\varphi_{13}是从\varphi 来的,因为它是线性连接的,所以能这样拆分

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权重方差更大,这说明热门物品中的一部分可能是从众效应导致,并不可靠

[我的理解是:受欢迎的物品和不受欢迎物品的权重方差本来应该差不多,但是这里受欢迎的物品差距不大,说明有一部分的权重并不真实,而导致其不真实的原因来自于从众效应。]

The learned 𝑤 (1) 𝑖 for each item 𝑖 with its popularity

进一步则可以从图b和图c看出来,autodebias对受欢迎item的推荐结果比其他更低,而对不受欢迎的item推荐结果比其他要高一些,这说明autodebias在推荐上给不受欢迎的物品更多的机会。

5.Q4,对于隐式反馈和推荐列表反馈:都更好:

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,922评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,591评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,546评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,467评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,553评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,580评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,588评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,334评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,780评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,092评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,270评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,925评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,573评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,194评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,437评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,154评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,127评论 2 352

推荐阅读更多精彩内容