因果推断推荐系统工具箱 - SSL_RDC(一)

文章名称

Self-supervised Learning for Alleviating Selection Bias in Recommendation Systems

核心要点

文章旨在解决推荐系统的Selection Bias。依作者观察,不同用户的评分结果(或反馈结果)受到选择性偏差的影响程度是不同的。因此,提出一种自监督学习的框架,引入评分分布校准损失。利用少量随机试验数据,迭代的选取“种子”用户。迫使相似用户中,有偏差的用户的评分分布接近无偏差的用户的评分分布,从而消除选择性偏差的影响。

方法细节

问题引入

Selection Bias是推荐系统常见的一种bias,影响模型在未观测数据上的表现(也就是泛化能力)。原有解决这一问题的方法,如EIB和IPS都严重依赖于插值模型和倾向性得分模型的预估准确性。

通过观察数据,作者发下不同用户的评分结果受到选择性偏差的影响程度不同,而这个影响直接反映在评分分布上,具体偏差如下图所示。其中,用户A和D没有收到偏差的影响,而其他用户则严重偏离了真实分布.

different user has different selection bias level

我们定义,推荐模型(可以是评分也可以是排序模型)为\mathcal{M}: (u, i) \rightarrow r_{u,i},完整的评分矩阵为\mathcal{R} = \{(u, i, r_{u,i})\},观测到的评分为\mathcal{R}^o = \{(u, i, r_{u,i}) | o_{u,i} = 1\},推荐模型的预测评分矩阵的\hat{\mathcal{R}}。可以用如下公式衡量推荐模型的预估准确性。

prediction error

通常我们是无法获得完整评分矩阵的,可以利用随机试验获得的MAR的评分\mathcal{R}^{test}来进行无偏评估,评估方法如下图所示。

prediction error on test dataset

因此,作者把推荐模型的目标形式化为,给定观测数据\mathcal{R}^o = \mathcal{R}^o_{MNAR} \cup \mathcal{R}^o_{MAR},最小化\mathcal{E}^{test}

具体做法

原有的推荐模型采用最小化经验风险(MSE或者其他损失函数)的方法来学习模型参数。如前所述这样的直接学习法会受到选择性偏差的影响。由于不同用户受到偏差影响的程度不同,我们可以利用受影响程度较小(模型预测较准确的)用户的评分分布去校准受影响程度较大(模型预测偏差较大)的用户的评分分布。收集到MAR数据重点用户可以被认为是没有收到偏差影响的用户,1)把他们作为种子用户提取评分分布特征,2)在受到偏差影响的用户(称为非种子用户)中寻找与种子相似的用户,3)并利用SSL框架校准这些非种子用户,循环这个过程。

某个用户对所有物品的评分预测可以表示为\hat{r}_{u} = \{\hat{r}_{u_1}, ... , \hat{r}_{u_M}\},其中1...M为物品的标号。g(\hat{r}_{u})是一个函数把用户的评分映射到评分分布。为了能够对函数求导,不可以使用离散(频次)函数或者分布特征函数(如均值方差?其实感觉可以用这个方式)。作者提出了以核函数的形式进行评分分布特征建模,具体建模如下图所示,其中K是kernel的数量(或者特征函数的数量),\tau表示平滑的程度。

distribution feature function

由于种子用户在MAR测试数据集\mathcal{R}^o_{MAR}上的预估准确度较高。因此,我们利用用户在该数据集上的表现来进行种子用户的筛选。如果模型对某些用户评分预估的MAE小于给定的超参数预支t,我们认为这些用户属于种子用户\mathbb{P}_+^{(n)},具体可以形式化为如下公式。

filter pivot users

因此其他用户为非种子用户\mathbb{P}_-^{(n)}。利用评分分布特征点\mathbb{l}^2-norm来衡量分布的相似程度,度量公式如下图所示。

distribution similarity

进而,可以利用如下图所示的SSL损失来校准非种子用户的评分分布。

SSL objective function

随着评分模型参数的不断更新(不断学习),更多的用户在MAR上获得准确度预估结果,更多的非种子用户转换为种子用户。为了加快模型收敛,我们先在观测数据上用MSE与预训练模型。随后,1)评估所有用户的预估准确度,并划分种子和非种子用户;2)为非种子用户寻找相似的种子用户;3)计算SSL损失\mathcal{L}_{SSL};4)计算MSE损失\mathcal{L}_{MSE},得到完整的损失\mathcal{L} = \mathcal{L}_{MSE} + \mu\mathcal{L}_{SSL};5)更新评分模型;6)在验证集上验证预估准确程度。循环上述步骤直到验证集上的性能在p个epoch内都没有提升。

代码实现

文章的伪代码如下图所示。

pseudo code

心得体会

无法用分布特征函数?

个人理解,其实可以利用均值、方差等特征分布函数来从种子用户的评分结果中提取评分分布特征,(VAE不就是这样的模型?)。只是这样会导致评分分布数固定的(参数化模型相比非参数化模型的劣势)。

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

推荐阅读更多精彩内容