Preference Learning

Introduction

在维基百科中对Preference Learning的解释是这样的:通过已知的可观测的偏好信息构建一个偏好预测模型。偏好学习是机器学习的一个子领域,并且它的主要任务是学会进行排名(”learning to rank”)。

  • 这张图显示了人工智能和偏好学习的关系以及偏好学习的应用领域

Preference Learning_第1张图片

  • 这张图显示了Preference 在人工智能中的应用

Preference Learning_第2张图片

Preference Learning Task

偏好学习问题可以从好几个维度去学习:

  • 偏好表达:
    • 效用函数(utility function):数值型表达,或者按顺序表达
    • 偏好关系:部分/整体排名(Ranking)
    • 逻辑表示法…
  • 用户/物品的描述:
    • 标识符,特征向量,结构化对象…
  • 训练数据集的类型:
    • 直接/间接的信息反馈
    • 完整/不完整的关系
    • 公用程式(utilities)

1)偏好表达

  • 偏好的评估是绝对的,可以是二值型也可以是数值型或者枚举型的效用函数表达法。
  • 偏好的比较是相对的,采用的是部分排名或者整体排名,是偏好关系表达法。

Preference Learning_第3张图片

2)用户/物品的描述

  • 在多标签分类问题中用户的描述是二值型数据,0表示不喜欢,1表示喜欢等。
  • 它的预测结果也是二分类的数值。

Preference Learning_第4张图片

  • 在多标签排名问题中用户的描述是二值型数据
  • 它的预测结果数值型的按顺序表达的偏好,1表示最喜欢。

Preference Learning_第5张图片

  • 在标签排名问题中用户的描述是一个排名
  • 它的预测结果数值型的按顺序表达的偏好,1表示最喜欢。

Preference Learning_第6张图片

  • 下面这个是标准的标签排名问题。
  • 结合了相对的和绝对的排名。

Preference Learning_第7张图片

  • 实例(用户)排名,根据用户的特征对用户进行排名。

Preference Learning_第8张图片

  • 这是一个协同过滤问题,每一行代表一个用户(user),每一列代表一个产品(product),(i,j)表示用户i对产品j的偏好程度(评价好坏等等)。输入和输出都是标识符,而且是绝对的偏好关系。

Preference Learning_第9张图片

  • 这是对以上问题做的一个总结。各种问题的输入输出训练集以及预测的类型真实类型的表达都有所不同,要根据不同的任务选取合适的偏好学习模型来进行表达。

Preference Learning_第10张图片

Ranking Error

  • 这里给出排名的一个例子,r是真实的排名,另一个是预测排名。

Preference Learning_第11张图片

  • 排名问题就是通过最小化排名误差来选择排名模型,那么首先排名误差需要首先提出,此处给出自定了三个映射函数。

Preference Learning_第12张图片

1) 斯皮尔曼简捷法

  • 计算排名的绝对差的和。

Preference Learning_第13张图片

2)斯皮尔曼距离

  • 计算排名绝对差的平方和。
  • 求出误差的最大值和最小值,并且将误差规范化到(0,2),然后相关系数的范围就是(-1,1)。
  • 规范化到(-1,1)可以表达喜欢的极限是1,讨厌的程度是-1,可以同时表达两种情感,当规范化到(0,1)时只能表达喜欢的程度。

Preference Learning_第14张图片

3)Kendall’s 距离

  • 描述的是排名中相对位置错位的item对的个数
  • 图中AB,AE,AC,BE四组相对位置错位,实际上E在A的前面

Preference Learning_第15张图片

Weighted Ranking Error

上一小节给出的误差函数中对每个误分类的item给予相同的权重,这一节讨论加权的误差度量。

  • 真实排名越高的item理当给予更大的权重,因为一般我们只对排名高的item感兴趣,比如推荐系统中以及投票系统中。

Preference Learning_第16张图片

1)Position Error

  • 描述的是真实排名最高的(rank=1)的那个item在预测排名前面的item的个数,图中,E真实排名是1,预测排名是3,因此误差是2.

Preference Learning_第17张图片

2)Discounted Error

  • 描述的是按照之前的Spearman’s Footrule距离算出的d(),然后赋予权值

Preference Learning_第18张图片

  • 图中的权值有错误,3,0,1,0,2描述的是ABCDE的误差,但是权重是按真实排名中的位置算的,因此权重从大到小排序是EBCAD。修改图中的误差如下:

    误差

3) Discounted Cumulative Gain

  • 主要计算两部分:
    • DCG:R(i)(预测表中排名=i的在真实表中的排名)分别是4,2,1,3,5,c-R(i)分别是1,3,4,2,0.
    • IDCG:c-i分别是4,3,2,1,0.
  • 当全部预测正确时,也就是R(i)=i,那么NDCG的分子分母相同,为1.

Preference Learning_第19张图片

Evaluation of Bipartite Rankings

这是一个特例,排名是在两个分图里进行的,图A中的每个节点比B中某个节点要高,但是预测结果又是一个全排列,这对应了Kaggle中Influencers in Social Networks这个问题。

  • 对于这种问题,如何表达排名误差?

这可以直接用到先前的一个Kendall’s Distance度量方法,就是计算错位的item对的个数,例如在这个图中,真实的排名是右边的,左边错位的是AE,AB,因为在右边实际是EA,BA。而总共有六对排名,因此误差是2/6.

Preference Learning_第20张图片

在这里看到了关于二分排名(Bipartite Rankings)的详细介绍

  • 二分排名的形式化表达如下:
    • 给定一个训练集,训练集中有两个类别,(S+,S-),找到一个排名函数,使得尽可能多的节点对满足他们之间的排名关系。
    • 在标准的二分排名问题中,S+ 和S-是没有交叉的,但是S+和S-之间的关系是全连接的(S-的每个节点和S+的每一个都有连接),并且S+中的每个节点要高于S-中的某些节点有,但是S+和S-中的节点没有排名。

Preference Learning_第21张图片

这类问题的输入是样本数据集,输出是一个排名,要知道模型的期望误差是可以用经验误差来估计的,而经验误差是通过对样本集的评估得到的,而期望误差是对所有可能的数据点的评估,是不可能做到的。图中经验误差的的中f是排名函数,将误差记为排名失误的节点对的个数。

  • 对应于Influencers in Social Networks这个问题:
    • 每一行表示两个用户的影响力排名,将所有行的胜者分到S+,所有行的负者分到S-,但是在那个问题中,可能A跟B比较输了,但是A跟C比较赢了,因此对于该类问题还需要进一步处理S+,S-如何定义的问题。
    • 可以考虑对每个节点新建一个副本,因此节点个数变为2n,然后根据实际的排名关系进行连线,只不过此时不是全连接。

Preference Learning_第22张图片

  • 二分分类和二分排名有什么区别?

    • 二分分类只计算分类错误的节点个数,而二分排名,是节点对,因此误差值可能不会相同,因此不能用同样的方法求解。

    Preference Learning_第23张图片

  • 看一个更夸张的例子:

    Preference Learning_第24张图片

    Herbrich在2000提出了一个名为RankSVM的求解二分排名问题的算法,它的目标函数如下:

  • P和N是正例反例的样本数
  • L是一个指示函数
  • R是对f的一个规范化,例如对f的系数的L1/L2范数,用来约束f的过拟合问题。

Preference Learning_第25张图片

  • 换一种表达形式就是:
    • 于是,这个问题就变成了一个二次规划问题(QP )

Preference Learning_第26张图片

Freund在2003年提出了一个名为RankSVM and Related的求解二分排名问题的算法:

  • 在这个算法中,误差是指数的形式

Preference Learning_第27张图片

Preference Learning Techniques

如何获得排名?
a. Learning Utility Functions

学习一个效用函数就是产生一个排名,实际上是解决一个回归问题,使得更多的实例满足这个回归函数。使得尽可能多的实例满足这个效用函数。但是选择回归函数的损失函数不是以前分类中的损失函数,而是前面提到的各种rank损失函数,最小化这个rank损失函数就可以得到效用函数。

Preference Learning_第28张图片

在这个图中,左边表示的利用效用函数给予每个item一个效用值,然后依此效用值获得排名。右边表示效用函数得到大是item对的相对排名。

这里写图片描述

  • 通过分类获得排名
    利用AUC(ROC曲线下面的面积)度量分类器。AUC考虑的是样本预测的排序质量,因此它与排序误差有紧密联系。
  • 前一小节以及介绍了二分排名的目标函数
  • Label Ranking (Hüllermeier在08年的提出了一个LPC模型求解标签排名)

    • 标签排名可以简化为二分类问题,对于每一个标签产生一个效用函数:
    • Ui(x)描述的是用户x对标签i的偏好程度。
      这里写图片描述
    • 用户x对标签i和j的偏好程度进行比较的描述如下:
      这里写图片描述

    因此,若一个标签排名问题有4个标签,需要对其进行排名,那么对每个标签构建1个效用函数,总共四组参数,然后存在6组标签之间的比较,获得一个6组参数差,得到新的6个效用函数,该效用函数实际上是一个二分类问题。

b. Learning Preference Relations

  • Learning Binary Preference Relations(用户排名问题)
    • 可以构建一个用户的连接矩阵(显示用户之间的排名,fij=1,表示i比j排名高)
    • 但是这类问题的求解是NP难的,并且获得排名可能存在环,因此无法得到确定的排名。

Preference Learning_第29张图片

  • Object Ranking: Learning to Order Things
    • Cohen在99年提出了这个启发式算法,用来Preference Relations问题。
    • 其中当u排在v的前面时PREF(u,v)= 1。
    • 并且这个算法的性能比是2

Preference Learning_第30张图片

c. Model-Based Preference Learning


  • Yaman在08年提出了一个Lexicographic Preference Models。
  • 一个字典顺序是由特征的总的顺序以及特征局部顺序唯一确定的
    • 比如字典的特征是ABC…Z,然后每个特征里面的局部取值也是ABC…Z
    • 这样字典的顺序才是唯一的。

假设排名对象是由一个长度为m的特征向量表示,并且每个特征可取k个值。那么存在n = k^m个对象,这将有n!个排名结果。
假设m=4 k=2那么n =16,因此总共有16!=2*10^13个排序的可能,但是其中只有(2^4)*4! = 384个排名是按字典顺序排列的。
Chevaleyre在08年提出了一个Conditional Preference (CP) Networks

你可能感兴趣的:(Preference,Learning)