咱们来自字节跳动飞书商业使用研发部(Lark Business Applications),目前咱们在北京、深圳、上海、武汉、杭州、成都、广州、三亚都设立了办公区域。咱们重视的产品范畴首要在企业经历管理软件上,包括飞书 OKR、飞书绩效、飞书招聘、飞书人事等 HCM 范畴体系,也包括飞书批阅、OA、法务、财务、收购、差旅与报销等体系。欢迎各位参加咱们。

本文作者:飞书商业使用研发部 黄兆龙

欢迎咱们重视飞书技能,每周定时更新飞书技能团队技能干货内容,想看什么内容,欢迎咱们评论区留言~


什么是引荐体系?

引荐体系的实质可以理解为是三个要害组件的反应循环:User、Data、Model;

  • User→Data(Collection):表明从用户那里搜集数据的阶段,这些数据包括user-item的交互行为,比方点击、逗留、评分、转化等,以及一些 side info,比方用户画像,物品属性,上下文等等;
  • Data->Model(Learning):表明依据搜集的数据学习引荐模型的阶段。其间心是从前史行为中获取用户偏好,并猜测用户关于方针的物品是否喜爱的或许性;
  • Model→User(Serving):表明将引荐成果回来给用户的阶段,以此来满足用户的信息需求。这个阶段将影响用户未来的行为和决策。

经过这个循环,用户和引荐体系之间处于一个彼此动态进化的过程,用户的个人爱好和行为经过引荐体系不断的得到更新,而引荐体系可以经过不断更新的数据自我学习。

常见的Bias

What’s Bias?

Bias这个词在引荐体系中很常见,可以翻译为「误差」,界说为学习算法的期望猜测与实在成果的偏离程度。上面说到引荐体系实质上是一个反应循环,那么在这个反应循环的链路中每个结点都会导致不同类型的误差。

Bias in Data (User->Data)

第一类误差是数据误差,首要发生在user->data的阶段,那么为什么会发生这类误差?

  • 抱负中的数据:拿一切的物品去问每个人,拿到每个人关于每个物品的行为数据;
  • 实践中的数据:用户只能观测到部分物品,并且只对部分观测的物品有交互行为数据,一起用户的交互行为简略遭到各种外界要素影响;

所以数据误差的实质,便是练习数据集的散布和抱负的测试集散布不一致;

蓝色线是练习的经历危险,赤色线是抱负的实在危险,

假定练习数据找到最优解f^T的时分,此时和抱负的实在危险,依然有△L的误差;

Selection Bias 挑选误差

挑选误差首要发生在用户的显现反应中,比方需求用户对物品进行数字打分的场景(图书的星级评分,电影的喜好打分等场景),因为用户可以自由挑选要评分的项目,因而咱们搜集到的打分数据是稀少的,并不是一切数据的代表性样本,这便是挑选误差的界说。

导致挑选误差的原因首要有两点:

  1. 用户倾向于挑选和点评他们喜爱的物品;
  1. 用户更有或许对特别好或许特别差的物品进行打分;

Conformity Bias 一致性误差

一致性误差,相同也是发生在用户的显现反应中,但同挑选误差不同的是,一致性误差的原因并非是受观测到的数据所影响,更多是受人的“社会性”要素以及“从众效应”所影响,一致性误差的界说如下:

一致性误差发生在用户的行为往往趋于与“同组”的其他人相似,即使这样做违背了他们自己的判别,使得反应并没有反映出用户的实在偏好。

  • 假定《阿甘正传》我看完心里觉得只值2星:

    • 假如我看不到他人的点评,也不知道他人对该影片的点评,或许就会打出2星;
    • 假如点评的时分看到了统计数据,发现大部分人都点评5星,我或许想自己是不是太苛刻了,或许我是不是没看懂,或许就会给个4星;
    • 假如点评的时分看到了具体打分的数据,里面有我的许多朋友都给出了5星的点评,那我或许为了融入咱们,也相同打出个5星;

Exposure Bias 曝光误差

  • 显现反应:比方评分、评级等行为,表明用户清晰对物品的态度,数据准确性较高,但比较稀少;
  • 隐式反应:首要反映在用户的自然行为中,比方查看、逗留、点击、购买等等,数据量非常大,但准确性不足且包括噪声;
  • 曝光误差,便是发生在用户的隐式反应中,因为用户只能接触到一部分特定的物品,那么关于未观察到的交互,或许代表着用户不感爱好,也或许是用户不知道但或许感爱好,这种状况就带来了曝光误差;
    •    曝光误差一般有若干种状况:
    • 因为曝光的物品是受之前引荐体系的影响,它操控着哪些物品会曝光,因而曝光误差也会称作“previous model bias”;
    • 用户一般会活跃的搜索自己感爱好的物品,也会更活跃的与感爱好的物品交互,使得高度相关的物品更或许被曝光,在这种状况下,曝光误差也叫做“user-selection bias”;
    • 用户的背景也是影响曝光的要素,比方说社交关系,地理方位等,也会影响曝光的物品;
    • 用户更或许看到抢手的物品,因而“popularity bias”也是某种意义上的曝光误差;

Position Bias 方位误差

方位误差也是发生在用户的隐式反应中:用户倾向于与引荐列表更高方位的物品进行交互,无论物品的实践相关性怎么,所以导致交互的物品或许不会高度相关,方位误差在引荐体系中非常常见,尤其是广告体系和搜索引擎中。

  • 有几种原因或许导致方位误差:
    • 人眼的可视视点是有限的(120度左右),依据眼球追踪的研讨来看,用户一般不太注意笔直列表中排名较低的物品,会更简略注意到列表的头部方位;
    • 用户一般会更信任列表中的Top成果,然后停止查看后面的成果,导致用户没有全面的评价整个列表(搜索引擎中很常见)

Bias in Model (Data->Model)

Inductive Bias 概括误差

概括误差是发生在数据到模型的练习阶段,是指为了让模型更好的学习方针函数以及泛化练习数据,咱们不得不做出一些额定的假定而带来的误差。

  • 机器学习的中心便是为了猜测那些模型没有见过的数据,那么没有对数据或许模型的假定,就无法实现模型的泛化性,所以在构建引荐体系的时分需求对方针函数增加一些假定,有一些比较典型的比方:
    • 在矩阵分化算法里,会将用户和物品的交互预算成二者向量的内积,这便是一种假定;

    • 在负采样的过程中,会采样一些hard数据来提高模型学习能力,要么由此发生的丢失函数与原始的就会有所差异;

    • 在label的选取上,用户对一个视频是否感爱好,应该使用播放时长为方针,还是完播为方针,不同的方针都带来了不同的假定;

Bias and Unfairness in Results (Model→User)

Popularity Bias 盛行度误差

盛行度误差,简略来说热的更热,冷的更冷,受欢迎的物品被引荐的频率乃至比它们的受欢迎程度更频频 ,为什么会出现这种误差?

长尾效应在引荐体系中很常见,大多数状况下,一小部分盛行的物品会占有大多数用户的交互,此类数据的练习将会导致抢手物品的打分越来越高,引荐抢手产品的频率乃至比数据集中显现的原始受欢迎程度还要频频;

  • 盛行度误差会带来许多问题:
    • 会下降用户的个性化体会,因为不同用户的偏好各不相同,一直引荐抢手产品会损害用户体会;
    • 会下降成果公平性,因为抢手产品并不总是高质量,过度引荐高热会挤压其他优质内容;
    • 进一步增加了盛行物品的曝光时机,导致未来搜集的数据更加的不平衡,导致马太效应;

Unfairness 不公平成见

关于公平的一种界说:没有根据个人或集体的内涵或后天特征而对他们有任何成见或偏袒

那么引荐体系中不公平成见,即是体系不公平的轻视某些个人或集体,以利好其他人;

不公平问题一直在引荐体系中很常见。特别是依据种族、性别、年纪、教育水平或财富等属性,不同的用户集体在数据中的代表性一般不平等。在对此类不平衡数据进行练习时,这些模型极有或许了解这些代表性过高的集体,在排名成果中强化他们,并或许导致体系性轻视并下降弱势集体的可见度;

    • 在简历引荐范畴,优异学历的人更简略排序在前面;
    • 在书本引荐范畴,引荐男性作者的书本会让引荐体现更好;

Feedback Loop Amplifies Biases

引荐体系实质上便是一个循环,那么当循环的每个途径过程中都会发生误差的状况下,就会变成恶性循环不断的放大Bias。

常见的Debias办法

上面体系介绍了学术界常见的7种Bias,本文针对其间工业界最常见的3种bias总结了一些处理的办法。

Methods for Exposure Bias

Debiasing in evaluation

第一类办法首要从模型评价的视点动身,引进IPS来纠偏

Inverse Propensity Score

抱负中的评价办法:

R(Z)=1∣U∣∑u∈U1∣Gu∣∑i∈Guc(Zui)R(\hat{Z})=\frac{1}{|\mathcal{U}|} \sum_{u \in \mathcal{U}} \frac{1}{\left|\mathcal{G}_{u}\right|} \sum_{i \in \mathcal{G}_{u}} c\left(\hat{Z}_{u i}\right)

  • Zui\hat{Z}_{u i} 是引荐体系回来的关于user和item的打分,函数c是咱们的衡量目标(auc,ndcg等)
  • Gu\mathcal{G}_{u} 代表了和user相关的一切item的调集

但是因为曝光误差,用户只观察到部分项目,因而模型一般依据有成见的隐式反应进行评价:

RAOA(Z)=1∣U∣∑u∈U1∣Gu∗∣∑i∈Gu∗c(Zui)\begin{aligned} \hat{R}_{\mathrm{AOA}}(\hat{Z}) &=\frac{1}{|\mathcal{U}|} \sum_{u \in \mathcal{U}} \frac{1}{\left|\mathcal{G}_{u}^{*}\right|} \sum_{i \in \mathcal{G}_{u}^{*}} c\left(\hat{Z}_{u i}\right) \\ \end{aligned}

  • Gu∗\mathcal{G}_{u}^{*} 代表了那些被曝光给用户的物品调集;

为了处理这个问题,咱们可以给每一条隐式反应的数据增加一个反向的倾向分ρui\rho_{u i} 。直觉的做法便是下降曝光数据的权重,一起提高未曝光数据的权重。因而,根据IPS的无偏评价的界说如下:

RIPS(Z∣ρ)=1∣U∣∑u∈U1∣Gu∣∑i∈Gu∗c(Zui)ρui=1∣U∣∑u∈U1∣Gu∣∑i∈Guc(Zui)ρui⋅sui\begin{aligned} \hat{R}_{\mathrm{IPS}}(\hat{Z} \mid \rho) &=\frac{1}{|\mathcal{U}|} \sum_{u \in \mathcal{U}} \frac{1}{\left|\mathcal{G}_{u}\right|} \sum_{i \in G_{u}^{*}} \frac{c\left(\hat{Z}_{u i}\right)}{\rho_{u i}} \\ &=\frac{1}{|\mathcal{U}|} \sum_{u \in \mathcal{U}} \frac{1}{\left|\mathcal{G}_{u}\right|} \sum_{i \in \mathcal{G}_{u}} \frac{c\left(\hat{Z}_{u i}\right)}{\rho_{u i}} \cdot s_{u i} \end{aligned}

在实践使用中,该办法是否有用首要取决于IPS的规划,假如规划不好,或许会引进更大的人为误差;

Debiasing in Model Training

第二类办法首要是在模型练习中修正bias的办法,为了可以从隐式反应提取负例的数据,一种直观的战略是把一切未曝光的数据都当做负例,但是每条数据需求赋予一个置信度的权重。

咱们的方针函数一般可以这么表明:

LW=1∣U∣∣I∣∑u∈U,i∈IWuiδ(rui,sui)\hat{L}_{W}=\frac{1}{|\mathcal{U}||\mathcal{I}|} \sum_{u \in \mathcal{U}, i \in \mathcal{I}} W_{u i} \delta\left(\hat{r}_{u i}, s_{u i}\right)

  • suis_{ui} 表明user和item是否有实在的交互行为;
  • WuiW_{ui} 表明置信度权重,操控(u,i)(u,i) 有或许存在交互行为的概率

那么问题的中心就变成了置信度的权重该怎么规划,一般有如下几种常见的办法:

Heuristic

中心思路:

  • sui=1s_{ui}=1 的时分,Wui =1 W_{ui} = 1 
  • sui=0s_{ui}=0 的时分,Wui =c (0<c<1)W_{ui} = c (0< c <1)

    • 权重和user相关:Wui=cu,cu∝∑isuiW_{u i}=c_{u}, c_{u} \propto \textstyle\sum_{i} s_{u i} 用户交互的item越多,用户的权重就越高(意味着这些用户有更大的或许性触达未曝光的物品)
    • 权重和item相关:item被曝光的次数越高,权重越大(意味着曝光越多的物品越有或许性触达给没看过的用户)
    • 权重可以和user-item之间的特征相似性有关,特征越相似则权重越高

缺陷:

  1. 不同的user-item组合权重或许是不一样的,需求依靠丰富的人工常识+大核算资源来网格搜索;
  1. 没法办法手动指定百万级以上数据的权重,粗粒度的权重或许引进更多的人为误差;

Sampling

中心思路:经过采样的办法来操控哪些数据可以进行模型练习以及这些数据的练习频次,假定采样概率为puip_{ui} ,那么丢失函数等价于:

E(u,i)∼p[δ(rui,sui)]=∑u∈U,i∈Ipuiδ(rui,sui)\mathbb{E}_{(u, i) \sim p}\left[\delta\left(\hat{r}_{u i}, s_{u i}\right)\right]=\sum_{u \in \mathcal{U}, i \in \mathcal{I}} p_{u i} \delta\left(\hat{r}_{u i}, s_{u i}\right)

那么采样散布其实就等价于咱们的置信度权重;

  • 最常见的办法便是随机负采样,关于盛行的负样本可以过采样,因为更或许被曝光;
  • 使用更多的side info在弥补采样战略,比方使用曝光未点击的数据,使用社交网络的信息,使用item-based的常识图谱

Methods for Position Bias

关于方位误差的消偏办法,首要有两大类办法:

Click Models

第一类办法是在模型中引进position的信息,在模型练习中进行消偏;

  1. position作为特征(Airbnb的做法):

    1. 直接在模型特征中参加position特征,让模型自己学习,在猜测的时分将特征置为0,这样处理会比较简略导致成果下降(练习时过度依靠方位信息,猜测时方位信息丢失,导致变差)
    2. 为了减少相关性核算对position feature的依靠,可以在练习阶段对position feature进行Dropout,可以必定程度减少模型对方位特征的依靠
  1. position作为模块(shallow tower)(YouTube的做法)

假如不去除position bias,那么用户对一个item的ctr是由user engagement(用户偏好)和position bias共同形成的。假如可以将user engagement和position bias独立开来,将有助于提高模型的引荐质量。

YouTube提出的做法相似wide&deep,即增加一个浅层网络(shallow tower),输入position feature, device info(原因是在不同的设备上会观察到不同的方位误差), 以及其他可以带来方位误差的特征,输出为position bias重量。这就将user engagement和position bias 独立开来了。

在主模型的输出层的sigmoid激活函数之前,加上浅层网络的bias重量。练习的时分,随机丢掉10%的方位特征,避免模型过度依靠方位特征。猜测的时分,直接丢掉浅层网络。

  1. position作为模块(PAL)(Huawei的做法)

首先有这样的假定:假如用户点击了某个物品,那么必定是“看到了”该物品,并且对该物品感爱好,那么用户关于物品i在方位p点击的概率可以表明为:

P(C=1∣u,i,p)=P(C=1∣u,i,E=1)⏟rui⋅P(E=1∣p)⏟hp\begin{aligned} &P(C=1 \mid u, i, p) \\ &=\underbrace{P(C=1 \mid u, i, E=1)}_{r_{u i}} \cdot \underbrace{P(E=1 \mid p)}_{h_{p}} \end{aligned}

  • 假如用户点击了物品,则该物品有必要被人眼看到了;
  • 假如用户看到了该物品,那么点击概率仅取决于其相关性;
  • 用户是否看到该物品仅取决于方位

根据该假定,就可以分开建模:

其间:ProbSeen部分是预估广告被用户看到的概率,pCTR部分是用户看到广告后,点击广告的概率,然后loss是两者的结合:

L (θps,θpCTR) =1N∑i=1Nl(yi,bCTRi)=1N∑i=1Nl(yi,ProbSeen⁡i×pCTRi)L \left(\theta_{p s}, \theta_{pCTR}\right) =\frac{1}{N} \sum_{i=1}^{N} l\left(y_{i}, bCTR_{i}\right)=\frac{1}{N} \sum_{i=1}^{N} l\left(y_{i}, \operatorname{ProbSeen}_{i} \times p C T R_{i}\right)

线上servering的时分,直接预估pCTR即可(ProbSeen都看作是1);

PAL的规划其实和ESMM非常相似,都是将事情拆解为两个概率事情的连乘,只不过PAL的假定过强,某些场景下这样的假定并不合适。

PAL和shallow tower的差异在于PAL是连乘概率,而shallow tower是相似wide&deep的相加。

IPS/IPW

第二类办法是用通用的IPS办法来处理,引进和方位相关的倾向分,来对练习loss进行调权,

LIPS(f)=∑u∈U,i∈I1ρ(q)suiλ(u,i∣f)L_{\mathrm{IPS}}(f)=\sum_{u \in \mathcal{U}, i \in I} \frac{1}{\rho(q)} s_{u i} \lambda(u, i \mid f)

咱们引进和方位q相关的ρ(q)\rho(q) 来作为每个instance的loss的权重,这个模型背后的直觉是,那些用户更难看见的物品(比方排序更靠后的物品)应该赋予更大的权重,以此来弥补偿方位误差的影响。

Methods for Popularity Bias

关于盛行度误差的消偏办法,首要有几种办法:

Adversarial Learning

使用对立学习的思路,规划一个判别器D来抵消这种误差,提高长尾数据的曝光时机;

判别器D的输入有两个,

一个是生成的“盛行-长尾”pair对(i~p,i~n∣u)\left(\tilde{i}^{p}, \tilde{i}^{n}\mid u\right) ,经过引荐体系的成果生成;

一个是实在的“盛行-长尾”paire对(ip,in)\left(i^{p}, i^{n}\right) ,经过大局的共现采样中得出;

经过引荐模型G和判别器D的对立练习,可以让判别器D学出盛行物品与长尾的潜在联络,一起让引荐模型G可以学到和用户前史相关的长尾物品。从而为用户引荐各种长尾物品。

Causal Graphs

因果图是反现实推理的有力东西,假定用户的点击取决于爱好和盛行度,那么可构建如图a的因果图:

在实践使用过程中如图b,可以将用户和物品的Emebdding解耦为爱好Embedding和盛行度Embedding,使用多任务的结构练习,让爱好Embedding和盛行度Embedding尽或许独立,空间足够远,最终在线上使用的时分,可以只用爱好的Embedding,以此来消除盛行度误差。

参考资料

  • arxiv.org/abs/2010.03…
  • RS Bias Debias综述
  • 引荐体系中的bias与debias
  • cloud.tencent.com/developer/a…


参加咱们

扫码发现职位&投递简历

官网投递:job.toutiao.com/s/FyL7DRg