nips2014 reading - top rank optimization in linear time
Post on 28-Jul-2015
215 Views
Preview:
TRANSCRIPT
1-page summary
• 上位だけを当てに行くランキング学習
• サンプル数の線形オーダの学習時間
– ランキング学習=サンプル対の差分の二値分類=サンプル数の二乗オーダの学習時間という問題を解消.
• ランキング学習一般に使える
–問題特有の性質を使った高速化ではない
Learning to rank
• 指定のクエリを含むたくさんの文書を何かの基準で並び替える問題.
@sleepy_yoshiランキング学習事始め http://www.slideshare.net/sleepy_yoshi/dsirnlp1
上位だけを再現する方法
• 上位を強調する評価尺度を直接最適化
–情報検索の評価尺度は上位重視: AP, NDCG
–直接の最適化は問題が複雑になる,遅い.
• 上位を強調する凸損失関数を設定
– [Usunier+ ICML09] [Rudin+ JMLR09]
– InfinitePush [Agarwal+ SDM11]
–結局pairwise学習,遅い.
この論文の貢献
• 上位を強調する評価尺度を直接最適化
–情報検索の評価尺度は上位重視: AP, NDCG
–直接の最適化は問題が複雑になる,遅い.
• 上位を強調する凸損失関数を設定
– [Usunier+ ICML09] [Rudin+ JMLR09]
– InfinitePush [Agarwal+ SDM11]
– Pairwise損失と等価な非pairwise損失を設定
–非凸なprimalを凸なdualに変換して解く,速い.
ようやく本題
• Bipartite ranking: 評価値∈{-1,+1}の問題を考える.
• 普通の損失関数
– 二値分類に帰着させたときのAUCと等価
素性ベクトルのドメイン
+評価値・ー評価値素性の集合
損失関数を変える
• 普通の損失=AUC
• 上位に注力した損失: positives at the top
予測順位 正解評価値
1 +1
2 -1
3 +1
4 +1
5 -1
ℒ𝑟𝑎𝑛𝑘 = 1 + 1 + 0 + 1 + 0 + 1 /6
= 0.667
ℒ = 1 + 0 + 0 /3 = 0.333
最適化できる損失に変える
• Indicatorを単調非減少凸関数に変える
– Truncate quadratic がおすすめ?
• 実は従来法 [Agarwal+ SDM12] の損失と等価
–従来のℒ∞ℓ よりも今回のℒℓの方が計算が楽
–あとで出てくる双対問題の変数も少なくて済む
最適化の準備 1/2
• 線形ranker を考える
• 微分可能凸関数の共役凸関数ℓ 𝑧 = max
𝛼∈Ω𝛼𝑧 − ℓ∗(𝛼)
– ℓ∗ 𝛼 : ℓ(𝑧)の共役凸関数
– ℓ 𝑧 = truncated quadratic→ ℓ∗ 𝛼 = −𝛼 + 𝛼2/4, Ω = ℝ+
top related