逆向倾向评分 (Inverse Propensity Scoring, IPS) 原理解析与MF算法的结合使用

简介: 逆向倾向评分 (Inverse Propensity Scoring, IPS) 原理解析与MF算法的结合使用

正文


当历史交互数据为MCAR(Missing Completely At Random,完全随机缺失)时,评级预测损失函数可以定义为:

1.png


其中,Y ^ 表示预测的评级;Y  表示 u 对 i i的实际评级;o u , i = 1  表示 u 对 i 有评级;∣ { ( u , i ) : o u , i = 1 } ∣ 表示所有被浏览项目的数量;δ u , i ( Y , Y ^ ) \表示 Y  与 Y ^  之间匹配程度的度量,可以定义为:


2.png

但是历史记录往往是MNAR(Missing Not At Random,非随机缺失)的,那么整体评级预测损失就是有偏的:

3.png

其中,p ( o u , i = 1 ) 是指 u 浏览 i  的概率;4.png指的是所有 u u 对所有 i ii 平均评分损失,它是一种算术平均;z5.png的是被浏览的 i ii 的期望评分损失,它是一种加权平均。

加权平均是有偏的,它的偏差就来自于给不同自变量分配的权值,在推荐任务中,这个权值指的就是物品被观测(浏览)到的概率。一种减轻MNAR反馈中偏差的影响的IPS估计法这样定义评级预测损失函数:

6.png

该公式的思想是消除权值(浏览概率)的影响,于是就有了无偏估计的公式:


7.png

注意到,8.png9.png的区别不仅仅在于消除权值,而且 8.png是整体的损失,而9.png浏览过的项目的损失。

所以要使这个公式真正起作用,必须知道全部项目的 p ( o u , i = 1 ) p(o_{u,i}=1)p(o

u,i


=1) 的具体值。在实际的应用中,历史交互数据中记录了部分评级数据,因此可以利用某种拟合方法来推断 p ( o u , i = 1 )  的模型,例如:

通过朴素贝叶斯进行倾向估计


10.png


其中 p ( y = r ∣ o = 1 ) p(y=r|o=1)p(y=r∣o=1) 和 p ( o = 1 ) p(o=1)p(o=1) 是通过MNAR数据集中的历史交互数据统计出来的。p ( y = r ) p(y=r)p(y=r) 是从一个MCAR数据集获取的,这样就能计算出MCAR的p ( o ( u , i ) = 1 ∣ y ( u , i ) = r ) )。这种方法必须要确保有部分可用的MCAR数据。并且它只能拟合出被评分过项目的浏览概率。

通过逻辑回归进行倾向估计

p ( o u , i ∣ X , ϕ ) = σ ( ω T X u , i + β i + γ u )

其中,σ ( ⋅ ) 是Sigmoid函数,用于将数值归一化;X u ,是用户-项目对的特征;ϕ 代表参数集合,包括:ω T是权重参数、β i  是项目的偏置项参数、γ u  是和用户的偏置项参数。这种方法不需要实现筛选出一个MCAR数据集,且可以拟合所有项目的浏览概率。

获得了权重 p ( o u , i = 1 ) 后就可以预测对应的无偏评级了。需要说明的是,通过朴素贝叶斯进行倾向估计是相对简单易实现的方法,但这种方法得到的结果是没法直接用来产生推荐的,但是下一步已经很好继续下去了。例如可以使用矩阵分解(matrix factorization,MF)来预测其余项目的评分。

11.png

我随手找了一张矩阵分解方法的示意图,可以认为,拟合出权重 p ( o u , i = 1 )  的项目的无偏评级就是上表中红色的数值,未拟合出权重的项目评级就是上表中的问号。矩阵分解通过下面的公式将用户-物品交互矩阵分解成两个隐特征矩阵:

12.png


其中 p u  是用户的隐特征矩阵;q i 是项目的隐特征矩阵;a u 、b i  、c分别是用户、项目和全局偏置项。那么此时,矩阵分解的损失函数就表达为:


13.png

其中14.png指的是无偏的预测评级与真实评级之间的损失15.png是为了防止过拟合加入的正则化项。优化的参数P , Q , A 分别代表用户的隐特征矩阵、项目的隐特征矩阵和偏置项,最终的预测评级就表示为:16.png

这时候,之前未拟合出权重的项目评级也可以通过公式16.png计算得到了

相关文章
|
1天前
|
缓存 算法 Java
数据结构~缓存淘汰算法--LRU算法(Java的俩种实现方式,万字解析
数据结构~缓存淘汰算法--LRU算法(Java的俩种实现方式,万字解析
|
1天前
|
负载均衡 算法
Dubbo-负载均衡原理解析(1),一个本科渣渣是怎么逆袭从咸鱼到Offer收割机的
Dubbo-负载均衡原理解析(1),一个本科渣渣是怎么逆袭从咸鱼到Offer收割机的
|
1天前
|
Android开发
Flutter完整开发实战详解(六、 深入Widget原理),2024百度Android岗面试真题收录解析
Flutter完整开发实战详解(六、 深入Widget原理),2024百度Android岗面试真题收录解析
|
1天前
|
缓存 算法 前端开发
前端开发者必知的缓存淘汰策略:LRU算法解析与实践
前端开发者必知的缓存淘汰策略:LRU算法解析与实践
|
2天前
|
Web App开发 开发框架 前端开发
Open UI5 前端开发框架配套的 Mock Server 工作原理解析
Open UI5 前端开发框架配套的 Mock Server 工作原理解析
10 0
|
2天前
|
存储 Java Go
Go 语言切片如何扩容?(全面解析原理和过程)
Go 语言切片如何扩容?(全面解析原理和过程)
12 2
|
2天前
|
算法 PyTorch Go
深入解析yolov5,为什么算法都是基于yolov5做改进的?(一)
深入解析yolov5,为什么算法都是基于yolov5做改进的?(一)
|
2天前
|
机器学习/深度学习 数据采集 自然语言处理
理解并应用机器学习算法:神经网络深度解析
【5月更文挑战第15天】本文深入解析了神经网络的基本原理和关键组成,包括神经元、层、权重、偏置及损失函数。介绍了神经网络在图像识别、NLP等领域的应用,并涵盖了从数据预处理、选择网络结构到训练与评估的实践流程。理解并掌握这些知识,有助于更好地运用神经网络解决实际问题。随着技术发展,神经网络未来潜力无限。
|
2天前
|
机器学习/深度学习 存储 算法
卷积神经网络(CNN)的数学原理解析
卷积神经网络(CNN)的数学原理解析
33 1
卷积神经网络(CNN)的数学原理解析
|
2天前
|
传感器 数据采集 存储
岩土工程监测仪器之一:振弦采集仪的工作原理解析
岩土工程监测仪器之一:振弦采集仪的工作原理解析
岩土工程监测仪器之一:振弦采集仪的工作原理解析

推荐镜像

更多