排序模型入门详解(未完待续))

mac2024-02-02  128

排序模型入门详解


文章目录

排序模型入门详解1. 排序模型的应用场景point-wise排序模型pair-wise排序模型Ranknet https://yq.aliyun.com/articles/18

1. 排序模型的应用场景

当商家需要向用户提供多个商品供选择时,往往会遇到这个问题:如何将商品按照一定的顺序呈现给用户,以便使用户能够尽可能地完成购买流程?这就涉及到对商品的排序,用到的模型称排序模型。通常情况下,我们希望排在前面的商品是用户更大概率会点击的商品。

根据不同类型的训练数据,可以将排序模型可以分为三大类:

单点标注(point-wise)两两标注(pair wise)列表标注(list wise)

point-wise排序模型

输入特征向量集合表示为 { x ( 1 ) , x ( 2 ) , ⋯   , x ( m ) } \{x^{(1)},x^{(2)},\cdots,x^{(m)}\} {x(1),x(2),,x(m)},其中 x ( i ) x^{(i)} x(i)是一个n维向量,各个维度的含义可以是商品的特征例如评分、小量、价格以及用户的特征例如性别、年龄、偏好等,以及用户和商品的关联特征例如是否点击过该商品、是否购买过该商品、对该商品的评价等,以及场景特征如时间、地点等;标签集合为 y ( 1 ) , y ( 2 ) , ⋯   , y ( m ) y^{(1)},y^{(2)},\cdots,y^{(m)} y(1),y(2),,y(m),其中 y ( i ) y^{(i)} y(i)的取值集合是一个实数,例如用户没有点击过的商品为1,用户点击过但是没购买的商品为3,用户点击并购买过的商品为10.

在上述定义的基础上,我, 可以将point-wise排序模型转换为一个分类问题或者回归问题。如果将排序问题转换为分类问题,会导致输出只有预先定义的那几类(例如1,3,10),进而导致很多商品的label一样,无法进一步区分次序。因此,实际中往往将point-wise排序模型转换为回归问题。

point-wise模型的缺点是,没有考虑训练样本之间的相对顺序。例如,在某次点击事件中,用户点击了样本 x ( i ) x^{(i)} x(i),在另一次点击事件中用于点击了样本 x ( j ) x^{(j)} x(j)(且此次事件中存在样本 x ( i ) x^{(i)} x(i)但是用户没有点击)。根据point-wise模型, x ( i ) x^{(i)} x(i) x ( j ) x^{(j)} x(j)的标签一样,但这显然是不合理的( x ( j ) x^{(j)} x(j)应该比 x ( i ) x^{(i)} x(i)更靠前才合理)。

pair-wise排序模型

在pair-wise模型汇总,我们不再从单文档的分类或者回归的角度去看待问题,而是从一个文档对 < d 1 , d 2 > <d_1,d_2> <d1,d2>来看待问题。如果用户点击了 d 1 d_1 d1而没有点击 d 2 d_2 d2,那么说明 d 1 d_1 d1 d 2 d_2 d2更靠前,可以把 d 1 − d 2 d_1-d_2 d1d2的label设置为+1, d 2 − d 1 d_2-d_1 d2d1的label设置为-1,对所有的文档pair进行这样标注,就得到了一系列用于二分类的训练样本。预测时,对测试集里面的所有pair进行分类,便可以得到测试集的一个偏序关系,从而实现排序。SVM Rank、RankNet、FRank、RankBoost等方法都是pair-wise模型。

Ranknet

https://www.cnblogs.com/genyuan/p/9788294.html RankNet提出的时候是为了解决如下搜索排序问题:给定query集合,每个query都对应着一个文档集合,如何对每个query返回排序后的文档集合。 RankNet将输入query的特征向量 x ∈ R n x\in R^n xRn映射为一个实数 f ( x ) ∈ R f(x)\in R f(x)R

最新回复(0)