wsdm2012読み会: learning to rank with multi-aspect relevance for vertical search
DESCRIPTION
WSDM2012読み会の発表資料TRANSCRIPT
WSDM2012読み会: Learning to Rank with Multi-Aspect
Relevance for Vertical Search
2012-04-07
Yoshihiko Suhara
@sleepy_yoshi 1
今日紹介する論文
• Learning to Rank with Multi-Aspect Relevance for Vertical Search
– by Changsung Kang, Xuanhui Wang, Yi Chang, Belle Tseng (Yahoo! Labs)
• SIGIR, WWW, WSDM, CIKM, KDD あたり
2
1枚概要
• 問題 – Vertical search (分野特化型検索エンジン) におけるランキングの最適化
• 課題 –複数のaspectに対するランキング関数の学習
• 解き方 – label aggregation, model aggregationを提案
3
Vertical searchとは?
4
Yahoo! の例
5
背景
• ウェブ検索クエリの20%は場所に関する意図を持つ ⇒ Local searchは大切だよね!
• Local searchの場合,3つの aspect を持つ – (1) text matching aspect
• テキストクエリへの一致度
– (2) distance aspect • 場所クエリに対してどれだけ近いか
– (3) reputation aspect • 店の評判
6
Vertical searchの検索結果
クエリ
(情報検索で いうところの) 文書
7
各文書に対する評価方法
text matching aspect
distance aspect
reputation aspect
評価ガイドライン
8
各文書に対する評価方法
text matching aspect
distance aspect
reputation aspect
各文書について3つのaspectに対する 適合度ラベルが付与される
9
やりたいこと
• 入力されたクエリに対して複数のaspectを持つ文書のランキングの最適化する
Training data
(𝒙11, 𝑦1
1)
…
… (𝒙2
1, 𝑦2
1)
(𝒙𝑛1
1, 𝑦𝑛1
1)
(𝒙12, 𝑦1
2)
…
(𝒙22, 𝑦2
2)
(𝒙𝑛2
2, 𝑦𝑛2
2)
(𝒙1𝑁
, 𝑦1𝑁
)
…
(𝒙2𝑁
, 𝑦2𝑁
)
(𝒙𝑛𝑁
𝑁, 𝑦𝑛𝑁
𝑁)
𝑞1 𝑞2 𝑞𝑁
ただし適合度
ラベルがスカラーではなくベクトル
10
従来のアプローチ
• Learning-to-rank手法はひとつのaspect (= relevance) を最適化する手法
• 複数のスコアが与えられた場合には解き方は自明ではない
• 従来手法 (今回のベースライン) – 経験知と勘によって用意されたルールに基づいて複数スコアの線形和で最終スコアに変換
– 最終スコアを適合度と見なして従来のLearning to rankのアプローチで解く
11
従来手法の欠点
• (1) ルールの作成が困難
• (2) 現実の問題をとらえるにはちと粗い
–ある素性空間で複数aspectの特徴を表現できるのか?
• aspect毎に異なる素性空間を利用したい
• (3) aspectが増加するとルールも指数的に増加するのでスケールしない
12
提案手法のアプローチ
2つのアプローチを提案
• (1) Label aggregation method – ラベルの重みを学習 => 1ラベルに変換
– 1ラベルのランキング学習でモデル作成
• (2) Model aggregation method –各ラベルについてランキング学習でモデル作成
–各モデルの重みを学習
13
(ちょっと退屈な) 定義とかの説明
14
定義1: Aspect Relevance
• クエリqにおける文書dのk番目のaspectの適
合度は 𝑙 ∈ 𝐿𝑘 = 𝑙𝑘,1 ≺,… ,≺ 𝑙𝑘,𝑛𝑘 良い 悪い
15
定義2: Multi-Aspect Relevance
• m個のaspectが与えられた場合には,各aspectに対する適合度をm次元のベクトル𝒚 = 𝑦1, … , 𝑦𝑚
𝑇で表現する
16
定義3: Mapping Function
• k番目のaspectの写像関数𝜙𝑘: 𝐿𝑘 → ℝは適合度ラベルを実数値に写像する
–ただし,順序は保持
17
定義4: Label Aggregation Function
• 𝒚をoverall relevance value 𝑧に写像する関数ℎ:ℝ𝑚 → ℝ
18
よーするに
19
Multi-aspect label から overall relevance へ
𝑙1,3
𝑦1
𝑦2
𝑦3
𝑙1,2
𝑙1,1
𝑙2,3
𝑙2,2
𝑙2,1
𝑙3,3
𝑙3,2
𝑙3,1
𝜙1
𝜙2
𝜙3
( )
= 𝒚 ℎ 𝑧
✔
✔
✔
文書に対して1つのラベルに落とし込んだので 従来手法を用いてランキング関数の学習が可能
20
用意するもの
21
用意するもの
• 訓練データ ℱ = 𝒙, 𝒚
• 選好評価
𝒚𝑖 , 𝒚𝑗 ∈ 𝒫 または 𝒙𝑖 , 𝒙𝑗 ∈ 𝒫
論文中にはranking feature xに関する記述一切なし!! 推して知るべし!!
22
図解: 用意するもの
Training data
ℱ={(𝒙, 𝒚)} (𝒙11, 𝒚1
1)
…
… (𝒙2
1, 𝒚2
1)
(𝒙𝑛1
1, 𝒚𝑛1
1)
(𝒙12, 𝒚1
2)
…
(𝒙22, 𝒚2
2)
(𝒙𝑛2
2, 𝒚𝑛2
2)
(𝒙1𝑁
, 𝒚1𝑁
) …
(𝒙2𝑁
, 𝒚2𝑁
)
(𝒙𝑛𝑁
𝑁, 𝒚𝑛𝑁
𝑁)
𝑞1 𝑞2 𝑞𝑁
Preference pairs 𝒫
𝒚11, 𝒚2
1
𝒚11, 𝒚3
1
𝒚12, 𝒚2
2 𝒚1
𝑁, 𝒚2
𝑁
23
𝑞1
…
…
𝑞2 𝑞3
図解: 用意するもの
Training data
ℱ={(𝒙, 𝒚)} (𝒙11, 𝒚1
1)
…
… (𝒙2
1, 𝒚2
1)
(𝒙𝑛1
1, 𝒚𝑛1
1)
(𝒙12, 𝒚1
2)
…
(𝒙22, 𝒚2
2)
(𝒙𝑛2
2, 𝒚𝑛2
2)
(𝒙1𝑁
, 𝒚1𝑁
) …
(𝒙2𝑁
, 𝒚2𝑁
)
(𝒙𝑛𝑁
𝑁, 𝒚𝑛𝑁
𝑁)
𝑞1 𝑞2 𝑞𝑁
Preference pairs 𝒫
𝒚11, 𝒚2
1
𝒚11, 𝒚3
1
𝒚12, 𝒚2
2 𝒚1
𝑁, 𝒚2
𝑁
24
𝑞1
…
…
𝑞2 𝑞3
補足: ranking feature について
MSLR-WEB datasetのfeature (の一部)
(http://research.microsoft.com/en-us/projects/mslr/feature.aspx より抜粋)
+ ・ 地理的な要因
・ 評判を反映するような要因
など?
𝒙 (= Φ 𝑞, 𝑑 ) =
25
(1) Label aggregation method
26
Label aggregation methodの流れ
• 1. 𝒫を用いてaggregation function ℎ(𝒚) を学習
– 設定されなければ写像関数Φも学習
• 2. 訓練データにℱ = 𝒙, 𝒚 にℎ(𝒚) を適用して
ℱ = 𝒙, ℎ 𝒚 を生成
• 3. 従来のランキング学習手法を用いてランキング関数𝑓ℎを学習
27
1つの適合度ラベル
大事なのここだけ
Label aggregation method
以下の2つを提案
• (A) Linear aggregation method
– ラベルの写像関数は人手で設定
• (B) Joint learning method
– ラベルの写像関数も同時に学習
𝑙1,3 𝑦1
𝑦2
𝑦3
𝑙1,2
𝑙1,1
𝑙2,3 𝑙2,2
𝑙2,1
𝑙3,3 𝑙3,2
𝑙3,1
𝜙1
𝜙2
𝜙3
( )
= 𝒚 ℎ 𝑧
✔
✔
✔
(A) ここだけ学習
(B) ここも学習 28
(A) Linear aggregation method
29
A Linear Aggregation Method (1/2)
• 最も簡単な方法は,
𝑦𝑘 = 𝜙𝑘 𝑙𝑘,𝑠 =𝑠−1
𝑛𝑘−1 for 𝑠 = 1,… , 𝑛𝑘
• これを用いてrelevance label 𝑙𝑘,𝑠を[0, 1]に写像
𝑙1,𝑠 → 𝑦1 𝑙2,𝑠 → 𝑦2
𝑙3,𝑠 → 𝑦3
30
A Linear Aggregation Method (2/2)
• multi-aspect relevance vector yに対する線形重みベクトルwを学習するため,以下の損失関数を利用
𝐿 =1
2 max 0, 1 − 𝒘𝑇𝒚𝑖 + 𝒘𝑇𝒚𝑗
2
𝒚𝑖,𝒚𝑗 ∈𝑃
– はて,ヒンジロスを2乗する意図は? (HELP!)
– なお線形「重み」にしたいので𝒘 ≽ 0
– 勾配法で解く (後述)
こんな損失
1- 𝒘𝑇(𝒚𝑖 − 𝒚𝑗)
loss
hinge-loss
𝒘𝑇(𝒚𝑖 − 𝒚𝑗)と解釈すると
「選好順序」に対する0-1損失 の近似
0-1 loss 31
(A) Joint learning method
32
A Joint Learning Method
• 先ほどの例ではk番目のaspectに対するラベルの写
像関数𝜙𝑘 𝑙𝑘,𝑠 は人手で設定されたものを利用
– これも同時に学習したい!
• そこで今度は下記のような損失関数を利用
𝐿 =1
2 max 0, 1 − 𝒘𝑇Φ(𝒚𝑖) + 𝒘𝑇Φ 𝒚𝑗
2
𝒚𝑖,𝒚𝑗 ∈𝑃
• gradient-and-projection で最適化
33
特に記述はないが線形関数?
Gradient-and-projection (1/2)
• 先ほどの損失関数の勾配を計算
– 各パラメータで偏微分
ここで
𝒜𝑘,𝑠 = 𝒚𝑖 , 𝒚𝒋 ∈ 𝒫 𝑦𝑖,𝑘 = 𝑙𝑘,𝑠, 𝑦𝑗,𝑘 ≠ 𝑙𝑘,𝑠}
ℬ𝑘,𝑠 = 𝒚𝑖 , 𝒚𝑗 ∈ 𝒫 𝑦𝑖,𝑘 ≠ 𝑙𝑘,𝑠, 𝑦𝑗,𝑘 = 𝑙𝑘,𝑠}
𝒘𝑇Φ 𝑦𝑖 = (𝑤1 … 𝑤𝑚)𝜙1 𝑙1,𝑠
⋮𝜙𝑚 𝑙𝑚,𝑠
ヒント:
34
Gradient-and-projection (1/2)
• gradient した後に制約を満たすように projection
35
FOBOS [Duchi+ 09] と同じノリ?
[Duchi+ 09] J. Duchi, Y. Singer, “Efficient Online and Batch Learning using Forward Backward Splitting”, JMLR, 2009.
制約を満たすように
変更を小さく 変更を小さく
目的関数が凸+線形制約=二次計画
[質問] gradient-and-projection は割とスタンダードな手法なんでしょうか?
(2) Model Aggregation
36
Model aggregation methodの流れ
• 1. 各aspect 𝑎𝑖に対して 𝑦𝑖 = 𝜙𝑖 𝑙𝑖,𝑠 に基づいてランキング関数𝑓𝑎𝑖
を学習 –従来のランキング学習手法を利用
• 2. 各データについてm次元ベクトル 𝐟 𝒙 = [𝑓𝑎1
𝒙 ,… , 𝑓𝑎𝑚(𝒙)]を生成
• 3. 𝐟 𝒙 と𝒫 を用いてaggregation function ℎを学習
37
大事なのここだけ
Aggregation function ℎ の学習
• Aggregation function: ℎ 𝐟 𝒙 = 𝒘𝑇𝐟 𝒙
• 𝒘 を学習するために以下の損失を利用
–最適化は先ほどと同じ
38
※ preference pairsを利用
Model aggregation の利点
• (1) 各aspectに異なるモデルを利用可能
–例) text matching aspect には複雑なモデル,distance aspect には単純な回帰モデル
• (2) 𝒚が不要.𝐟 𝒙 があればよい
– クリックログデータなどの外部情報を 𝒙𝑖 , 𝒙𝑗 ∈ 𝒫
として利用可能
39
評価実験 (オフライン実験/オンライン実験)
40
オフライン実験のデータセット
(a) Category Queries (b) Business Name Queries
ラベルの比率
41
例) Chinese restaurant Los Angeles, CA 90018
例) Bank of America Los Angeles, CA 90018
informational
navigational
評価指標
• ペア一致率
– for label aggregation
– for model aggregation
42
※ 今回の損失関数で近似的に最適化している指標
比較手法
• Rule – 人手で 𝒚 → 𝑧 してランキング学習
• Ed-overall – 𝒫𝑡𝑟𝑎𝑖𝑛を使ってランキング学習
• Click – クリックログを使ってランキング学習
• Linear [proposed]
– linear aggregation model
• Joint [proposed]
– joint learning model
• ModAgg [proposed]
– Model aggregation method
43
※ ランキング学習にはGBRank (Gradient Boosting Tree) [Zheng+ 08] を利用
[Zheng+ 08] Z. Zheng, H. Zha, T. Zhang, O. Chapelle, K. Chen, and G. Sun, “A general boosting method and its application to learning ranking functions for web search”, NIPS 2008.
補足: クリックログの量
• √1441975 ≒ 1200 (≒ 約1200文書)
• √58782 ≒ 242 (≒ 約242文書)
44
クエリ数は論文に記述されておらず...
実験1: Label aggregation の精度
• これ↑だけを使って label aggregation した場合のペア一致率の比較
45
Jointで精度が上がらないのは𝜙𝑘が線形関数だから?
実験2: Model aggregation の精度
46
考察: 各 aspect の重み
• Category query
47
• Business name query
– distance が効いてくる
オンライン実験
• Local search engine で Bucket test – Cookie でユーザを分類 – 同じユーザに対しては同じランキング手法で結果を提示
• 実験手法
– Rule vs. Linear (2 weeks) – Linear vs. ModAgg (another 2 weeks)
• 評価: Click-Through Rate (CTR) @i
– 検索結果i番目までに表示された数のうち,クリックされた比率
48
CTR5の比較
※ 期間が異なるのでLinear の結果が異なっていることに注意 49
Linear > Rule (p-value < 0.01) ModAgg > Linear (p-value < 0.01)
x軸は日付
まとめ
• 複数のaspectを持つvertical search (今回はlocal search) におけるランキング関数学習において以下の2つのアプローチを提案 – (1) Label aggregation
• (A) Linear aggregation • (B) Joint aggregation
– (2) Model aggregation
• オフライン,オンラインいずれの実験においてもベースラインを上回る精度を示した
• 今回の手法では aspect は人手で設定されている必要がある.Aspect の自動獲得はfuture work.
50
おしまい
51