Preference Learning——Object Ranking:Learning to Order Things

这篇论文是Cohen1999年发表在Artificial Intelligence(A类)上的一篇文章,针对的是object ranking问题。

Abstract

归纳学习(inductive learning)中最受关注的是分类学习问题,而其实还有一类排名学习问题也很重要。可以基于概率分类器模型或者回归模型进行排名模型的构建。排名任务较分类任务更容易,因为偏好信息比标签更容易获取。举几个例子,根据用户特征对邮件中未读邮件进行个性化排名,等待用户阅读。根据用户对电影的评分信息,将电影进行排名然后生成推荐列表反馈给用户。再比如信息检索中根据与查询的相关性对网页进行排名。在推荐系统中,根据用户对商品的评分信息,对商品进行排名,实际上,用户的评分信息其实就是个偏好关系(但每个用户的同一个评分代表的偏好程度不相同)。

Define Notations:

  • object ranking:训练数据集是样本之间的偏好关系,形如v优先于u,样本没有类标签只有特征数据。
  • X:样本集合{x1,x2…xn},n表示样本个数。
  • f(v):f是排序函数(ordering function),f(u)>f(v)表示u排在v的前面。如果f(u)是正交符号(⊥),表示无法对u进行排序。
  • Rf:Rf是偏好函数(preference function ),由f函数导出。如果Rf(u,v)=1表示更偏好u,Rf(u,v)=0表示更偏好v。当Rf(u,v)=1/2表示u和v无法进行比较。
    Rf
  • PREF(u,v ): 带权偏好函数(preference function ),取值在[0,1]区间。PREF(u,v )的值越接近1表示更有更有把握将u排在v的前面,越接近0表示更有把握将v排在u的前面,当为1/2时表示u和v的先后顺序无法确定。

看一个抽象的例子:其中f和g都是排序函数,分别对instance进行排序。将f和g转化为Rf和Rg,然后将其线性组合生成PREF得到带权的偏好函数。

Preference Learning——Object Ranking:Learning to Order Things_第1张图片

看个具体的例子:给定一个文档集合X,里面每个文档的属性是单词,取值为单词出现的频数,总共有N个属性{w1,w2…wn}。fi(u)表示文档u的第i个属性的出现频率。那么,Rfi将根据第i个属性的大小对文档进行排序。但是每个单词的重要性不同,因此需要进行加权求最终的排名。

再看一个更具体的例子:一个元搜索应用程序(a metasearch application)的目标是对给定的一个查询,结合几个搜索引擎的结果然后对网页进行排名。比如有N个搜索引擎e1,e2…en。Li表示ei给出的网页排名列表。fi(u)=-k表示第ei将网页u排名为k,fi(u)=-M(M>|Li|)表示ei将没有出现在Li的网页的排名设为W。

Linear Combination

假设我们有若干个排名专家(ranking experts),每个ranking expert生成一个排名函数。对每个ranking expert的权值wi是增量更新的。假设学习的过程迭代T次,每次输入的训练集为Xt,每个ei给出一个排序函数fti(第t次迭代ei给出的排序函数),此时的Xt包含了所有Lti(第t次迭代ei的排行榜)。然后生成Rti(第t次迭代第i个偏好函数),然后计算一个损失函数。

loss

  • 其中F是一个反馈信息:

feedback:
1.直接:通过询问用户将这个ranking expert生成的网页排名重排名
2.间接:通过用户在网页上停留的时间将网页进行重排名

  • 这个损失函数表示生成的R与反馈信息不同的概率。

然后再利用Hedge algorithm算法,这个算法维护着一个正的权值向量wt=(wt1.wt2…wtn),w1i初始化为1/N。表示初始状态时,每个ranking expert的权重是相同的。然后每次计算带权偏好函数PREF:

  • w的迭代公式如下:

W

其中β是一个介于0到1的参数,Zt是一个归一化参数,使得w更新后所有权值和为1.

  • 利用Hedge算法计算PREF的伪代码:

Ordering Instances

  • 在Hedge algorithm中需要计算一个排名p,那么首先需要指出的是怎样衡量这个排名的好坏,因此提出了一个指标AGREE

  • 但是找到一个理想化的排名使得AGREE最大这个问题是一个NP-complete问题。因此本文就提出了一个贪心的求解算法greedy ordering algorithm

Preference Learning——Object Ranking:Learning to Order Things_第2张图片

  • 算法性能:
    性能

在这个算法中,可以将PREF看成是一个有向带权图,其中边(u,v)的权值就是PREF(u,v)。可以发现π()函数实际是PREF出度减入度并且这个算法中,排名依次降低(p(v)=|V|,而V是在减少的)。

  • 看一个具体的例子:

    π(b) = 2,  π(d) = 3/2,  π(c) = -5/4, π(a) = -9/4========>p(b)=4
    π(d) = 3/2,  π(c) = -1/4, π(a) = -5/4========>p(d)=3
    π(c) = 1/2 , π(a) = -1/2========>p(c)=2,p(a)=1
    排名顺序:b > d > c > a.

Improvements

  • 看一个例子:

左边是真实PREF关系(2k+2个偏好关系)
右边是根据贪心算法得到的排序关系有k+2个是满足真实偏好关系的
逼近程度:1/2

Preference Learning——Object Ranking:Learning to Order Things_第3张图片

  • 改进的算法思想:找到图中的强连通图

这个算法对PREF做了稍微的调整,对于有向图中两个节点之间的两条边,删除PREF(u,v)和PREF(v,u)中较小的一条,并且修改较大的那条边的值为|PREF(v,u)-
PREF(u,v )|,当PREF(u,v)=PREF(v,u)=1/2时,两条边都删除掉。

  • 看个具体的例子:

Preference Learning——Object Ranking:Learning to Order Things_第4张图片

求解步骤:
1.将PREF进行调整得到简化图
2.找到图中的强连通图:{a,c,d}和{b}
3.先对连通图进行排序(只要连通图1中有一条边指向连通图2,那么1就是优先的):{b}>{a,c,d}
4.再对每个连通图内部进行排序(利用前面的贪心算法):c>d>a
总的排序就是b>c>d>a

Experiments Set

  • 进行两组实验:

1.small graphs:由于真实的排序问题中,最优解无法得到,因此采用一些真实解可以利用暴力求解得到的小图来进行实验。度量的标准是实验排名与真实排名的差距。
2.large graphs:真实解未知,度量标准依赖于所有边的总的权值。

  • 算法对比:

除了最基本的贪心算法和改进的贪心算法之外,还有一个随机的算法用作参照:这个算法是随机的产生一个排列,然后输出这个排列的或者它的逆序中更好的一个排序(二选一)。其实随机算法通过大量实验,可以找到最优解,当然在实际应用中这是不可行的(暴力求解)。

Small Graphs Experiments

  • 实验设置

每个图只有九个或更少的节点,但是每个节点数量的图都生成10000个随机的图,并且随机生成PREF(u,v),PREF(v,u)=1-PREF(u,v),而对于随机算法,评估10n个随机排列的平均性能(n是节点个数)。

  • 评估方法

其中分子里面的p是实验预测的排名,分母的p是真实的排名。 这个式子的结果就是预测的性能评估方法,越大表示越接近真实解。

评估

  • 实验结果

将节点个数相同随机图(10000个)的计算的度量值进行求平均,然后得到下面这个实验结果图。
当结点个数大于5时,贪心算法的性能比随机算法的性能要好并且时间复杂度一直很低。

Large Graphs Experiments

  • 评估方法

分子是预测排名关系中有先后关系的PREF的差值和 分母是所有节点对之间的PREF的差值的和

评估

  • 实验结果

可以发现贪心算法和改进的贪心算法几乎性能相同,主要是因为大的随机图几乎就是一个强连通图。并且可以看到贪心算法明显的要比随机算法好。

Preference Learning——Object Ranking:Learning to Order Things_第5张图片

Experimental for Metasearch

这是一个真实的排名问题:元搜索引擎,通过对这个问题的模拟实验我们可以学习到一个特有领域的搜索引擎
之前描述了PREF,并没有告知怎么求PREF,然后讨论了根据PREF求解rank,现在通过一个实际的例子来学习PREF,并通过学到的PREF来对instances进行排名。

  • 测试用例(用来构建查询):

1.检索机器学习研究者的主页(ML)
2.检索大学的主页(UNIV)

  • 数据准备(事先搜集):

1.一个ML的列表(210行),包括名字,所属机构以及主页(URL)
2.一个UNIV列表(290行),包括名字和地理位置以及主页(URL)。
每一行都可以构建一个查询,每一个的URL都是唯一相关的页面

  • 查询的方式如下:

其中ML构建了16个ranking expert(每种类型的查询方式就是一个ranking expert),UNIV构建了21个ranking expert。
其中的NAME用人的全名或者大学的名称替换,PLACE用地理位置替换。
每个查询最后保留前30名的网页。

  • 实验的目的

学习如何组织这些ranking expert的排名(对各种ranking expert的赋予不同的权值)。

  • 形式化描述:

对于每个查询t,每个ranking expert有一个排名Li,对于排名第一的网页定义其ft1 =30,以此类推,最后一个网页ft30=1,将没有出现在Li中的网页的fti =0,Xt是所有ranking expert的并集。

  • 在进行这个实验的时候还添加了反馈信息,因为原有的偏好训练集并不能带来足够的信息,而反馈信息可以更进一步的改善模型的性能。

feedback生成方式设置了两种:
1.唯一相关的页面要优先于所有的页面
2.唯一相关的页面要优先于其前面所有的页面

Evaluation and Results

  • 评估方法

实验采取的评估方法式留出法中的留一法(leave-one-out):针对每个查询t,将其它所有的查询作为训练数据,然后利用训练到的模型对t进行查询获取查询后的网页排名。

  • 反馈信息

前面提到了两种反馈信息的设定,在一次查询中:
第一种反馈信息在每个ranking expert中是一样的(因为唯一相关页面是一样的)。
第二种每个ranking expert产生的排名不同,因此反馈信息也不一致(因为唯一相关页面的名次不一定相同)。因此,对ranking expert随机抽取100次,将median rank作为最终标准来产生反馈信息。

  • 性能度量

将学习率β=0.5(通常一个良好的学习速率)
实验度量的是每个ranking expert将唯一相关网页排名在前k名的查询t的数量.

  • 结果展示
    观察结果发现,单个的ranking expert的性能都要比整体的Learned System要差,就算是最好的ranking expert也没有超越Learned System,他们的性能相当,因此,学习一个整体的Learned System是很有必要的。
    Preference Learning——Object Ranking:Learning to Order Things_第6张图片

当然也可以采用其他的度量手段,比如相关网页排名的平均值等等。

你可能感兴趣的:(Preference Learning——Object Ranking:Learning to Order Things)