文章名称
核心要点
通常推荐系统收集到的数据集都不是随机缺失(MAR)的。同其他解决Selection Bias(造成数据MNAR)的方法一样,这篇文章的作者假设评分数据生成的过程包括三个部分,1)物品被曝光给用户;2)用户选择一些物品;3)只对其中一些物品进行评分。作者提出TCF,显式建模这三部分。并且假设用户选择为某个物品评分,是用户对该物品的偏好,以及该物品被曝光给该用户机制共同决定的。作者把TCF构建为三个部分结合的概率矩阵分解模型,进行模型的学习。
方法细节
问题引入
推荐系统收集到的评分数据一般是missing-not-at-random的,这样会导致模型的学习结果是有偏差的。现有方法没有显示的联合建模数据的生成过程,即物品曝光→用户选择→评分。显式的对这三个部分建模,并联合训练,能够带来更好的模型效果。
具体做法
作者提出TCF,分别建模评分数据生成的三个部分,完整评分模型,矩阵元素表示特定用户对特定物品的评分,矩阵中的每一个元素都没有缺失,
用户选择模型,矩阵元素表示特定用户在被曝光特定物品后,是否会选择对该物品评分,
完整观测模型,表示所有物品被曝光给特定用户的可能性。三个模型的参数分别为
,
和
,全部参数的集合为
。三个模型的概率关系如下图所示。核心要素是,
受到
,
的共同影响,而
,
是相互独立的。(这里可能存在问题,参见下文心得体会部分)
值得注意的是,,
是公用一部分参数的,为了反应用户对特定物品的选择于其对该物品的评分的相关性。除了联合概率分布的分解关系要求外,TCF并没有对3个子模型的分布做太多假设,可以一句具体的场景,调整三个部分的分布假设。
COM
作者把COM建模为伯努利分布,并且由于用户的流行度,会严重影响用户是否可以看到当前的物品。因此,作者引入user-item对的曝光先验,并假设该先验是与流行度相关的
分布。
USM
由于用户选择给某个特定的物品评分之前,必须要看到这个物品,因此,
(注意谁在前谁在后)。作者利用常数分布来建模
,而利用高斯分布(当然其他也可以,比如伯努利)来建模
。其中,
是示性函数,表示用户
对物品
的评分是否是
,
是偏差项。
用来近似还原
,
(可以理解为用户的评分一般来说是该还是低)和
(可以理解为这个物品被给出的评分一般来说是该还是低)是两个服从零均值高斯分布的随机变量,用来反应潜在评分(实际就是用户对物品的偏好)对用户是否选择该物品进行评分的影响。
(今天先到这里...)
心得体会
Bias
这篇文章其实考虑了两方面的偏差,选择偏差以及曝光偏差。只不过曝光偏差不是被解决的重点,而是被当做建模选择偏差的过程随机变量之一,联合训练。
Tripartite概率分解
其实,在概率分解部分,作者认为数据的生成过程中,
和
是独立的,但是实际场景下,积累的评分数据一般是由某种特定的策略得到的,比如当前推荐策略。此时
和
可能是相关的,例如,被估计评分高的物品更可能展示给该用户(如果模型学习的还不差,就是正相关的)。