推荐系统 排序模型_分类模型与排序模型在推荐系统中的异同分析

  • 前言

推荐系统是驱动内容分发的引擎,而个性化则是推荐系统的核心思想。分类模型和排序模型是业界常用的两种个性化建模方式。本文探讨两种方法的异同点,总结如下:

  1. 分类模型回答的是用户喜不喜欢这个物品,而排序模型回答的用户更喜欢哪一个;
  2. 在对事件发生的假设上,分类模型认为个样本之间相互独立且服从相同的分布,排序模型认为同组内部的样本是有关联关系和可以相互比较的;
  3. 从 Bayesian 的观点来看,分类模型刻画的是的联合分布 P(user,item),而排序模型刻画的是条件分布 P(item|user);
  4. 从参数更新上来看,分类模型的参数更新由特征的绝对值确定,而排序模型由不同样本之间的特征的相对值确定。
  • 背景知识
  • 二项分布

在二项分布中事件只有两个取值 {0,1},1表示事件发生,0表示未发生。其中事件发生的概率为p,不发生的概率为 1-p,用公式表达事件发生或者不发生的概率:

94a4b485bccb1b24c83faea47f621ff2.png
b66223e83c7a0423f43bfa99eee8b96b.png

将上述两个式子联合在一起写:

864cf65546ad062beca0dacf7d5a3b21.png
  • 分类模型与二项分布

分类模型试图回答这样一个问题:如果一个事件具备特征 x,那么根据以往的经验(和统计),事件为真的概率 (P(x=1)) 是多少?

为了回答这个问题,分类模型使用了两个函数,第一个函数将特征描述 x 映射为一个实数:

9490846af15f54ced47f8971e59fb41e.png

第二个函数将 f(x) 映射为概率:

fbd4d8f4ad0c5367670cbc28d648e616.png

个人理解使用 sigmoid 函数, 有以下优点:

1. 取值范围在 [0,1] 之间,符合概率定义的区间范围。

2. 这种变换让 f(x) 有明确可解释的物理意义:对数几率

067e8a449600e831d920cf91fb9d7f39.png

f(x) 的物理意义是事件发生与否之比的对数。

3. f(x) 值过大或者过小时 sigmoid(f(x)) 的导数趋近于0,不会因为异常值导致模型难于收敛。

c8e4945644d1f497274fa8429fefd6c7.png
9652ab94230e65058b48517840394024.png

sigmoid函数(上)及其导数(下)曲线

经过上述两次变换以后分类模型将一个特征描述 x 转换为一个概率值 P(x),下一步的工作是在训练集上让点击数据的 P(x) 接近于1,而未点击数据的概率值接近于0。我们引入辅助变量 P’(x),对于点击事件定义其值为1,非点击事件定义其值为0。所以我们要做的是在训练集上让 P(x) 接近于 P’(x)

对于点击事件,最大化:

3c75cef5c693badedb0a14e86e64f15b.png

,对于非点击事件最大化

f8b6ee8d78d5f5bc25d2a360623f3711.png

两者合并,无论对于点击还是非点击事件,我们都是在最大化:

866d599936fcb52d32d479ea6e37b5d1.png

上述表达式在作用在一条日志上, 对于整个数据集我们最大化的是:

c825f150139025147fe10dc7c95e0867.png

因为连乘数值计算存在精读损失问题,所以我们进行对数变换:

a8d043a28e99543893e14fcf5016af68.png

即分类模型的优化目标为:

b77aaaa803ad4e7837e15c7c1d1b90b4.png
  • 排序模型

排序模型有多种实现,本篇文章只讨论 Pairwise 模型。在 Pairwise 模型中,首先对数据分组,在搜索中每次搜索是一个组,在推荐中可以根据请求ID分组,也可以根据用户 ID 分组,哪种效果更好需要看具体使用场景。

类似于分类模型,我们也是让模型的输出结果与真实事件一致,只不过这里的事件不是点击与否的单个事件,而是偏序关系是否成立这个事件。类比分类模型,我们定义以下变量:

1abc8d74f969bc46ea618e590a502c76.png

用户对 i 的反馈是否比 j 更好。

c24a5f7df604838e1d2542e5bdf3e185.png

:模型对文档 i 的打分

f65d234074e4b032fa17dc8469f5c8e4.png

要比对j的打分

dd87dcc778597e09bfa541a67be84039.png

更高的概率。

优化函数可以类比分类模型得到:

289a856228c07fa609b92ba33bab5d07.png
  • 分析比较
  • 两种模型输出值的物理意义

根据分类模型和排序模型的建模过程可知,分类模型的输出值 f(x) 为正负概率比值对数,对其求 sigmoid 函数以后就是事件发生的概率。而排序模型的分数值却不能直接和输出概率等价,只能将不同文档的分数放在一起进行比较认为用户可能更喜欢哪一个。从这个观点来看,分类模型不要求输出概率绝对正确,而只要求相对关系正确。因此分类模型要对两个样本都有准确的预估才能保持正确的偏序关系,其要求更高;而排序模型是分类模型的一个简化版本,只要求偏序关系的正确,并不要求预估值的绝对准确。一个完美的分类模型必然会是一个完美的排序模型,反之不然。在机器学习领域我们知道存在“天下没有免费的午餐”定律,在相同的数据集下,如果对模型的要求更高,那么必然要付出更多的代价。如果付出的代价一定(数据集相同,底层模型一致),一个更简单的模型效果可能更好。

  • 事件之间的相互独立性假设

分类模型(公式2)的总体惩罚值是各个样本惩罚值之和,样本之间的惩罚值没有显示关系;排序模型(公式3)的总体惩罚值是各个 Pair 之和,一个 Pair 内部的惩罚值之间有相互关系,要求两者对比关系显著。因此分类模型建立在每个样本相互独立的基础上,而排序模型建立在同组样本可相互对比的基础上。结合推荐系统的具体使用场景,用户其实是主动挑选了更感兴趣的内容,因此上述比较是更符合客观情况的,另外用户在选择买还是不买/看还是不看的时候不排除有“货比三家”的心智模型,对内容进行比较之后再进行消费(时间或者金钱),考虑到这些因素,排序模型更能反映客观世界的真实情况。

  • 参数更新方式的区别

假设模型的参数为 w,损失函数对参数的导数为:

0c2fd212e6d5e40b66b7fcb2657cb8cc.png

因此 Pointwise 参数更新:

ddb738af7cf87690ea76a75f99a43e9c.png

Pairwise 参数更新:

a321dabe8cc2bd704476b254589a58f7.png

其中

f3bc26e1bd14a64c0bbd92f09af2a334.png

为参数 w 的第 t 次迭代结果,x_i 是第 i 个特征。

(注:上述公式满足的前提条件是

12f59d413fe021ab426b62bf62c262ad.png

,FM 等线性模型满足此条件。)

由上述更新公式可以看出,pointwise 的参数由文档特征的绝对值确定。 而pairwise的参数由文档相对文档特征确定。对于统计特征,

0963fe5684da20022af29ad62b82d706.png

要比

b5c6881a5663c3140ae3c2e23e29d4fc.png

低一到两个数量级,比如点击率的差 0.11 – 0.10 = 0.01。也就是说 pairwise 模型降低了模型对统计特征的敏感度。对于 ID 特征,如果用户点击和展示的是不同的文档,其语义信息不一样,所以:

873c5a98049c3c0a480548ca94ac4113.png

每个参数都会被正常更新(这里

ba2fdeafdcc69f9805009ad56af88d95.png

表示正样本的语义向量,

f9f69445cdddebeb6730b5701650c8eb.png

表示负样本的语义向量)。 但是如果用户一直沉溺在类似的文档中,比如标题中都含有类似的色情词,他们的语义向量会比较接近一些,因此

041148f32d90c83af53be7ad79b6ee6d.png

近似于零向量,参数不会被更新,这些色情词就不会对模型造成影响。

综上,pairwise 模型相对于 pointwise 模型在抑制奇闻怪异,色情裸露文档方面有两个优点:

  1. 降低了对统计特征的敏感程度。
  2. 减小了沉溺用户对排序模型的干扰。
  • 联合概率 vs 条件概率

为了方便讨论,我们暂时换用 Hinge Loss 作为排序模型的惩罚函数:

d5c3004f3c4778a55035bc7d1c7466bc.png

即模型对正样本

7e30e2547bf004c0eb5bf315a01d51a0.png

的打分高于负样本

8b068ab201bc9bce3813c959c3c29546.png

时不予惩罚,反之惩罚值随着误判值线性增加。其中

abaa9ac002fa818d2689d061ad5128db.png
a77a5b74450d100f187ad9c8b5d9d63b.png

因此在 Hinge Loss 函数下排序模型建模的是条件概率,比联合概率少了 P(u) 的先验概率计算过程。如果 P(u) 的计算精确,那么计算联合概率和条件概率效果一样,如果 P(u) 计算有误差,那么省略掉 P(u) 的模型更鲁棒。再次套用“没有免费午餐定律”,其实排序模型是减小了模型的复杂度。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值