Preference Learning

来源:互联网 发布:js数据类型如何判断 编辑:程序博客网 时间:2024/05/21 10:02

Introduction

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

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

ML和PL的关系

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

PL的应用

Preference Learning Task

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

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

1)偏好表达

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

偏好表达

2)用户/物品的描述

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

多标签分类

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

多标签排名

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

标签排名

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

标准

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

实例排名

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

协同过滤

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

总结

Ranking Error

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

排名误差

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

计算公式

1) 斯皮尔曼简捷法

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

规则

2)斯皮尔曼距离

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

平方距离

3)Kendall’s 距离

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

Kendall's Distance

Weighted Ranking Error

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

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

带权误差

1)Position Error

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

Position Error

2)Discounted Error

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

Discounted Error

  • 图中的权值有错误,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.

Discounted Cumulative Gain

Evaluation of Bipartite Rankings

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

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

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

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

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

二分排名

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

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

误差

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

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

    区别1

  • 看一个更夸张的例子:

    区别2

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

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

RankSVM

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

RankSVM

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

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

这里写代码片

Preference Learning Techniques

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

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

这里写图片描述

在这个图中,左边表示的利用效用函数给予每个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难的,并且获得排名可能存在环,因此无法得到确定的排名。

这里写图片描述

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

Preference Relations

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

0 0
原创粉丝点击