An Overview of Learning to Rank
An Overview of Learning to Rank An Overview of Learning to Rank
机 器 学 习 及 排 序 学 习 基 础 武 威 微 软 亚 洲 研 究 院 自 然 语 言 计 算 组 副 研 究 员 wuwei@microsoft.com 2012 年 11 月
- Page 2 and 3: 提 纲 • 什 么 是 排 序 学
- Page 4 and 5: • 什 么 是 排 序 学 习 •
- Page 10: 其 他 例 子 • 统 计 机 器
- Page 13 and 14: 机 器 学 习 基 础
- Page 15 and 16: 机 器 学 习 的 基 本 要 素
- Page 17 and 18: 机 器 学 习 分 类 • 监 督
- Page 19 and 20: 排 序 学 习 的 定 义 • 广
- Page 21 and 22: • 什 么 是 排 序 学 习 •
- Page 23 and 24: 横 线 • 排 序 生 成 • 输
- Page 25 and 26: 学 习 系 统 排 序 系 统
- Page 27 and 28: 排 序 整 合 ( 续 ) π 1 π 2
- Page 29 and 30: • 什 么 是 排 序 学 习 •
- Page 31 and 32: 人 工 标 注 (Human Labeling)
- Page 33 and 34: BM25 逆 文 档 频 率 文 档
- Page 35 and 36: 评 估 准 则 (Evaluation Measure
- Page 37 and 38: 训 练
- Page 39 and 40: 排 序 模 型 • 基 于 数 据
- Page 41 and 42: 排 序 模 型 ( 续 2) • 基
- Page 43 and 44: Ranking SVM
- Page 45 and 46: 算 法 设 计 • 目 标 : 学
- Page 47 and 48: 工 具 • SVMLight • http://svm
- Page 49 and 50: 代 表 模 型 • 无 监 督 •
- Page 51 and 52: Borda Count ( 续 ) • 基 本 排
机 器 学 习 及 排 序 学 习 基 础<br />
武 威<br />
微 软 亚 洲 研 究 院 自 然 语 言 计 算 组 副 研 究 员<br />
wuwei@micros<strong>of</strong>t.com<br />
2012 年 11 月
提 纲<br />
• 什 么 是 排 序 学 习 (<strong>Learning</strong> <strong>to</strong> <strong>Rank</strong>) (L2R)<br />
• 如 何 学 习 一 个 排 序<br />
• 排 序 学 习 的 两 条 线<br />
• 排 序 生 成<br />
• 排 序 整 合<br />
• 参 考 资 料
你 能 得 到 什 么<br />
• 为 什 么 要 “ 学 习 ” 排 序<br />
• 什 么 是 排 序 学 习<br />
• 排 序 学 习 的 基 本 流 程 是 什 么<br />
• 基 本 的 排 序 学 习 算 法
• 什 么 是 排 序 学 习<br />
• 如 何 学 习 一 个 排 序<br />
• 排 序 学 习 的 两 条 线<br />
• 排 序 生 成<br />
• 排 序 整 合<br />
• 参 考 资 料
无 处 不 在 的 排 序
其 他 例 子<br />
• 统 计 机 器 翻 译 (Machine Translation)<br />
• 图 片 搜 索 (Image Search)<br />
• 专 家 搜 索 (Expert Search)<br />
• 推 荐 系 统 (Recommender System)<br />
• ……
近 年 排 序 学 习 的 发 展 趋 势<br />
• 排 序 学 习 已 经 被 成 功 地 应 用 到 了 实 际 网 络 搜 索 中<br />
• Google<br />
• Bing<br />
• 百 度<br />
• 有 道<br />
• ……<br />
• 在 SIGIR,ICML,NIPS 等 信 息 检 索 、 机 器 学 习 的 国 际 会 议 上 有 超 过 100<br />
篇 的 文 章<br />
• 每 年 信 息 检 索 的 顶 级 会 议 SIGIR 上 有 两 个 session<br />
• Yahoo <strong>Learning</strong> <strong>to</strong> <strong>Rank</strong> Challenge<br />
• 排 序 学 习 的 标 准 数 据 集 LETOR<br />
• http://research.micros<strong>of</strong>t.com/en-us/um/beijing/projects/le<strong>to</strong>r/
机 器 学 习 基 础
机 器 学 习 的 定 义<br />
• A computer program is said <strong>to</strong> learn from experience E<br />
with respect <strong>to</strong> some class <strong>of</strong> tasks T and performance<br />
measure P, if its performance at tasks in T, as measured<br />
by P, improves with experience E<br />
---- by Tom Mitchell in Machine <strong>Learning</strong><br />
• 排 序 学 习<br />
• 任 务 : 对 一 组 文 档 进 行 排 序<br />
• 评 估 指 标 : 相 关 文 档 应 该 排 在 前 面<br />
• 经 验 : 人 工 标 注<br />
• 目 标 : 利 用 人 工 标 注 设 计 算 法 以 抓 住 隐 藏 在 数 据 中 的 规<br />
律 从 而 实 现 对 任 意 查 询 请 求 给 出 反 映 相 关 性 的 文 档 排 序
机 器 学 习 的 基 本 要 素<br />
训 练 数 据<br />
training<br />
data<br />
评 估<br />
evaluation<br />
机 器<br />
学 习<br />
特 征<br />
feature<br />
算 法<br />
algorithm<br />
模 型<br />
model
机 器 学 习 的 基 本 步 骤<br />
训 练 数 据 生 成<br />
特 征 抽 取 模 型 构 建 算 法 设 计 模 型 选 择 效 果 评 估<br />
{q, d, r} x qq {f x qq } T( x qq , r , f x qq ) f ∗ (x qq ) E(f ∗ , r)
机 器 学 习 分 类<br />
• 监 督 学 习 (Supervised <strong>Learning</strong>)<br />
• 标 注 数 据 模 型<br />
• 半 监 督 学 习 (Semi-supervised <strong>Learning</strong>)<br />
• 标 注 数 据 + 未 标 注 数 据 模 型<br />
• 无 监 督 学 习 (Unsupervised <strong>Learning</strong>)<br />
• 未 标 注 数 据 模 型
什 么 是 排 序 学 习
排 序 学 习 的 定 义<br />
• 广 义<br />
• 排 序 学 习 指 机 器 学 习 中 任 何 用 于 排 序 的 技 术<br />
• 狭 义<br />
• 排 序 学 习 指 在 排 序 生 成 (ranking creation) 和 排<br />
序 整 合 (ranking aggregation) 中 用 于 构 建 排 序<br />
模 型 的 机 器 学 习 方 法<br />
[ Hang Li, <strong>Learning</strong> <strong>to</strong> <strong>Rank</strong> for Information Retrieval and Natural Language Processing]
排 序 学 习<br />
D =<br />
文 档 库<br />
d 1 , d 2 , … … d N<br />
文 档<br />
列 表<br />
用 户 查 询<br />
q<br />
特 征 提 取<br />
x qd1 , x qd2 , … x qdN<br />
排 序 模 型 f(x qq )<br />
d q,1<br />
d q,2<br />
d q,3<br />
…<br />
d q,nq<br />
相<br />
关<br />
性<br />
从<br />
小<br />
到<br />
大
• 什 么 是 排 序 学 习<br />
• 如 何 学 习 一 个 排 序<br />
• 排 序 学 习 的 两 条 线<br />
• 排 序 生 成<br />
• 排 序 整 合<br />
• 参 考 资 料
• 什 么 是 排 序 学 习<br />
• 如 何 学 习 一 个 排 序<br />
• 排 序 学 习 的 两 条 线<br />
• 排 序 生 成<br />
• 排 序 整 合<br />
• 参 考 资 料
横 线<br />
• 排 序 生 成<br />
• 输 入 : 查 询 文 档 对 以 及 标 注 数 据<br />
• 输 出 : 一 个 排 序 模 型 , 可 以 为 新 查 询 排 列 文<br />
档<br />
• 排 序 整 合<br />
• 输 入 : 一 组 排 序 列 表 和 标 注 数 据<br />
• 输 出 : 一 个 排 序 模 型 , 可 以 整 合 不 同 的 排 序 列<br />
表
<strong>Learning</strong> <strong>to</strong> <strong>Rank</strong><br />
排 序 生 成
学 习 系 统<br />
排 序 系 统
排 序 整 合<br />
听 谁 的 <br />
<strong>Learning</strong> <strong>to</strong> <strong>Rank</strong>
排 序 整 合 ( 续 )<br />
π 1<br />
π 2<br />
排 序 整 合 系 统 F(π 1 , π 2 … π n )<br />
π n
纵 线<br />
• 训 练 数 据 怎 么 来 <br />
• 单 点 标 注 (pointwise)<br />
• 两 两 标 注 (pairwise)<br />
• 列 表 标 注 (listwise)<br />
• 模 型 如 何 学 习 <br />
• 监 督 学 习 (supervised learning)*<br />
• 无 监 督 学 习 (unsupervised learning)<br />
‣ 多 作 为 特 征 使 用<br />
• 半 监 督 学 习 (semi-supervised learning)<br />
• 如 何 评 估 学 习 效 果 <br />
• Mean Average Precision (MAP) *<br />
• Normalized Discount Cumulative Gain (NDCG)*<br />
• Mean Reciprocal <strong>Rank</strong> (MRR)<br />
• Winners Take All (WTA)<br />
• Kendall’s Tau<br />
• ……
• 什 么 是 排 序 学 习<br />
• 如 何 学 习 一 个 排 序<br />
• 排 序 学 习 的 两 条 线<br />
• 排 序 生 成<br />
• 排 序 整 合<br />
• 参 考 资 料
标 注 数 据 生 成 (Data Labeling)<br />
• 显 式 标 注<br />
• 对 每 一 个 查 询 , 人 工 检 查 文 档 的 相 关 性<br />
• 代 价 高 ( 钱 + 时 间 )<br />
• 噪 声 大<br />
• 隐 式 标 注<br />
• 从 用 户 点 击 记 录 (query log) 里 抽 取 数 据 标 注<br />
‣ 用 户 总 是 习 惯 于 从 上 到 下 浏 览 搜 索 结 果<br />
‣ 如 果 用 户 跳 过 了 排 在 前 面 的 文 档 而 点 击 浏 览 了 排 在 后 面 的 文<br />
档 , 那 么 排 在 后 面 的 文 档 就 比 排 在 前 面 的 文 档 更 相 关<br />
• 用 户 点 击 有 比 较 大 的 噪 声<br />
• 只 有 头 查 询 (head query) 才 存 在 用 户 点 击
人 工 标 注 (Human Labeling)<br />
• 训 练 + 评 估<br />
• 单 点 标 注<br />
• 为 每 个 查 询 文 档 对 打 上 绝 对 标 签<br />
• 二 元 标 注 : 相 关 v.s. 不 相 关 {1,0}<br />
• 五 级 标 注 : 完 美 (Perfect), 出 色 (Excellent), 好 (Good), 一 般 (Fair), 差 (Bad)<br />
‣ 一 般 + 差 = 不 相 关<br />
• 好 处 : 工 作 量 相 对 较 小 (O(n))<br />
• 坏 处 : 定 多 少 级 合 适 不 同 的 人 对 相 同 的 级 , 相 同 的 文 档 能 否 有 相 同<br />
的 理 解 ---> 噪 声 大 , 一 致 性 差<br />
• 两 两 标 注<br />
• 对 于 一 个 查 询 q, 文 档 d 1 是 否 比 文 档 d 2 更 相 关 q, d 1 ≻ q, d 2<br />
• 好 处 : 不 同 的 标 注 人 员 容 易 达 成 一 致<br />
• 坏 处 : 工 作 量 大 , (O(n 2 )), 最 好 (O(nnnnn))<br />
• 列 表 标 注<br />
• 给 定 一 个 查 询 , 为 所 有 文 档 给 出 标 准 排 序<br />
• 不 常 见
特 征 提 取 (Feature Extraction)<br />
• 如 何 表 示 一 对 查 询 文 档 <br />
• 查 询 文 档 中 共 同 出 现 的 词 的 个 数<br />
• 点 击 次 数<br />
• BM25<br />
‣ [S.E.Robertson & S.Walker Some simple effecitve approximations <strong>to</strong> the 2-<br />
poisson model for probabilistic weighted retrieval]<br />
• Page<strong>Rank</strong><br />
‣ [L.Page et al., The pagerank citation ranking: Brining order <strong>to</strong> the web]<br />
• 编 辑 距 离 (edit distance)<br />
‣ [Tao Tao and Chengxiang Zhai. <strong>An</strong> exploration <strong>of</strong> proximity measures in<br />
information retrieval]<br />
• 网 页 质 量<br />
‣ [Bendersky et al. Quality-biased ranking <strong>of</strong> web documents]<br />
• ……
BM25<br />
逆 文 档 频 率<br />
文 档 长 度<br />
词<br />
词 频<br />
平 均 文 档 长<br />
度<br />
iii w = log (<br />
# d<br />
# d t ∈ d )
Page<strong>Rank</strong><br />
度 量 文 档 的 重 要 程 度<br />
一 个 文 档 的 重 要 程 度 由 链 向 它<br />
的 文 档 的 重 要 程 度 决 定<br />
0.5<br />
0.5<br />
1<br />
互 联 网 图 上 的 随 机 游 动<br />
0.5<br />
1<br />
0.33<br />
0.33<br />
0.33<br />
文 档 得 分 , 停 留 概 率<br />
0.5<br />
链 向 d 的 文 档 集 合 文 档 d i 的 出 度 随 机 跳 转
评 估 准 则 (Evaluation Measure)<br />
• MAP (Mean Average Precision)<br />
• 给 定 一 个 排 序 , 相 关 文 档 排 得 越 靠 前 , 排 序 结 果 越 好<br />
• 计 算 排 在 相 关 文 档 前 面 的 相 关 文 档 比 例<br />
• P i = ∑ π(k)≤π(i) y q,k<br />
π(i)<br />
• AA q = ∑ nq<br />
i=1<br />
P i y q,i<br />
∑<br />
nq<br />
y<br />
i=1 q,i<br />
• MAP= ∑ q AA(q)<br />
#q<br />
• (1,0,1,1,0,0)<br />
‣ P i =(1,-,0.67,-,0.75,-,-)<br />
‣ AP=(1+0.67+0.75)/3=0.81<br />
,<br />
1 相 关<br />
0 不 相 关<br />
文 档 i 的 排 序
评 估 准 则 ( 续 )<br />
• NDCG (Normalized Discount Cumulative Gain)<br />
• 当 标 注 数 据 有 多 级 的 时 候 , 级 高 的 文 档 应 该 排 在 前 面<br />
• Perfect>Excellent>Good>Fair>Bad<br />
• DDD = ∑<br />
n 2 y q,i −1<br />
i=1 log (π i +1)<br />
• NNNN = DDD<br />
DDD mmm<br />
• (2,3,2,3,1,1)<br />
‣ 2 y q,i − 1=(3,7,3,7,1,1)<br />
‣ 1/log(π i + 1)=(1,0.63,0.5,0.43,0.39,0.36)<br />
‣ DCG=12.67<br />
‣ DCG_max=14.95<br />
‣ NDCG=12.67/14.95=0.85
训 练
预 测
排 序 模 型<br />
• 基 于 数 据 点 的 方 法 (pointwise)<br />
• 输 入<br />
‣ 单 个 查 询 文 档 对 : x 1,1 , y 1,1 , x 1,2 , y 1,2 … … (x m,nm ,y m,nm )<br />
‣ 完 全 忽 略 相 同 查 询 下 文 档 间 的 关 系<br />
‣ 标 注 (label) 转 化 成 数 字<br />
– Perfect->5, Excellent->4, Good->3, Fair->2, Bad->1<br />
• 输 出<br />
‣ 排 序 函 数 f x , 对 于 给 定 查 询 文 档 对 , 能 够 计 算 出 得 分 (score)<br />
• 代 表 模 型<br />
‣ subset ranking<br />
– [David Cossock and Tong Zhang, Subset ranking using regression]<br />
‣ Mc<strong>Rank</strong><br />
– [Ping Li, Chris<strong>to</strong>pher Burges, and Qiang Wu. Macrank: <strong>Learning</strong> <strong>to</strong> rank using multiple<br />
classification and gradient boosting]<br />
‣ Prank<br />
– [Koby Crammer and Yoram Singer. Pranking with ranking]
排 序 模 型 ( 续 )<br />
• 基 于 数 据 对 的 方 法 (pairwise)<br />
• 输 入<br />
‣ 同 一 查 询 下 的 一 对 文 档 x 1,1 , x 1,2, y 1 12 , … … x m,n m −1, x m,nm , y m n m −1,n m<br />
‣ 标 注 是 两 个 文 档 的 相 对 关 系 , 如 果 文 档 x i,ij 比 文 档 x i,ik 更 相 关 , 那 么 y i i j i k<br />
= 1<br />
‣ 部 分 保 留 了 同 一 查 询 下 文 档 间 的 关 系<br />
• 输 出<br />
‣ 排 序 函 数 f x , 对 于 给 定 查 询 文 档 对 , 能 够 计 算 出 得 分 (score)<br />
• 代 表 模 型<br />
‣ <strong>Rank</strong>ing SVM<br />
– [Ralf Herbrich, Thore Graepel, and Klaus Obermayer, Large margine rank boundaries for ordinal<br />
regression]<br />
‣ <strong>Rank</strong>Boost<br />
– [Yoav Freund, Raj D. Iyer, Robert E. Schapire, and Yoram Singer. <strong>An</strong> efficient boosting algorithm for<br />
combining preferences]<br />
‣ <strong>Rank</strong>Net<br />
– [Chris Burges, et al. <strong>Learning</strong> <strong>to</strong> rank using gradient desecnt]
排 序 模 型 ( 续 2)<br />
• 基 于 列 表 的 方 法 (Listwise)<br />
• 输 入<br />
‣ 一 个 查 询 下 的 整 个 列 表<br />
• 输 出<br />
‣ 排 序 函 数 f x , 对 于 给 定 查 询 文 档 对 , 能 够 计 算 出 得 分 (score)<br />
• 代 表 模 型<br />
‣ Lambda <strong>Rank</strong><br />
– [Chris Burges et al. <strong>Learning</strong> <strong>to</strong> rank with nonsmooth cost functions]<br />
‣ ListNet<br />
– [Zhe Cao et al. <strong>Learning</strong> <strong>to</strong> rank: from pairwise approach <strong>to</strong> listwise approach]<br />
‣ ListMLE<br />
– [Fen Xia et al. Listwise approach <strong>to</strong> learning <strong>to</strong> rank: theory and algorithm]<br />
‣ Ada<strong>Rank</strong><br />
– [Jun Xu and Hang Li, Adarank: a boosting algorithm for information retrieval]<br />
‣ SVMap<br />
– [Yisong Yue et al. A support vec<strong>to</strong>r method for optimizing average precision]
Pointwise v.s. Pairwise v.s. Listwise<br />
pointwise pairwise listwise<br />
信 息 完 全 度 不 完 全 部 分 完 全 完 全<br />
输 入 (x, y) x 1 , x 2 , y x 1 , x 2 , … … x n , π<br />
输 出 f(x) f(x) f(x)<br />
样 本 复 杂 度 O(n) O(n 2 ) O(n!)<br />
表 现 差 中 好
<strong>Rank</strong>ing SVM
输 入<br />
• 对 于 每 一 个 查 询 , 将 文 档 列 表 转 换 成 文 档 对<br />
查 询<br />
查 询<br />
文 档 1<br />
好<br />
文 档 1<br />
文 档 1<br />
文 档 2<br />
文 档 2<br />
中<br />
文 档 2<br />
文 档 3<br />
文 档 3<br />
文 档 3<br />
差
算 法 设 计<br />
• 目 标 : 学 习 一 个 ( 线 性 ) 排 序 函 数 f x = w ∙ x<br />
• 直 观 : 如 果 x i 比 x j 更 相 关 , 那 么 f x i > f(x j )<br />
• 数 学 表 示 : w, x i − x j > 0<br />
• 转 化 成 分 类 问 题<br />
• x i − x j , y x i ≻ x j , y = 1, 否 则 y = −1
利 用 SVM 求 解 排 序 问 题
工 具<br />
• SVMLight<br />
• http://svmlight.joachims.org/
• 什 么 是 排 序 学 习<br />
• 如 何 学 习 一 个 排 序<br />
• 排 序 学 习 的 两 条 线<br />
• 排 序 生 成<br />
• 排 序 整 合<br />
• 参 考 资 料
代 表 模 型<br />
• 无 监 督<br />
• Borda Count<br />
‣ [Javed A. Aslam and Mark Montague, Models for<br />
metasearch]<br />
• Markov Chain<br />
‣ [Cynthia Dwork et al. <strong>Rank</strong> aggregation methods for the<br />
web]<br />
• 监 督<br />
• Cranking<br />
‣ [Guy Lebanon and John Lafferty, Cranking: combining<br />
rankings using conditional probability models on<br />
permutations]
Borda Count<br />
• 给 定 一 组 排 序 列 表 , 计 算 排 在 每 个 文 档 后 面 文<br />
档 的 个 数 和<br />
基 本 排 序<br />
π 1 , π 2 , … … π n<br />
计 算 文 档 x 在<br />
π i 上 的 得 分<br />
S i x = #{π i k > π i x }<br />
排 序 函 数<br />
n<br />
f x = S i (x)<br />
i=1
Borda Count ( 续 )<br />
• 基 本 排 序<br />
• (A,B,C), (A,C,B), (B,A,C)<br />
• 计 算 每 个 排 序 上 的 得 分<br />
• (S 1 (A), S 1 (B), S 1 (C))= (2,1,0)<br />
• (S 2 (A), S 2 (B), S 2 (C))= (2,0,1)<br />
• (S 3 (A), S 3 (B), S 3 (C))= (1,2,0)<br />
• 计 算 排 序 函 数 值<br />
• f(A)=2+2+1=5<br />
• f(B)=1+0+2=3<br />
• f(C)=0+1+0=1
• 什 么 是 排 序 学 习<br />
• 如 何 学 习 一 个 排 序<br />
• 排 序 学 习 的 两 条 线<br />
• 排 序 生 成<br />
• 排 序 整 合<br />
• 参 考 资 料
参 考 文 献<br />
• Hang Li, <strong>Learning</strong> <strong>to</strong> rank for information<br />
retrieval and natural language processing.<br />
Synthesis Lectures on Human Language<br />
Technologies, 4(1):1-113, 2011<br />
• Tieyan Liu. <strong>Learning</strong> <strong>to</strong> rank for information<br />
retrieval. Foundations and Trends in<br />
Information Retrieval. 3(3):225-331, 2009