频道栏目
首页 > 程序开发 > 软件开发 > 其他 > 正文
排序学习简介
2020-07-03 09:12:22         来源:风言风语  
收藏   我要投稿

摘要

排序学习是在处理排序问题时采用的利用机器学习方法来训练模型的方法。排序学习可以应用在信息检索、自然语言处理、数据挖掘等方面。 排序学习问题已经被深入的研究过,并且已有显著进展[1],[2]。本文对排序学习做了一个简单的介绍,详细的说明了基本问题和已经存在的方法,并讨论了排序学习的未来发展工作。详细描述了一些基于SVM技术的排序学习方法。

关键词: 排序学习,信息检索,自然语言处理,SVM

1. 排序问题(Training and Testing)

排序学习可以在信息检索(IR)、自然语言处理(NLP)和数据挖掘(DM)等领域被广泛使用。典型应用有文献检索、专家系统、定义查询、协同过滤、问答系统、关键词提取、文档摘要还有机器翻译[2]。 在本文中,我们不失一般性的采用文献检索作为例子对排序学习进行说明。

文献检索的主要任务如下(Fig. 1 )。系统维护一个文献集合。给出一条查询后,系统对文献集合中包含所查关键词的文献进行检索,并对其排序,返回得分最高的文献。排序任务使用一个排序模型 f(q,d) 对文献进行排序,其中 q 表示查询,d 表示候选文献。

传统的评价模型f(q,d)不需要进行训练。以BM25模型为例,它假定 f(q,d) 可以用条件概率分布 P(r|q,d) 来表示,其中 r 取值为1或0,分别代表相关和不相关。qd 分别代表查询和文献。在IR的语言模型 (LMIR) 中 ,f(q,d) 用条件概率 P(q|d) 表示。概率模型可以使用查询和文献中词汇出现的情况来计算,因此不需要进行训练(或者仅需少量参数进行训练)[3]。

Fig. 1 文献检索
Fig. 1 文献检索

近期文献检索方面, 特别是在互联网搜索方面的一个新趋势,是使用机器学习方法去自动的建立评价模型 f(q,d)。这是因为一系列事实而产生的动机。在互联网搜索方面,有许多标识可以代表相关性,例如,网页的链接文本和PageRank得分。在排序模型中将这些信息结合,并使用机器学习技术自动建立排序模型是一个自然而然的选择。在搜索引擎中,大量的搜索日志数据被保留,例如数据的点击。这使得通过搜索日志数据来进行训练并自动建立排序模型成为可能。事实上,排序学习已经成为了当今互联网搜索领域一个关键技术。

我们简述了一些排序学习的相关信息,包括训练和测试,数据标记,特征选择,评价,还有与传统分类问题的关系。

1.1 训练和测试(Training and Testing)

排序学习是一个监督学习过程,包括训练和测试阶段(图2)。

训练数据包括一系列的查询和文献。每一个查询与有一些文献相关。文献与相关的查询之间的关联也已经被给出。相关性信息可以用多种不同方式表示。在本文中,为我们使用最常用的方法,假设文献与一个查询的相关性使用一个标签来表示,标签表示一些等级(标准)。等级越高,文献与查询的相关性越高。

Fig. 2 信息检索的排序学习
Fig. 2 信息检索的排序学习<喎"/kf/ware/vc/" target="_blank" class="keylink">vc3Ryb25nPjwvcD4NCjxwPrzZyeggPG5vYnI+UTwvbm9icj4gysey6dGvvK+6z6OsPG5vYnI+RDwvbm9icj4gysfOxM/XvK+6z6GjPG5vYnI+WT17MSwyLD8/PyxsfTwvbm9icj4gysex6sepvK+6z6OsserHqbT6se21yLy2oaO1yLy21q685LTm1NrSu7j2y7PQ8iA8bm9icj5sP2w/MT8/Pz8/MTwvbm9icj6jrMbk1tAgPG5vYnI+Pzwvbm9icj4gse3KvrTO0PK52M+1oaO9+NK7sr282cnoIDxub2JyPntxMSxxMiw/Pz8scW19PC9ub2JyPsrH0bXBt9PDtcSy6dGvvK+6z6OsPG5vYnI+cWk8L25vYnI+yse12mm49rLp0a+hozxub2JyPkRpPXtkaSwxLGRpLDIsPz8/LGRpLG5pfTwvbm9icj7Kx9PrPG5vYnI+cWk8L25vYnI+ILLp0a/P4LnYtcTOxM/XvK+6z6OsPG5vYnI+eWk9e3lpLDEseWksMiw/Pz8seWksbml9PC9ub2JyPsrHudjT2jxub2JyPnFpPC9ub2JyPrXEserHqbyvus+jrMbk1tA8bm9icj5uaTwvbm9icj6x7cq+IDxub2JyPkRpPC9ub2JyPiC6zSA8bm9icj55aTwvbm9icj4gtcS089Cho6w8bm9icj5kaSxqPC9ub2JyPiCx7cq+IDxub2JyPkRpPC9ub2JyPiDW0LXEtdpquPbOxM/Xo6w8bm9icj55aSxqJmlzaW47WTwvbm9icj6x7cq+IDxub2JyPnlpPC9ub2JyPiDW0LXEtdpquPax6sepo6y0+rHtIDxub2JyPmRpLGo8L25vYnI+ILrNIDxub2JyPnFpPC9ub2JyPiC1xM/gudjQ1KGj0bXBt7yvus+x7cq+zqogPG5vYnI+Uz17KHFpLERpKSx5aX1taT0xPC9ub2JyPqGjPC9wPg0KPHA+zNjV98/ywb8gPG5vYnI+eGksaj0/KHFpLGRpLGopPC9ub2JyPiDTybLp0a8tzsTP17bUIDxub2JyPihxaSxkaSxqKSxpPTEsMiw/Pz8sbTtqPTEsMiw/Pz8sbmk8L25vYnI+svrJ+qOsxuTW0CA8bm9icj4/PC9ub2JyPiCx7cq+zNjV97qvyv2ho9Xivs3Kx8u1o6zM2NX3sbu2qNLlzqombHQ7sunRry3OxM/XJmd0O7bUtcS6r8r9oaPA/cjno6xCTTI1us1QYWdlUmFua8rHteTQzbXEzNjV91syXaGjyrkgPG5vYnI+eGk9e3hpLDEseGksMiw/Pz8seGksbml9PC9ub2JyPqOsztLDx9PDIDxub2JyPlMmcHJpbWU7PXsoeGkseWkpfW1pPTE8L25vYnI+se3KvtG1wbe8r6GjxuTW0Dxub2JyPngmaXNpbjsmY2hpOzwvbm9icj4gx9IgPG5vYnI+JmNoaTs/UmQ8L25vYnI+oaM8L3A+DQo8cD7O0sPHtcTEv7XEysfRtcG3o6i+1rK/o6nSu7j2v8nS1Lj2Jmx0O7Lp0a8tzsTP1yZndDu21CA8bm9icj5xPC9ub2JyPiC6zSA8bm9icj5kPC9ub2JyPiDGwLfWtcTFxdDyxKPQzSA8bm9icj5mKHEsZCk9Zih4KTwvbm9icj4gu/LV37XIvNu1xLj4s/bSu7j2zNjV98/ywb8gPG5vYnI+eDwvbm9icj6ho7j80ruw47XEy7WjrM7Sw8fKx9G1wbfSu7j2yKu+1sbAt9bEo9DNIDxub2JyPkYocSxEKT1GKHgpPC9ub2JyPqGjvtayv8bAt9bEo9DNyuSz9tK7uPa1pbbAtcTGwLfWo6y2+MirvtbGwLfWxKPQzcrks/bGwLfWwdCx7aGjPC9wPg0KPHA+PG5vYnI+RGk8L25vYnI+INbQtcTOxM/XsbvWuLaozqrV+8r9IDxub2JyPjEsMiw/Pz8sbmk8L25vYnI+oaPO0sPHtqjS5dK7uPY8bm9icj5EaTwvbm9icj4gyc+1xLHku7ujqMbAt9ax7aOpIDxub2JyPiZwaTtpPC9ub2JyPiDOqtK7uPa00yA8bm9icj4xLDIsPz8/LG5pPC9ub2JyPiC1vcv819TJ7bXEy6vJ5KGjztLDx8q508MgPG5vYnI+JlBpO2k8L25vYnI+ILHtyr4gPG5vYnI+RGk8L25vYnI+IMv509C1xL/JxNyx5Lu7tcS8r7rPo6zKudPDPG5vYnI+JnBpO2koaik8L25vYnI+se3KvrXaarj2zsTP16OowP3I5zxub2JyPmRpLGo8L25vYnI+o6nU2rHku7sgPG5vYnI+JnBpO2k8L25vYnI+INbQtcTGwLfWo6i78tXfzrvWw6OpoaPGwLfWysfNqLn9uPi2qMSj0M0gPG5vYnI+ZihxaSxkaSk8L25vYnI+tcS1w7fWzqq4+LaotcSy6dGvIDxub2JyPnFpPC9ub2JyPiC6zbbU06a1xM7Ez9fV0rW90ru49rHku7sgPG5vYnI+JnBpO2kmaXNpbjsmUGk7aTwvbm9icj4goaM8L3A+DQo8cD6y4srUyv2+3bD8wKjSu7j20MK1xLLp0a8gPG5vYnI+cW0rMTwvbm9icj4gus3P4LnYwaq1xM7Ez9cgPG5vYnI+RG0rMTwvbm9icj6hozxub2JyPlQ9eyhxbSsxLERtKzEpfTwvbm9icj6ho87Sw8ey+sn60ru49szY1ffP8sG/IDxub2JyPnhtKzE8L25vYnI+o6zKudPD0bXBt7XDtb21xMbAt9bEo9DNttQ8bm9icj5EbSsxPC9ub2JyPsbAt9ajrKOsvavL/MPHsLTV1bXDt9bFxdDyo6yyorj4s/bOxM/XtcTGwLfWwdCx7df3zqrK5LP2IDxub2JyPiZwaTttKzE8L25vYnI+oaM8L3A+DQo8cD7RtcG3us2y4srUyv2+3dPrtKvNs7XEt9bA4Lvyu9i56c7KzOLV4tbWvOC2vdGnz7DP4MvGtavT1tPQy/myu82soaOy6dGvus3L/LbU06a1xM7Ez9fQzrPJwcvSu7j21+mho9XiuPbX6crHaS5pLmQuZGF0YaOoaW5kZXBlbmRlbnQgYW5kIGlkZW50aWNhbGx5IGRpc3RyaWJ1dGVkIChpLmkuZC4ptsDBos2st9ayvKOpo6y2+Nfp1tC1xMq1wP2yu8rHaS5pLmQuZGF0YaGj0ru49r7Wsr+1xMbAt9bEo9DNysfSu7j2sunRr9PrzsTP17XEt72zzKOsu/LV37XIvNu1xKOsysfSu7j208my6dGvus3OxM/XtcOz9rXEzNjV98/ywb+hozwvcD4NCjxoMyBpZD0="12-数据标记data-labeling">1.2 数据标记(Data Labeling)

目前有两个方式来生成训练数据。第一个是通过人工判断,第二个是通过搜索日志数据导出。我们在这里解释第一种方法。第二种方法的说明可以在[2]中找到。在第一种方法中,从搜索系统的查询日志中随机选出一个查询集合。假设有多个搜索系统,查询被提交到搜索系统,所有的得分最高的文献被收集起来。最终得到每个查询与多个文献相关联。之后要求人工对所有的查询-文献对进行相关性判断。相关性判断通常分为五个等级,例如,完美、杰出、优秀、一般以及不好。人工判断依靠普通用户的平均观点来对相关性进行判断。例如,如果查询’Microsoft’,得到的页面是’microsoft.com’,那么标签为‘完美’。更进一步的说,’Microsoft’的维基百科页面会被评为‘杰出’,等等。表示相关性的标签会被赋给查询-文献对。查询-文献对的相关性判断可以通过多次判断来表示,最终依靠投票法来判断。排序学习的基准数据集也是通过这种方式获得[4]。

1.3 度量(Evaluation)

评分模型的标点的度量是将模型得到的排序输出列表和精确标准的列表比较得到的。在信息检索和其他领域中有几种评价计算方式是被广泛使用的。这包括NDCG(Normalized Discounted Cumulative Gain)、DCG (Discounted Cumulative Gain)、MAP (Mean Average Precision)和Kendall’s Tau.

给出查询qi以及相关联的文献Di,假设 πiDi上的评分列表(排列),yiDi的标签集合(评分)。DCG[5]计算标签的评分列表的准确度。特别的,位置k的DCG定义为:

DCG(k)=∑j:πi(j)≤kG(j)D(πi(j))

其中Gi(?)是一个收益函数,Di(?)是一个位置相关的损失函数,πi(j)di,jπi 中的位置。取评分列表 πi 中最上边的k个位置之和。DCG表示从位置1到位置k获得的递减的手艺的累计之和。NDCG是正则化的DCG,位置k的NDCG定义为:

NDCG(k)=G?1max,i(k)∑j:πi(j)≤kG(j)D(πi(j))

其中 Gmax,i(k) 是正则项,使得完美的评分 π?i 在k位置的NDCG评分为1.在完美的评分中,等级越高的文献评分越高。要注意到可能有多个完美的评分对于一个查询-文献对。

收益函数通常定义为等级的指数函数。这就是说,当信息的相关性增加时,信息的统计量以指数方式增加。

G(j)=2yi,j?1,(1)

其中 yi,j 是文献 di,j 在评分列表 πi中的标签(等级)。损失函数通常定义为一个与位置相关的logarithmic方程。这就是说,信息的满意程度随着位置的提高而logarithmic的下降。

D(πi(j))=1log2(1+πi(j)),(2)

其中 πi(j) 是文献t di,j 在评分列表 πi中的位置。

显然, k 位置的DCG和NDCG变成了

DCG(k)=∑j:πi(j)≤k2yi,j?1log2(1+πi(j)),(3)

NDCG(k)=G?1max,i(k)∑j:πi(j)≤k2yi,j?1log2(1+πi(j)),(4)

在衡量时,DCG和NDCG的值对于查询会更加平均。

表1给出了计算两个评分列表的NDCG的例子。NDCG(DCG)可对为在评分列表中评价较高的文献给出较高的分数产生影响。对于完美的评分,NDCG在每个位置都是1,对于不完美的评价,NDCG的值通常小于1。

Table 1 NDCG计算例子.

Perfect ranking Formula Explanation
(3, 3, 2, 2, 1, 1, 1)   grades:3,2,1
(7, 7, 3, 3, 1, 1, 1) Eq.(1) gains
(1, 0.63, 0.5, · · ·) Eq.(2) discounts
(7, 11.41, 12.91, · · ·) Eq.(3) DCG
(1/7, 1/11.41, 1/12.91,· · ·)   normalizers
(1,1,1,· · ·) Eq.(4) NDCG
Imperfect ranking Formula Explanation
(2, 3, 2, 3, 1, 1, 1)   grades:3,2,1
(3, 7, 3, 7, 1, 1, 1) Eq.(1) gains
(1, 0.63, 0.5, · · ·) Eq.(2) discounts
(3, 7.41, 8.91, · · ·) Eq.(3) DCG
(1/7, 1/11.41, 1/12.91,· · ·)   normalizers
(0.43, 0.65, 0.69, · · ·) Eq.(4) NDCG

MAP是另一个IR领域中广泛使用的衡量标准。在MAP中,假设相关性的等级只有两个:1和0.给定查询qi,相关文献 Di , Di 上的评价列表 πi ,还有 Di上的标签 yi ,qi的平均精度定义为:

AP=∑nij=1P(j)?yi,j∑nij=1yi,j

其中 yi,j 为取值为1或0的 di,j 的标签(等级)。表示相关或者不相关。查询 qi 的P(j)定义为:

P(j)=∑k:πi(k)≤πi(j)yi,jπi(j)

其中 πi(j)di,jπi的位置。P(j)表示qi到位置 di,j 为止的精度。需要注意标签的值为1或者0,即‘精度’可以被定义。平均精度表示对于查询qi而言所有标签为1的文献的所有位置的平均精度。

平均精度值对查询做了进一步平均的称为Mean Average Precision (MAP)。

1.4 与传统分类问题的关系(Relation with Ordinal Classification)

传统分类问题(也被当作传统回归问题)与排序问题相似,但是又有些不同。传统的分类问题的输入是一个特征向量x,输出是一个标签y表示等级,其中等级是排序问题的分类。学习的目标是为了建立一个对于给定特征向量x能够给出等级标签y的模型。模型主要包括一个评分函数 f(x)。模型首先通过 f(x)为x 赋一个值,之后通过阈值来决定 x 的等级 y 。 也就是将实数轴划分为多个区域,并将每个区域定为一个等级。 将f(x)落入的区域的等级定位x的等级。

在排序中,更加看重对象的排序准确度;而在传统分类中,更加看重对象的<序列-分类>准确性。一个传统分类的典型例子是产品评分。例如,给出一部电影的特征,我们给出对于这部电影的星级(评分)。在这种情况,需要严格正确的对星级的数值进行分配。而对于排序问题,例如文献检索,给定一个搜索,目的是给出一个正确的相关文献的排序,即使有时训练数据和测试数据在传统分类问题中会被标记为多种不同的等级。对于不同的查询,文献的数量可以不同。对于一些查询有更多相关文献可用,而对于另外一些查询,只有一些相关性较弱的文献可用。

2. 公式

我们将排序学习问题作为一个监督学习问题来进行公式化。假设 χ 是含有特征向量列表的输入空间(特征空间),γ 是包含等级列表的输出空间。进一步假设 xχ 的元素,表示特征向量列表,yγ 的元素,表示等级列表。 P(X,Y) 为一个为知的联合概率分布,其中Xx 为值,随机变量 Yy 为值。

假设 F(?) 是从一个特征向量列表 x 到得分列表的映射函数。学习任务的目标是通过给定的训练数据 (x1,y1),(x2,y2),...,(xm,ym) 自动得到一个函数 F^(x) 。每个训练实例有特征向量 xi 以及它对应的等级 yi(i=1,???,m) 组成。m 表示训练实例的数量。

F(x)y 可以进一步写为 F(x)=(f(x1),f(x2),???,f(xn)) , y=(y1,y2,???,yn)。特征向量表示需要排序的对象。f(x) 表示局部排序函数, n 表示特征向量和等级的数量。

损失函数 L(?,?) 用来衡量预测结果 F(?) 。 首先特征向量 x 根据 F(x) 被排序 ,之后最优的 n 个排序结果被用来与他们的等级 y 做比较。 如果具有较高等级的特征向量排序较高,则损失较小,否则损失会较大。损失函数使用 L(F(x),y) 来表示。 需要注意的是排序的损失函数与其他统计学习模型的损失函数有所区别,因为用来排序。

我们进一步定义风险函数 R(?) 作为联合分布 P(X,Y) 的预期损失函数,

R(F)=∫χ×γL(F(x),y)dP(x,y)

给定训练数据,我们按照如下方式定义经验风险函数:

R^(F)=1m∑i=1mL(F(xi),yi)

之后学习任务像其他学习任务一样,变为最小化经验风险函数的过程。因为损失函数的特点(不连续,并使用排序),所以最小化经验风险函数是很困难的。我们可以考虑采用一个替代的损失函数 L′(F(x),y)。

相应的经验风险函数定义为:

R^′(F)=1m∑i=1mL′(F(xi),yi)

我们还可以介绍正则项来最小化正则化经验风险。在这种情况下,学习问题转化为最小化(正则)基于替代损失的经验风险函数。

需要注意的是我们在这里采用一个机器学习的公式化。在IR中,特征向量x 来自于查询和相关的文献。等级 y 表示文献与查询的相关性。我们采用一个全局评价函数 F(?)。在实际使用中,可以是局部评价函数 f(?)。x中的特征向量的可能值可以非常大,甚至不可数。评价函数(损失函数)只考虑n个结果。

在IR中,真正的损失函数可以根据NDCG (Normalized Discounted Cumulative Gain)和MAP (Mean Average Precision)定义。例如,我们有

L(F(x),y)=1.0?NDCG

注意到真正的损失函数(NDCG 和 MAP)基于 F(x) 进行排序。

对于替代损失函数,也有不同的定义方式,导致了对排序选择的不同处理方式。例如,可以定义逐点损失、逐对损失以及列表损失函数。

Subset Regression中使用的平方损失是一种逐点的替代损失函数[6]。我们叫它逐点损失,因为定义在单独的对象上。

L′(F(x),y)=∑i=1n(f(xi)?yi)2

它的上界是1.0 ? NDCG。

逐对损失可以是对象对上的合页损失( hinge loss ) 、指数损失以及logistic loss,已经分别被Ranking SVM[7],RankBoost[8]和RankNet[9]使用。他们都有一个上界1.0 ? NDCG [10]。

L′(F(x),y)=∑i=1n?1∑j=i+1n?(sign(yi?yj),f(xi)?f(xj))

其中假定当 yi=yjL′=0,? 是合页损失( hinge loss )、指数损失以及logistic loss。

和true loss函数一样,列表损失定义在对象的列表上,所以与true loss函数更加相关。不同的列表损失函数在列表对方法中被使用。例如,AdaRank中的损失函数就是列表损失函数。

L′(F(x),y)=exp(?NDCG)

其中NDCG在F(x)y 的基础上计算。同样有上界1.0 ? NDCG。

3. 点对方法(Pointwise Approach)

在点对方法中,排序问题(排序产生)被转化为分类、回归、或者顺序分类问题,并使用现有分类、回归或顺序分类方法进行实现。因此,排序的结构化在这种方式中会被忽略。

点对方法包括Subset Ranking [6], McRank [11], Prank [12], and OC SVM [13]。我们用最后一个作为例子进行详细描述。

3.1 SVM在顺序分类问题中的使用

Shashua & Levin [13] 提出的方法中,使用一系列超平面作为排序模型。他们的方法,本文中称为 OC SVM ,利用最大边缘距离来学习得到分类超平面。在一种实现中,这种方法尝试是相邻类别(等级)边缘之间最大化。

假设 χ?Rd , γ=1,2,???,l 。在 γ 上存在序列。 x∈χ 为一个对象(特征向量), y∈γ 是代表级别的标签。给定对象 x, 我们想要预测它的标签(等级) y。 这就是说, 这是一个顺序分类问题。 我们使用一些线性模型(分类超平面) ?ω,x??br,(r=1,...,l?1) 来进行预测, 其中 ω?Rd 是权重向量,br?R,(r=1,...,l) 是满足 b1≤...≤bl?1≤bl=+∞ 的偏差。符合超平面 ?ω,x??br=0 的模型能将等级 r r+1,(r=1,???,l?1) 分开。图3给出了模型示意图。 如果 x 满足 ?ω,x??br?1≥0?ω,x??br<0, 则 y=r,(r=1,???,l)。 我们可以将其写作 minr∈{1,...,l}{r|?ω,x??br<0}.

假设训练数据如下。对每个等级 r=1,???,l, 有 mr 个实例:xr,i,i=1,???,mr。学习问题可以化为一下二次规划 (QP) 问题。

minω,b,ξ12∥ω∥2+C∑l?1r=1∑mri=1(ξr,i+ξ?r+1,i)
s.t.?ω,xr,i?+br≥1?ξr,iξr,i≥0
?ω,xr+1,i?+br≤1?ξ?r+1,iξ?r+1,i≥0
i=1,...,mrr=1,...,l?1m=m1+....+ml

SVM 在传统分类中的使用
Fig. 3 SVM 在顺序分类中的使用

其中 xr,i 表示r-th 等级中的第 i 个实例,ξr,iξ?r+1,i 表示对应的松弛变量。 "|?|| 表示 L2 范数, m 表示训练实例的数量, C > 0 是一个系数。此方法试图将具有相同边缘的临近等级的实例区分开。

4. 序列方法(Pairwise Approach)

在Pairwise方法中,排序被转化为对序列分类或对序列回归。在前述例子中,一个用以对文献对的排列顺序进行分类的分类器已经被描述,并被用来对文献进行描述。在Pairwise方法中,排序的组结构同样被忽略。

对序列方法包括 Ranking SVM [7], RankBoost [8], RankNet [9], GBRank [14], IR SVM [15], Lambda Rank [16], and LambdaMART [17]。我们介绍在本文中对 Ranking SVM 和 IR SVM 进行介绍。

4.1 Ranking SVM

我们可以学习得到一个分类器,例如SVM,来对对象对的排序进行分类并将分类器运用在排序任务中。这是在[7]中被Herbrich隐藏在Ranking SVM方法后的思想。

图4展示了一个排序问题的例子。假设在特征空间中存在两组对象(与两个查询相关联的文献)。进一步假设有三个等级(级别)。 例如,第一个组中的对象 x1, x2x3 分别有三个不同的级别。权重向量 ω 对应的线性函数 f(x)=?ω,x? 可以对对象进行评分并排序。使用排序函数对对象进行排序等价于将对象投影到向量,并根据投影向量对对象进行排序。 如果排序函数是‘优秀’,那么等级3的对象应该排在等级2的对象之前,以此类推。要注意属于不同组的对象之间不能进行比较。

Fig. 4 Example of Ranking Problem
Fig. 4 Example of Ranking Problem

5 Transformation to Pairwise Classification
Fig. 5 Transformation to Pairwise Classification

图5显示了图4描述的排序问题可以被转化为线性的SVM分类问题。同一组中的两个特征向量之间的差别被作为新的特征向量对待, e.g.,x1?x2,x1?x3, and x2?x3. 进一步,标签也被赋给了新的特征向量。例如,x1?x2,x1?x3, and x2?x3 为正数。 主要到同一级别的特征向量或者不同组的特征向量不会被组成新的特征向量。可以通过训练得到对图5中表示的新特征向量进行分类的线性SVM分类器。 几何学上,SVM模型的边缘表示两个等级对象对之间预测的最小间距。 注意到SVM分类器的分类超平面通过对应对的原点和正样本还有负样本。 例如 x1?x2 and x2?x1 代表正样本和负样本。SVM分类器的权重向量 ω 对应于评价函数。事实上我们可以忽略掉学习过程中的负样本,因为它们是冗余的。

训练数据形如 {((x(1)i,x(2)i),yi)},i=1,???,m 其中每个样本包括两个特征向量 (x(1)i,x(2)i) 和一个标签 yi∈{+1,?1} 表示哪一个特征向量应该被排在前边。

Ranking SVM可以被公式化为如下 QP 问题。

minω,ξ12∥ω∥2+C∑mi=1ξi
s.t.yi?ω,x(1)i?x(2)i?≥1?ξi
ξi≥0i=1,...,m,

其中 x(1)ix(2)i 特征向量对之中的第一个和第二个特征向量。 "|?|| L2 范数, m 表示训练样本的数量, C>0 是一个系数。

这等价于下面这个无约束优化问题,i.e.,回归 合页损失( hinge loss ) 函数的最小化。

minω∑i=1m[1?yi?ω,x(1)i?x(2)i?]++λ∥ω∥2(5)

其中 [x]+ 表示函数 max(x,0) , λ=12C。

4.2 IR SVM

Cao et al. [15] 提出的IR SVM 是为了信息检索(IR)而在Ranking SVM基础上进行的扩展, 想法同样可以应用到其他领域。

Ranking SVM 将排序问题转化为对序列分类问题,事实上使用了0-1损失在学习过程中。损失函数和IR衡量方法之间存在差异。 IR SVM尝试通过改进0-1损失来消除差异,就是conducting cost sensitive learning of Ranking SVM。

在图6所示例子中我们首先看一下将Ranking SVM直接应用到文献检索中产生的问题。

Fig. 6 Example Ranking Lists
Fig. 6 Example Ranking Lists

直接使用Ranking SVM的一个问题是通常根据不同等级来处理文献对。例1表示了这个问题。这里对相同的查询有两个排序。位置1和2的文献在Ranking-1中与完美排序相比被交换了,同时位置3和4的文献在ranking-2中与完美排序相比被交换了。根据0-1损失,仅有一个错误对于每个排序,或者说对顺序差异。他们对训练Ranking SVM有相同的负面影响。而根据IR的观点,Ranking-2要比Ranking-1优秀一些,因为它最上面的结果比较好。需要注意到,对于IR系统而言,对于排序位置最高的文献有准确性要求较为严格,准确行在IR的衡量标准中有体现。

Ranking SVM的另外一个问题是它同等对待来自不同查询的文献对。在例2中,有两个查询,与他们关联的文献也是不同的。对于查询1有两个文献对在等级3-2之间,4个文献对在等级3-1之间,8个文献对在等级2-1之间,总共有14个文献对。对于查询2,有31个文献对。Ranking SVM从查询1中选取14个实例(文献对),从查询2中选取31个实例(文献对)来进行训练。显然,查询2对于排序模型的影响要比查询1的影响更大;痪浠八,学习得到的模型会更倾向于查询2。这与IR中文献的重要性是相同的的设定相违背。注意到不同查询的文献对通常是不相同的。

7 Modified Hinge Loss Functions
Fig. 7 Modified Hinge Loss Functions

IR SVM 通过将0-1对序列分类问题转化成一个一个代价敏感的对序列分类来解决了以上两个问题。它通过改进Ranking SVM的合页损失( hinge loss ) 函数来实现。特别的,它根据文献对的不同级别以及不同查询来设定不同的损失。为了强调最考前的排序的准确性,损失函数对于排列靠前的有较强的乘法。为了提高有较少文献的查询的影响,损失函数对有较少文献的查询有较强的惩罚。

图7描绘了具有不同惩罚参数的不同合页损失( hinge loss ) 函数的形状。x轴表示 yf(x) ,y轴表示损失。当 yf(x(1)i?x(2)i)≥1 时,损失为0。当 yf(x(1)i?x(2)i)<1 时,损失由具有不同斜率的线性递减函数表示。 如果斜率等于?1, 那么函数即为一般的合页损失( hinge loss ) 函数。 IR SVM 修改了合页损失( hinge loss ) 函数,特别的修改了不同等级和不同查询的文献对的斜率。它为具有较重要等级的文献对赋予较大权值,并且根据查询对文献对赋予了正则化权值。

IR SVM的学习等价于以下优化问题。特别的,最小化改进的正则合页损失( hinge loss ) 函数。

minω∑i=1mτk(i)μq(i)[1?yi?ω,x(1)i?x(2)i?]++λ∥ω∥2

其中 [x]+ 表示函数 max(x,0) , λ=12C, and τk(i) , μq(i) 为权值。 看 Ranking SVM 的损失函数(5).

这里 τk(i) 表示标签对属于第k类的样本i(文献对)的权重 。Xu 等人. 提出了一个启发式方法来计算 τk 的值。当根据等级对来随机改变文献位置时,这个方法使用 NDCG@1 中的平均损失作为等级对τk 的值。进一步的说, τk 表示来自于查询 q 的样本(文献对) i 的权重。τk 的值由 1∣∣nq∣∣ 决定, 其中 nq 对于查询 q 的文献对的数量。

等价的 QP 问题如下。

minω,ξ12∥ω∥2+Ci∑mi=1ξi
s.t.yi?ω,x(1)i?x(2)i?≥1?ξi
Ci=τk(i)μq(i)2λξi≥0i=1,...,m

5. Listwise Approach

列表序列的方法采用更加直接的方法对排序问题进行了处理。特别的,它在学习和预测过程中都将排序列表作为一个样本。排序的组结构被保持,并且排序的衡量方法可以更加直接的应用到学习过程的损失函数中。

列表序列方法包括 ListNet [18], ListMLE [19], AdaRank [20], SVM MAP [21], and Soft Rank [22]。本文对SVM MAP及其相关方法进行了介绍。

5.1 SVM MAP

Yue et al. 在 [21] 中设计的SVM MAP算法是用来直接优化MAP [2]的,但是它很容易被扩展用来优化NDCG. Xu等人. [23] 将它进一步扩展成为一组算法。

在排序中,对于每一个查询 qi,排序模型 f(xij) 会为每一个相关联的文献 dij 或特征向量 xij 打一个分数,其中 xij 是友 qidij 得到的特征向量。之后按照文献 di (特征向量 xi )的得分对它们进行排序,并得到排序 πi 。简单的说,假设排序模型 f(xij) 是一个线性模型:

f(xij)=?ω,xij?(6)

其中ω是全职向量。

假设对于每一个特征向量 xi 给出标签 yi。我们考虑使用一个评分函数 S(xi,πi) 来计算排序πi的准确性。
S(x_i, \pi _i)$ 如下定义:

S(xi,πi)=?ω,σ(xi,πi)?

其中 ω 依然是权值向量,向量 σ(xi,πi) 定义为

σ(xi,πi)=2ni(ni?1)∑k,l:k

其中 zkl=+1, 如果 πi(k)<πi(l) (xik 被排在 xil in πi 之前
),否则 zkl=?1。 重申一遍 ni 是关联到查询 qi 的文献的数量。

对于查询 qi, 我们为每个排序 πi 计算 S(xi,πi) 并选取获得最高得分的 π~i :

π~i=argmaxπi∈ΠiS(xi,πi)(7)

其中 Πi 表示对于 xi 所有可能的排序。

很容易看出由Eq.(7)的到的排序 π~i 等价于由排序模型 f(xij) 得到的排序(当它们都是线性函数)。图8给出了一个例子。容易正式 f(x)S(xi,π) 都会输出 ABC 作为最优排序 (permutation).

Fig. 8 评分函数例子
Fig. 8 评分函数例子

在学习中,我们希望得到一个评分模型可以最大化在训练数据上使用表序列衡量方式的准确率,或者等价的说,最小化如下定义的损失函数

L(f)=∑i=1m(E(π?i,yi)?E(πi,yi)),(8)

其中 πi 是特征向量 xi 由排序模型 f 得到的排序, yi 是对应的标准等级的列表。 E(πi,yi) 表示 πi 用某种衡量标准 (e.g., NDCG)的衡量结果。 通常 E(π?i,yi)=1.

我们吧学习一个排序模型看作以下的最小化损失函数的优化问题。

∑i=1mmaxπ?i∈Π?i;πi∈Πi?Π?i(E(π?i,yi)?E(πi,yi))?[[S(xi,π?i)≤S(xi,πi)]],(9)

其中 [[c]] 值为1如果 c 满足,则为0。 π?i∈Π?i?Πi 表示对于 qi 的任一完美排序。

损失函数计算当排序模型得到的最优的排序列表不等于完美排序列表时。可以证明如(8)的真损失函数是以新损失函数(9)为上界的。

(9) 依旧是不连续且不可微的。 我们可以考虑使用(9)的连续可微且凸上界的替代。

(9)的0-1函数可以用它的上界替代,例如,hinge functions, yielding

∑i=1mmaxπ?i∈Π?i;πi∈Πi?Π?i(E(π?i,yi)?E(πi,yi))?[1?(S(xi,π?i)?S(xi,πi))]+

∑i=1m[maxπ?i∈Π?i;πi∈Πi?Π?i(E(π?i,yi)?E(πi,yi))?(S(xi,π?i)?S(xi,πi))]+

最大函数同样可以使用它的上界求和函数替换,这是因为∑ixi≥maxixi if xi≥0 对于所有 i 都成立。

Relaxations 1 and 2 can be applied simultaneously.

例如,使用 hinge 函数,并使用true损失函数作为1.0?MAP,我们得到 SVM MAP。更加准确的说, SVM MAP 解决以下 QP 问题:

minω;ξ≥012∥ω∥2+Cm∑mi=1ξi(10)
s.t.?i,?π?i∈Π?i,?πi∈Πi?Π?i:
S(xi,π?i)?S(xi,πi)≥E(π?i,yi)?E(πi,yi)?ξi

其中 C 是一个系数,ξi 是对于查询 qi 所有排序的损失中的最大损失。

等价的, SVM MAP 最小化如下正则化合页损失( hinge loss ) 函数

∑i=1m[maxπ?i∈Π?i;πi∈Πi?Π?i(E(π?i,yi)?E(πi,yi))?(S(xi,π?i)?S(xi,πi))]++λ∥ω∥2(11)

直观的说,第一项在为每一个查询选取最优排序时候,计算全局最大损失。特别的,当排序之间的差别 S(xi,π?i)?S(xi,πi) 小于对应衡量标准之间的差别 E(π?i,yi)?E(πi,yi),那么就会产生损失,否则没有。 接下来,对每个查询选择最大损失,并将所有查询的损失相加。

由于 c?[[x≤0]]<[c?x]+ 对所有 c∈R+x∈R? 都成立,可以看出 (11) 中的损失是 (8) 边界。

6. 未来工作方向

对于排序学习方法,仍然需要开发更多更先进的技术。 这里有更多关于排序学习的理论和应用的open questions [2], [24]。 现在和将来的研究方向包括

训练数据生成 半监督学习和主动学习 特征学习 可扩展的高效学习 领域适应以及多任务学习 集成学习排序 全局排序 图节点排序。

原文

(译自)A Short Introduction to Learning to Rank

点击复制链接 与好友分享!回本站首页
相关TAG标签 简介
上一篇:数据结构与算法之十 提高二叉搜索树的效率
下一篇:[MATLAB]金字塔扩展公式DLL与MATLAB交互
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 第一门户--致力于做实用的IT技术学习网站