SlideShare a Scribd company logo
1 of 97
Download to read offline
DSIRNLP #1
ランキング学習ことはじめ
     2011-07-23
   Yoshihiko Suhara
    @sleepy_yoshi
自己紹介
• 数原 良彦 (すはら よしひこ)
 – @sleepy_yoshi
 – http://d.hatena.ne.jp/sleepy_yoshi/

• 情報検索の研究開発ぽい仕事など
 – 情報検索とか機械学習とか
    • 特にランキング学習


• 三浦半島在住
 – マグロを食べる頻度が減った 
 – 三浦半島で地震に怯える日々 

                                         2
さて本題



       3
本発表のねらい
• ねらい
 – ランキング学習の認知度を高める
 – ランキング学習をざっくり伝える
 – なにか实装できるようになっていただく
   • 理論的妥当性の説明はほとんど無し
   • アルゴリズムを可能な限り紹介


• おねがい?
 – 質問は適宜お気軽にどうぞ
 – 手法をたくさん紹介するのはイメージづけのため
   • 完全に理解する必要ありません
   • イメージがつけば後で詳細を追える(ハズ)


                            4
おことわり
• DSIRNLPのコンセプトは「实装」
• そう気が付いたのは今朝の8時でした




                       5
言い訳




MLRに関する实装に踏み込んだ
 ハードな発表をお願いします


                  6
目次
• ランキング学習とは? (15min.)
  – 検索ランキングの歴史
  – 検索ランキングの評価方法
  – ランキング学習の概要


• ランキング学習手法の紹介 (35min.)
  – Pointwise手法
  – Pairwise手法
  – Listwise手法

• その他の話題とまとめ (10min.)

                          7
ランキング学習とは?
• Learning to rank
  – 決まった訳語がない
     • 例) ランキング学習,ランク学習とか
  – 順序学習 (preference learning) とは微妙に違う
     • ランキング学習 ⊂ 順序学習


• 教師あり機械学習の枠組みで,検索ランキン
  グを最適化する技術
  – 最適化ってなによ?

                                         8
ランキング学習とは?



             9
検索エンジン




         10
検索ランキングの歴史
• 従来は単一のランキング手法を利用
 – (1) クエリ・文書関連度に基づく手法
  • TF-IDF, BM25, 言語モデルなど
 – (2) 文書重要度に基づく手法
  • PageRank, HITS, SALSAなど


• 最近では,上記ランキング手法(+α)を統合
  的に扱ってランキングを实現

                              11
近代的なランキングの实現方法
• 多数のランキング素性を用いてランキングを实現
                            クエリ・文書関連度
                              (クエリ依存)
            ������1 (������, ������)
            e.g., BM25
 クエリq           ・
                ・
                ・
            ������������ (������, ������)              ランキング関数

                                ������ T Φ(������, ������)
            ������������+1 (������)
           e.g., PageRank
                ・
                ・               検索スコア
                ・
クエリqを含む      ������������ (������)
文書d                         文書の重要度
                            (クエリ非依存)
           = Φ(������, ������)                           12
ランキング素性の例
クエリq = “hoge” のときの文書1の例

•   TF-TITLE □: 1             <TITLE> hoge </TITLE>
                              <BODY> ... hoge ....
•   TF-BODY □: 3              ...............................
                              ..... hoge ................
•   IN-LINK: 5                ...............................
                              hoge ......................
•   URL length: 12            </BODY>




                            http://www.hoge.com/

       ⇒ Φ "hoge", ������1 = 1, 3, 5, 12 ������                         13
G社の場合 (2009年版?)




                                                                         などなど...



•   Let’s Try to Find All 200 Parameters in Google Algorithm
     – http://www.searchenginejournal.com/200-parameters-in-google-
       algorithm/15457/#ixzz1Io4iBrJI
•   Googleアルゴリズム200項目全てを特別公開
     –   http://swat9.com/seo/google%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%
         83%A0200%E5%80%8B%E3%82%92%E5%85%AC%E9%96%8B/
                                                                                        14
ランキング関数
• (今日は) ランキング関数はランキング素性の線
  形結合とする
 – モデルパラメータ: ������
 – 文書のランキング素性ベクトル: ������

          ������ ������; ������ = ������������ ������

• 非線形モデルもあるが,非線形モデルであるか
  どうかは,ランキング学習を理解する上ではあま
  り重要ではない
                                15
ポイント
• 現代の検索エンジンは多様な要因を用いてラ
  ンキングを实現

• 要因が多くなると,組み合わせの調整が困難
⇒教師あり機械学習の枠組みで最適化




                     16
何を正解とするか?



            17
正解データ (適合性評価) の作成方法
• クエリに対する検索結果集合の一部に対して,「クエリが
  表す意図」に適合しているかという観点で点数を付与
  – 評価点数は多段階
  – 複数の被験者の適合度を平均

クエリgooに対する適合度評価
 クエリ:goo              適合度

     gooトップ       5
 1                          被験者の事前知識
                            に依存するため,
                            ブレなく評価するのは
 2   スパムブログ       0
                            難しい...

 3   IT記事
     評価点数はクエリ・文書ペアに対して付与
              4
                                   18
検索ランキングの評価方法
• 正解データとランキングを比較

• 検索結果上位を重視する評価指標
   – (1) 順位kに高い点数>順位kに低い点数 分子
   – (2) ランキング上位をより重視 分母

• NDCG (Normalized Discouted Cumulative Gain)
   – 上記の2つを取り入れた多段階評価指標
   – ������������,������ : クエリqにおける順位iの評価点数
                                        ������
                                               2������������,������ − 1
                      ������������������������ @������ ≡
                                              log 1 + ������
                                       ������=1

                                          ������������������������ @������
                     ������������������������������ @������ ≡                         (0,1]に正規化
                                        ������������������������������������������ @������

                                                                          19
ランキング学習の問題設定



           20
分類問題におけるモデルの生成
           (������1 , ������1 )
Training   (������2 , ������2 )
  data                      未知のデータ
               …
           (������������ , ������������ )     ������������������������������
                                    入力


  学習
アルゴリズム                        モデル

                学習/生成
                                    出力

                             予測値 ������        21
ランキング学習の訓練データ
   素性や評価はクエリ毎に与えられる

                ������1                   ������2                 ������������
Training      1        1          2         2            ������       ������
           (������1 , ������1 )       (������1 , ������1 )           (������1 , ������1 )
  data
               1       1          2         2
                                                 …       ������       ������
           (������2    , ������2 )    (������2    , ������2 )        (������2 , ������2 )
                   …




               1       1
                                      …




                                                              …
           (������������1 , ������������1 )
                                                         ������       ������
                                  2         2        (������������������ , ������������������ )
                              (������������2 , ������������2 )


                                                                          22
ランキング学習におけるモデルの生成
                             未知のクエリ
                               ������������������������������
                                    ������
                                (������1 , ? )
Training                            ������
                                (������2 , ? )
  data




                                    …
                                     ������
                                (������������������ , ? )

                                          入力


  学習
アルゴリズム                         モデル

               学習/生成
                                          出力
           直接順列を出力
           する手法もある     予測値 ������ = (������1 , ������1 , ..., ������������������ )
                                                  23
ここまでのまとめ
• ランキング素性とランキング関数

• 正解データのつくり方と評価方法
 – 「適合度」至上主義


• ランキング学習におけるモデルと予測



                      24
小休止




ご質問ありますか?   25
实装について
. .: : : : : : : : :: :::: :: :: : :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
           . . : : : :: : : :: : ::: :: : :::: :: ::: ::: ::::::::::::::::::::::::::::::::::::::
        . . .... ..: : :: :: ::: :::::: :::::::::::: : :::::::::::::::::::::::::::::::::::::::::::::
                    Λ_Λ . . . .: : : ::: : :: ::::::::: :::::::::::::::::::::::::::::
                 /:彡ミ゛ヽ;)ー、 . . .: : : :::::: :::::::::::::::::::::::::::::::::
               / :::/:: ヽ、ヽ、 ::i . .:: :.: ::: . :::::::::::::::::::::::::::::::::::::::
             / :::/;;: ヽ ヽ ::l . :. :. .:: : :: :: :::::::: : ::::::::::::::::::
 ̄ ̄ ̄(_,ノ  ̄ ̄ ̄ヽ、_ノ ̄ ̄ ̄ ̄

              完全に忘れてた...                                                                               26
实装のヒント?
         データ構造                                          アルゴリズム
typedef std::pair<int, float> fpair_t;   class Ranker {
                                            int wvec_size;        各手法について
class Document {                            float *wvec;            解説
   int rel_level;
   std::vector<fpair_t> fvec;                 void train (Data *data);
};                                            float predict (Document *doc);
                                         };

class Query {                            線形モデルの場合,重みベクトルだけでよい
   std::vector<Document> docs;
};

class Data {
   std::vector<Query> queries;
};
                                                                               27
以上
あとで何か書いて公開します...




                   28
ランキング学習手法


            29
ランキング学習3つのアプローチ
• 教師あり機械学習 (識別学習) ≒
 – どのような目的関数/損失関数を
 – どのように最適化するのか


• ランキング学習3つのアプローチ
 – (1) Pointwise手法
 – (2) Pairwise手法
 – (3) Listwise手法

                      30
ちょっと先出し


          31
(1) Pointwise手法
  単一のデータに対して損失関数を設定

                  ������1                   ������2                 ������������
Training        1        1          2         2            ������       ������
             (������1 , ������1 )       (������1 , ������1 )           (������1 , ������1 )
  data
                 1       1          2         2
                                                   …       ������       ������
             (������2    , ������2 )    (������2    , ������2 )        (������2 , ������2 )
                     …




                 1       1
                                        …




                                                                …
             (������������1 , ������������1 )
                                                           ������       ������
                                    2         2        (������������������ , ������������������ )
                                (������������2 , ������������2 )


                                                                            32
(2) Pairwise手法
同一クエリのペアに対して損失関数を設定

                 ������1                   ������2                 ������������
Training       1        1          2         2            ������       ������
            (������1 , ������1 )       (������1 , ������1 )           (������1 , ������1 )
  data
                1       1          2         2
                                                  …       ������       ������
            (������2    , ������2 )    (������2    , ������2 )        (������2 , ������2 )
                    …




                1       1
                                       …




                                                               …
            (������������1 , ������������1 )
                                                          ������       ������
                                   2         2        (������������������ , ������������������ )
                               (������������2 , ������������2 )


                                                                           33
(3) Listwise手法
同一クエリのリストに対して損失関数を設定

                 ������1                   ������2                 ������������
Training       1        1          2         2            ������       ������
            (������1 , ������1 )       (������1 , ������1 )           (������1 , ������1 )
  data
                1       1          2         2
                                                  …       ������       ������
            (������2    , ������2 )    (������2    , ������2 )        (������2 , ������2 )
                    …




                1       1
                                       …




                                                               …
            (������������1 , ������������1 )
                                                          ������       ������
                                   2         2        (������������������ , ������������������ )
                               (������������2 , ������������2 )


                                                                           34
先出し終わり
ここまでわかればOK
あとは細かい話


             35
Pointwise手法


              36
Pointwise手法の説明
• 二値分類,多値分類や回帰によって定式化
• 文書毎に損失が与えられる

• Pointwise手法
  – Discriminative Model for IR
  – PRank
  – Regression
  – ...

                                  37
Discriminative Model for IR



                              38
Discriminative Model for IR [Nallapati 04]

  • 適合 (+1) / 非適合 (-1) の二値分類問題とし
    て解く
       – 通常の二値分類アルゴリズムが利用可能

                                   ������1                 ������2                     ������������

            Training
              data         (������11 , ������1 1 )    (������12 , ������1 2 )            (������1������ , ������1 ������ )    適合
                                                                     …
                               1
                           (������2 , ������2 )
                                         1        2
                                              (������2 , ������2 )
                                                             2               ������
                                                                         (������2 , ������2 )
                                                                                      ������
                                                                                              非適合
                                   …




                           (������������1 , ������������1 )
                                                       …




                                1       1                                         …
                                                                         (������������������ , ������������������ )
                                              (������������2   , ������������2
                                                                               ������      ������
                                                   2         2
                                                                 )




                                                                                           39
[Nallapati 04] R. Nallapati. Discriminative Models for Information Retrieval. SIGIR ‘04, (2004).
補足: Perceptron
• オンライン学習手法
  – 線形識別モデル ������������ ������
  – 間違ったパターンに対して適切に識別できるよう
    に重みを修正



• 細かい話にご興味がある方はTokyoNLP#5の「パーセプトロン
  で楽しい仲間がぽぽぽぽ~ん」をご覧ください
  – http://d.hatena.ne.jp/sleepy_yoshi/20110423/p1

                                                 40
Perceptron (二値分類)
 INPUT: (������������ , ������������ ) ∈ ������, ������, ������
OUTPUT: ������

1: Initialize ������0 = ������, ������ = 0
2: FOR ������ in 0 to ������
3: Obtain sample (������������ , ������������ ) from ������
4: IF ������������ ������������ ������������ ≤ 0 THEN
              ������
5:       ������������+1 ← ������������ + ������ ������������ ������������
6:       ������ ← ������ + 1
7: ENDIF
8: ENDFOR
9: RETURN ������������                            41
Perceptron (二値分類)
 INPUT: (������������ , ������������ ) ∈ ������, ������, ������
OUTPUT: ������

1: Initialize ������0 = ������, ������ = 0
2: FOR ������ in 0 to ������                  間違ったら重みを修正
3: Obtain sample (������������ , ������������ ) from ������
4: IF ������������ ������������ ������������ ≤ 0 THEN
              ������
5:       ������������+1 ← ������������ + ������ ������������ ������������
6:       ������ ← ������ + 1
7: ENDIF
8: ENDFOR
9: RETURN ������������                                     42
PRank



        43
PRank [Crammer+ 02]
• 順序を考慮した多値分類アルゴリズム
  – 閾値を用いて離散値を出力

• モデル
  – 線形モデル: ������������ ������
  – 適合度レベルk個の閾値を用意
                     ������1 ≤ ⋯ ≤ ������������−1 ≤ ������������ = ∞
  – ������������−1 < ������������ ������ < ������������ のとき,������と予測
                   ������ = min *������: ������������ ������ − ������������ < 0+
                        ������∈*1,…������+


• 学習方法
  – Perceptronと同様に1サンプルずつ学習
  – 誤った予測をした場合,重み������と閾値������の両方を修正

*Crammer+ 02+ K. Crammer and Y. Singer. Pranking with Ranking. NIPS ‘01, (2002)   44
PRankの学習
訓練データ (������, ������)
              ������1        ������2        ������3          ������4              ������1        ������2         ������3   ������4
                    ������                     ������                           ������         +1x

         1          2          3           4             5

������������ :
                                                       自分より
         -1         -1         +1         +1           左側 -1
                                                       右側 +1
                                                                  +1         -1          -1

������������ : -1            0         +1         +1           自分がいる
                                                       エリアを0とする     重みと閾値を修正

    修正幅

             ������������������������ = ������������������������ +             ������������ ������
                                          ������

                            ������������������ ������������������
                          ������������ = ������������ − ������������

                                                                                                     45
PRank




        46
PRank
                   ラベルの予測



                        ������������ の計算


������������ の計算

                        重みと閾値の
                          更新




                                   47
Pairwise手法


             48
Pairwise手法の説明
• 文書ペアで損失を設定し,二値分類問題として解く
• 一般的にPointwise手法より高精度な学習が可能とさ
  れている

• Pairwise手法
  –   Stochastic Pairwise Descent
  –   RankingSVM
  –   IR-SVM
  –   RankBoost
  –   RankNet
  –   ...


                                    49
Pairwise → 二値分類
• 同一クエリ内の文書Aと文書Bに着目
    ������������ ������������ > ������������ ������������ ⇒ ������������ ������������ − ������������ > 0
   ������������ ������������ < ������������ ������������ ⇒ ������������ ������������ − ������������ < 0

• 以下のようにすると,二値分類問題として解ける
                  ������������������ = ������������ − ������������
             ������������������ = sign(������������ − ������������ )


                                                   50
再掲: Perceptron (二値分類)
 INPUT: (������������ , ������������ ) ∈ ������, ������, ������
OUTPUT: ������

1: Initialize ������0 = ������, ������ = 0
2: FOR ������ in 0 to ������
3: Obtain sample (������������ , ������������ ) from ������
4: IF ������������ ������������ ������������ ≤ 0 THEN
              ������
5:       ������������+1 ← ������������ + ������ ������������ ������������
6:       ������ ← ������ + 1
7: ENDIF
8: ENDFOR
9: RETURN ������������                            51
Perceptron (ペアワイズ)
 INPUT: (������������ , ������������ , ������������ ) ∈ ������, ������, ������
OUTPUT: ������

1: Initialize ������0 = ������, ������ = 0
2: FOR ������ in 0 to ������
3: Obtain two samples (������������ , ������������ , ������������ ), (������������ , ������������ , ������������ ) from ������
        , where ������������ = ������������ AND ������������ ≠ ������������
4: Let ������������ = sign(������������ − ������������ ), ������������ = ������������ − ������������
5: IF ������������ ������������ ������������ ≤ 0 THEN
              ������
6:       ������������+1 ← ������������ + ������ ������������ ������������
7:       ������ ← ������ + 1
8: ENDIF
9: ENDFOR
10: RETURN ������������                                                              52
Perceptron (ペアワイズ)
 INPUT: (������������ , ������������ , ������������ ) ∈ ������, ������, ������
OUTPUT: ������

1: Initialize ������0 = ������, ������ = 0
2: FOR ������ in 0 to ������
3: Obtain two samples (������������ , ������������ , ������������ ), (������������ , ������������ , ������������ ) from ������
        , where ������������ = ������������ AND ������������ ≠ ������������
4: Let ������������ = sign(������������ − ������������ ), ������������ = ������������ − ������������
5: IF ������������ ������������ ������������ ≤ 0 THEN
              ������
6:       ������������+1 ← ������������ + ������ ������������ ������������
7:       ������ ← ������ + 1
8: ENDIF
9: ENDFOR
10: RETURN ������������                                                              53
Stochastic Pairwise Descent [Sculley 09]
• ランダムランプリングした文書ペアに対して重み
  更新を行う
  – 更新手法はいろいろ
     •   SVM
     •   Passive-Aggressive
     •   Margin-Perceptron
     •   など


• 实装: sofia-ml
  – http://code.google.com/p/sofia-ml/

                                            54
Stochastic Pairwise Descent
 INPUT: (������������ , ������������ , ������������ ) ∈ ������, ������, ������
OUTPUT: ������

1: Initialize ������0 = ������, ������ = 0
2: FOR ������ in 0 to ������
3: Obtain two samples (������������ , ������������ , ������������ ), (������������ , ������������ , ������������ ) from ������
        , where ������������ = ������������ AND ������������ ≠ ������������
4: Let ������������ = sign(������������ − ������������ ), ������������ = ������������ − ������������
5: IF ������������ ������������ ������������ ≤ 0 THEN
              ������
6:       ������������+1 ← ������������ + ������ ������������ ������������
7:       ������ ← ������ + 1
                                      この部分を変更
8: ENDIF
9: ENDFOR
10: RETURN ������������                                                              55
Stochastic Pairwise Descent (PA-I)
 INPUT: (������������ , ������������ , ������������ ) ∈ ������, ������, ������
OUTPUT: ������

1: Initialize ������0 = ������, ������ = 0
2: FOR ������ in 0 to ������
3: Obtain two samples (������������ , ������������ , ������������ ), (������������ , ������������ , ������������ ) from ������
        , where ������������ = ������������ AND ������������ ≠ ������������
4: Let ������������ = sign(������������ − ������������ ), ������������ = ������������ − ������������
5: IF ������������ ������������ ������������ ≤ 0THEN
                 ������         ℓ������
            ������������ = min ������,
6:       ������������+1 ← ������������ + ������������2������������ ������������
                           ������
7:       ������ ← ������+1 =1 ������ + ������������ ������������
              ������ ������ + ������
                                        みんな大好きPassive-Aggressive
8: ENDIF
9: ENDFOR
10: RETURN ������������                                                              56
RankingSVM
• 先ほどと同様に考えると,SVMも二値分類と
  同様の枠組みで解ける
                     2                           ������
 – minimize ������           + ������   ������   ������,������ ������������,������
                ������         ������               ������        ������               ������
 – s.t. sign ������������ − ������������        ������������ ������������ − ������������           ≥ 1 − ������������,������ ∀������, ������, ������



• 最適化の方法は色々


                                                                                       57
Pairwise手法がやっていること
 • ペア誤りの最小化 = Kendallの順位相関の最適化
   (≠ 検索評価指標の最適化)

 • Kendallの順位相関
      – P: 順序が一致しているペアの数
                                     2������            2������
                  Kendall =           ������   −1=              −1
                                      2
                                               1/2������ ������ − 1


              Pairwise損失は検索評価指標損失の
                       上界になってるで
[Chen+ 09] W. Chen, T.-Y. Liu, Y. Lan, Z. Ma, H. Li. Ranking Measures and Loss Functions in
                                                                                              58
Learning to Rank. NIPS ’09 (2009).
参考: Pair 0-1 lossと他の損失関数
通常の二値分類と同じアナロジー




        f(x)=sign(yA-yB) wT (xA-xB)   59
Pairwise手法そんなに悪くない?
  • RSVM (Pairwise) vs. ListNet, AdaRank (Listwise)
MQ2007                   NDCG@1   NDCG@5   NDCG@10
dataset
          RSVM            .4096    .4143    .4439
          ListNet         .4002    .4170    .4440
          AdaRank-NDCG    .3876    .4102    .4369
          AdaRank-MAP     .3821    .4070    .4335


MQ2008                   NDCG@1   NDCG@5   NDCG@10
dataset
          RSVM            .3627    .4695    .2279
          ListNet         .3754    .4747    .2303
          AdaRank-NDCG    .3826    .4821    .2307
          AdaRank-MAP     .3754    .4794    .2288
                                                      60
Pairwise手法の問題点
• ペアワイズ手法では,順序ペアの誤りのみ考慮



       4       0

           =       ?
       5       1




  評価点数の違いを考慮すべきでは?
                          61
IR-SVM [Cao+ 06]
• (1) ペア毎に異なる損失重みを利用
 – 評価指標に影響を与えるペアの誤りに対して大きな
   損失を与える (ヒンジロスの傾き)
• (2) クエリ毎のペアの偏りを排除
 – 多くのペアを持つクエリに対して損失を小さくする

              loss




                     ������������ ������ ������ ������������
                                       62
PARank (手前味噌) [数原+ 11]
  • 重要度をマージンに反映
  • PAで更新
        ������2 (������, ������)
                                             ○
                       重要度                                      ○   r=4
                                     △
                        小                                       △   r=3
                                                 ○
                                     △       ○                  □   r=2
                             □                     ○            ×   r=1
                                         △
                                             重要度
                             □           △    大
                                 □
                        ×                                       ������������ Φ(q, d)
                         ×
                             ×

                                                 ������1 (������, ������)

                                                                               63
[数原+ 11] 数原, 鈴木, 安田, 小池, 片岡. 評価指標をマージンに反映したオンラインランキング学習. NLP2011.
小休止




ご質問ありますか?   64
Listwiseアプローチ


                65
Listwise手法の概要
• クエリ毎に損失を設定
  – 検索評価指標を直接/間接的に最適化することが
    可能
• 一般的にPairwiseよりも精度が高いとされている

• Listwise手法
  –   ListNet
  –   AdaRank
  –   SVM_MAP
  –   SmoothRank
  –   ...
                             66
ListNet



          67
ListNet [Cao+ 07]
• 今までペアを考慮
 – Kendallの順位相関 ≠ 検索評価指標


• “順列 (リスト)”の観点で最適化をしたい
 – 訓練データとモデルを順列の確率分布で表現し,
   分布間の距離を最小化する
       • 順列の確率分布にPlackett-Luceモデルを利用
       • 分布間の距離はみんな大好きKL-divergenceを利用

[Cao+ 07] Z. Cao, T. Qin, T.-Y. Liu, M.-F. Tsai, H. Li. Learning to rank: from
pairwise approach to listwise approach. ICML ’07, (2007).                        68
Plackett-Luceモデル
                                  ������     exp(������������ ������ )
  • 順列の確率モデル: ������ ������|������ =          ������=1 ������ exp ������
                                        ������=������      ������ ������

               順列1
                     
              doc1                   exp(3)                 exp 2
 評価データ                   =                          ⋅
                             exp 3 + exp(2) + exp(1) exp 2 + exp 1
              doc2
                                              exp 1
doc1   3点                                   ⋅       = ������. ������������������
              doc3                            exp 1
doc2   2点

doc3   1点      順列2   
              doc2                 exp(2)                  exp 1
                         =                        ⋅
                           exp 2 + exp(1) + exp(3) exp 1 + exp 3
              doc3                          exp 3
                                          ⋅       = ������. ������������������
              doc1                          exp 3
                                                              69
ListNetのパラメータ学習
 • 評価データとモデルの出力が近づける
   – Plackett-Luceモデルの分布の観点で (クロスエントロピー)
               −            ������������������ ������ log ������������ (������)
                   ������∈Π������

直感的なイメージ
            評価データ      順列の全候補って?! モデル出力

     doc1
                       n文書に対してO(n!)  ������������ ������1
               3点
     doc2      2点                                     ������������ ������2
                            類似度が最大に
     doc3
               1点           なるように������を調整                ������������ ������3



                                                                 70
計算の効率化
• 上位k件 (k=1) に対するPlackett-Luceモデル
  の分布を計算 [Cao+ 08]
 – k=1の際,クエリiのクロスエントロピーの������に関す
   る微分は以下のように求まる

 ������������ ������������ , ������
      ������������
                  ������������                                                           ������������
                                       ������     ������            1                                        ������        ������
           =−            ������������������ ������������        ������������ +   ������������                   ������
                                                                                        exp(������������ ������������ ) ������������
                  ������=1                               ������=1 exp   ������������ ������������        ������=1




                                                                                                                    71
ListNet
 INPUT:(������ ������ , ������������ , ������������ ) ∈ ������, ������, ������
OUTPUT: ������

1: Initialize ������0 = ������, ������ = 0
2: FOR ������ in 0 to ������
3: FOR i = 1 to m
                     ������������ ������������ ,������
4:      Compute
                         ������������
                                        ������������ ������������ ,������
5:    Update ������ = ������ −               ������
                                            ������������
6: ENDFOR
7: ENDFOR
8: Return ������

                                                        72
ListNet
 INPUT:(������ ������ , ������������ , ������������ ) ∈ ������, ������, ������
OUTPUT: ������

1: Initialize ������0 = ������, ������ = 0                          各クエリ毎に勾配を求めて
2: FOR ������ in 0 to ������                                      最急降下法で更新
3: FOR i = 1 to m
                     ������������ ������������ ,������
4:      Compute
                         ������������
                                        ������������ ������������ ,������
5:    Update ������ = ������ −               ������
                                            ������������
6: ENDFOR
7: ENDFOR
8: Return ������

                                                                       73
ListNet余談
• Pairwise手法であるRankNetでは,多層ニュー
  ラルネットでランキング関数を实現
 – 多層ニューラルネットワークで表現される非線形
   関数は最急降下法で解ける
   • 誤差逆伝播を用いることで勾配を求めることができる
     ため (詳しくはPRMLを!)
• けれど,ListNet論文では線形モデルを利用
 – List “Net” なのに?


                                74
AdaRank



          75
AdaRank
• 検索評価指標を直接最適化するブースティン
  グ手法
 – 線形モデル
  • WeakRanker次第
 – 实装が簡単 
 – 任意の評価指標を最適化することが可能 
 – 性能はそれほどよくない? 



                          76
AdaRankのイメージ
試行回数     訓練データ
                              弱学習器
       クエリ1   ...   クエリn

 1            ×                   g1


       重み付き訓練データ                       g1が苦手とする
                           重み変更
                                        クエリに有効
 2      ×            ×            g2




                                  …
 …




                                        N個の弱学習器を
              …




                                           重み付け和
 …




       重み付き訓練データ
                                  …
 N                                gN
                                        ランキング関数

                                                   77
AdaRank
 INPUT: (������������ , ������������ , ������������ ) ∈ ������, ������, ������
OUTPUT: ������(������)
                            1
1: Initialize ������1 ������ = ������ ������������������ ������������������ℎ ������
2: FOR ������ in 1 to ������
3: Create weak ranker ℎ������ with weighted distribution ������������
4: Calculate
                                    ������
                           1        ������=1 ������������ ������ *1 + ������(������(������������ , ������������ , ℎ������ ), ������������ )
                     ������������ = ln ������
                           2        ������=1 ������������ ������ *1 − ������(������(������������ , ������������ , ℎ������ ), ������������ )
5: Create
                                                      ������

                                        ������������ ������ =          ������������ ℎ������ (������)
                                                    ������=1
6:    Update ������������+1
                                            exp*−������(������ ������������ , ������������ , ������������ , ������������ )+
                         ������������+1 ������ =       ������
                                           ������=1 exp*−������(������       ������������ , ������������ , ������������ , ������������ )+
7: ENDFOR
8: Return ������������ (������)                                                                             78
AdaRank (解説)
       INPUT: (������������ , ������������ , ������������ ) ∈ ������, ������, ������
      OUTPUT: ������(������)                クエリiの重み

                              1
    1: Initialize ������1 ������ = ������ ������������������ ������������������ℎ ������
                                       WeakRankerの生成
    2: FOR ������ in 1 to ������                                                           WeakRankerのクエリi
    3: Create weak ranker ℎ������ with weighted distribution ������������ に対する評価値
WeakRankerの重要度
    4: Calculate
                                        ������
                               1        ������=1 ������������ ������ *1 + ������(������(������������ , ������������ , ℎ������ ), ������������ )
                         ������������ = ln ������
                               2        ������=1 ������������ ������ *1 − ������(������(������������ , ������������ , ℎ������ ), ������������ )
    5: Create
                                                      ������                        これまでのWeakRanker
                                                                                         の重みづけ和
                                        ������������ ������ =        ������������ ℎ������ (������)
                                                   ������=1
      6:   Update ������������+1                                                                       クエリの重みの更新
                                           exp*−������(������ ������������ , ������������ , ������������ , ������������ )+
                            ������������+1 ������ =   ������
                                          ������=1 exp*−������(������       ������������ , ������������ , ������������ , ������������ )+
      7: ENDFOR
      8: Return ������������ (������)                                                                              79
再掲: 検索ランキングの評価方法
• 正解データとランキングを比較

• 検索結果上位を重視する評価指標
   – (1) 順位kに高い点数>順位kに低い点数 分子
   – (2) ランキング上位をより重視 分母

• NDCG (Normalized Discouted Cumulative Gain)
   – 上記の2つを取り入れた多段階評価指標
   – ������������,������ : クエリqにおける順位iの評価点数
                                        ������
                                               2������������,������ − 1
                      ������������������������ @������ ≡
                                              log 1 + ������
                                       ������=1

                                          ������������������������ @������
                     ������������������������������ @������ ≡                         (0,1]に正規化
                                        ������������������������������������������ @������

                                                                          80
AdaRank: WeakRankerの生成方法
• クエリ重み付け評価指標が最大になるようなひとつ
  のランキング素性
 – 例: BM25, PageRank, etc...
                ������

          max          ������������ ������ ������(������ ������������ , ������������ , ������������ , ������������ )
            k
                ������=1


• この場合,最終的なランキング関数������������ (������)も線形関数



                                                                   81
その他のListwise手法


                 82
その他のListwise手法
• 評価指標の近似を用いる手法
 – SoftRank, SmoothRank


• 構造学習を用いる手法
 – SVM_MAP, SVM_NDCG


• 勾配情報を利用しない方法
 – NDCG-Annealing, RankPSO

                             83
3つの手法の違い


           84
再掲: (1) Pointwise手法
  単一のデータに対して損失関数を設定

                ������1                   ������2                 ������������
Training      1        1          2         2            ������       ������
           (������1 , ������1 )       (������1 , ������1 )           (������1 , ������1 )
  data
               1       1          2         2
                                                 …       ������       ������
           (������2    , ������2 )    (������2    , ������2 )        (������2 , ������2 )
                   …




               1       1
                                      …




                                                              …
           (������������1 , ������������1 )
                                                         ������       ������
                                  2         2        (������������������ , ������������������ )
                              (������������2 , ������������2 )


                                                                          85
再掲: (2) Pairwise手法
同一クエリのペアに対して損失関数を設定

                ������1                   ������2                 ������������
Training      1        1          2         2            ������       ������
           (������1 , ������1 )       (������1 , ������1 )           (������1 , ������1 )
  data
               1       1          2         2
                                                 …       ������       ������
           (������2    , ������2 )    (������2    , ������2 )        (������2 , ������2 )
                   …




               1       1
                                      …




                                                              …
           (������������1 , ������������1 )
                                                         ������       ������
                                  2         2        (������������������ , ������������������ )
                              (������������2 , ������������2 )


                                                                          86
再掲: (3) Listwise手法
同一クエリのリストに対して損失関数を設定

                    ������1                   ������2                 ������������
Training          1        1          2         2            ������       ������
              (������1 , ������1 )        (������1 , ������1 )           (������1 , ������1 )
  data
                  1        1          2         2
                                                     …       ������       ������
              (������2     , ������2 )    (������2    , ������2 )        (������2 , ������2 )
                       …




                   1       1
                                          …




                                                                  …
               (������������1 , ������������1 )
                                                             ������       ������
                                      2         2        (������������������ , ������������������ )
                                  (������������2 , ������������2 )


                                                                              87
その他の話題


         88
その他の話題
•   Click-through logs
•   Query-dependent ranking
•   Feature selection
•   Transfer learning/Domain adaptation
•   Diversity/Novelty



           「ことはじめ」なので割愛...
                                          89
公開Dataset
• LETOR3.0/4.0 Dataset
  – http://research.microsoft.com/en-us/um/beijing/projects/letor/default.aspx



• MSLR-WEB Dataset
  – http://research.microsoft.com/en-us/projects/mslr/


• Yahoo! Learning to Rank Challenge
  – http://learningtorankchallenge.yahoo.com/datasets.php
  – 大学のみ? (+学部長のサインが必要?)



                                                                                 90
实装
• RankingSVM
  – svm_rank by T. Joachims
     • http://www.cs.cornell.edu/People/tj/svm_light/svm_rank.html


• Stochastic Pairwise Descent
  – sofia-ml by D. Sculley
     • http://code.google.com/p/sofia-ml/




                                                                     91
Learning to Rank教科書
• Tie-Yan Liu. Learning to Rank for Information Retrieval.
  Springer (2011).
• Tie-Yan Liu. Learning to Rank for Information Retrieval
  (Foundations and Trends(R) in Information Retrieval), Now
  Publishers (2009)
• Hang Li, Learning to Rank for Information Retrieval and
  Natural Language Processing, Morgan & Claypool (2011)




                                                              92
情報検索の教科書
•   Christopher D. Manning, Prabhakar Raghavan, Hinrich Schuetze, “Introduction
    to Information Retrieval”, Cambridge University Press (2008).
     – Webで全ページ公開されている.情報検索全般的にバランスよく書かれている
•   Bruce Croft, Donald Metzler, Trevor Strohman, “Search Engines: Information
    Retrieval in Practice”, Pearson Education (2009).
     – 検索エンジン寄りの話.エンジニア向けに書かれている.一番簡単かも.
•   Stefan Buttcher, Charles L. A. Clarke and Gordon V. Cormack, “Information
    Retrieval”, The MIT Press, 2010.
     – 实装から理論まで王道を押さえてしっかり書かれている印象.特にお薦め.




                                                                                 93
チュートリアル資料
• Tie Yan Liu. Learning to Rank for Information Retrieval. SIGIR ‘08
  Tutorial.
    – http://research.microsoft.com/en-us/people/tyliu/letor-tutorial-
      sigir08.pdf
• Hang Li. Learning to Rank. ACL-IJCNLP ‘09 Tutorial.
    – http://research.microsoft.com/en-us/people/hangli/li-acl-ijcnlp-2009-
      tutorial.pdf
• Shivani Agarwal. Ranking Methods in Machine Learning, SDM ’10
  Tutorial.
    – http://web.mit.edu/shivani/www/Events/SDM-10-Tutorial/sdm10-
      tutorial.pdf

• 徳永拓之. Confidence Weightedでランク学習を实装してみた.
  TokyoNLP#4 (2011).
    – http://www.slideshare.net/tkng/confidence-weighted

                                                                          94
まとめ
• 近代的な検索エンジンは多数のランキング素
  性を利用している

• ランキング学習は,評価データを用いて,ラン
  キング素性の最適な重み付けを求める方法

• 適合度の観点での基本タスクは大体終わっ
  た感じ
                        95
お持ち帰りメッセージ
• Pointwise, Pairwise, Listwiseの違いは,損失
  関数の設定方法にあり
  – どのように最適化するかは規定していない

• Pairwise手法は二値分類アルゴリズムがその
  まま利用可能

• 機械学習手法 (に限らず?) は論文 ≒ 实装
  – ソースコードはノウハウの宝庫
                                         96
おしまい


       97

More Related Content

What's hot

最適化超入門
最適化超入門最適化超入門
最適化超入門Takami Sato
 
構造方程式モデルによる因果推論: 因果構造探索に関する最近の発展
構造方程式モデルによる因果推論: 因果構造探索に関する最近の発展構造方程式モデルによる因果推論: 因果構造探索に関する最近の発展
構造方程式モデルによる因果推論: 因果構造探索に関する最近の発展Shiga University, RIKEN
 
[DL輪読会]Understanding Black-box Predictions via Influence Functions
[DL輪読会]Understanding Black-box Predictions via Influence Functions [DL輪読会]Understanding Black-box Predictions via Influence Functions
[DL輪読会]Understanding Black-box Predictions via Influence Functions Deep Learning JP
 
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法SSII
 
Introduction to A3C model
Introduction to A3C modelIntroduction to A3C model
Introduction to A3C modelWEBFARMER. ltd.
 
GAN(と強化学習との関係)
GAN(と強化学習との関係)GAN(と強化学習との関係)
GAN(と強化学習との関係)Masahiro Suzuki
 
Active Learning 入門
Active Learning 入門Active Learning 入門
Active Learning 入門Shuyo Nakatani
 
トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?hoxo_m
 
全力解説!Transformer
全力解説!Transformer全力解説!Transformer
全力解説!TransformerArithmer Inc.
 
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)Shota Imai
 
Optimizer入門&最新動向
Optimizer入門&最新動向Optimizer入門&最新動向
Optimizer入門&最新動向Motokawa Tetsuya
 
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
深層学習の不確実性 - Uncertainty in Deep Neural Networks -深層学習の不確実性 - Uncertainty in Deep Neural Networks -
深層学習の不確実性 - Uncertainty in Deep Neural Networks -tmtm otm
 
最適輸送入門
最適輸送入門最適輸送入門
最適輸送入門joisino
 
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2Preferred Networks
 
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learningゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement LearningPreferred Networks
 
PRML学習者から入る深層生成モデル入門
PRML学習者から入る深層生成モデル入門PRML学習者から入る深層生成モデル入門
PRML学習者から入る深層生成モデル入門tmtm otm
 
最近のディープラーニングのトレンド紹介_20200925
最近のディープラーニングのトレンド紹介_20200925最近のディープラーニングのトレンド紹介_20200925
最近のディープラーニングのトレンド紹介_20200925小川 雄太郎
 
強化学習アルゴリズムPPOの解説と実験
強化学習アルゴリズムPPOの解説と実験強化学習アルゴリズムPPOの解説と実験
強化学習アルゴリズムPPOの解説と実験克海 納谷
 
Recent Advances on Transfer Learning and Related Topics Ver.2
Recent Advances on Transfer Learning and Related Topics Ver.2Recent Advances on Transfer Learning and Related Topics Ver.2
Recent Advances on Transfer Learning and Related Topics Ver.2Kota Matsui
 

What's hot (20)

最適化超入門
最適化超入門最適化超入門
最適化超入門
 
構造方程式モデルによる因果推論: 因果構造探索に関する最近の発展
構造方程式モデルによる因果推論: 因果構造探索に関する最近の発展構造方程式モデルによる因果推論: 因果構造探索に関する最近の発展
構造方程式モデルによる因果推論: 因果構造探索に関する最近の発展
 
[DL輪読会]Understanding Black-box Predictions via Influence Functions
[DL輪読会]Understanding Black-box Predictions via Influence Functions [DL輪読会]Understanding Black-box Predictions via Influence Functions
[DL輪読会]Understanding Black-box Predictions via Influence Functions
 
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
 
Introduction to A3C model
Introduction to A3C modelIntroduction to A3C model
Introduction to A3C model
 
GAN(と強化学習との関係)
GAN(と強化学習との関係)GAN(と強化学習との関係)
GAN(と強化学習との関係)
 
BlackBox モデルの説明性・解釈性技術の実装
BlackBox モデルの説明性・解釈性技術の実装BlackBox モデルの説明性・解釈性技術の実装
BlackBox モデルの説明性・解釈性技術の実装
 
Active Learning 入門
Active Learning 入門Active Learning 入門
Active Learning 入門
 
トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?
 
全力解説!Transformer
全力解説!Transformer全力解説!Transformer
全力解説!Transformer
 
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
 
Optimizer入門&最新動向
Optimizer入門&最新動向Optimizer入門&最新動向
Optimizer入門&最新動向
 
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
深層学習の不確実性 - Uncertainty in Deep Neural Networks -深層学習の不確実性 - Uncertainty in Deep Neural Networks -
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
 
最適輸送入門
最適輸送入門最適輸送入門
最適輸送入門
 
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
 
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learningゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
 
PRML学習者から入る深層生成モデル入門
PRML学習者から入る深層生成モデル入門PRML学習者から入る深層生成モデル入門
PRML学習者から入る深層生成モデル入門
 
最近のディープラーニングのトレンド紹介_20200925
最近のディープラーニングのトレンド紹介_20200925最近のディープラーニングのトレンド紹介_20200925
最近のディープラーニングのトレンド紹介_20200925
 
強化学習アルゴリズムPPOの解説と実験
強化学習アルゴリズムPPOの解説と実験強化学習アルゴリズムPPOの解説と実験
強化学習アルゴリズムPPOの解説と実験
 
Recent Advances on Transfer Learning and Related Topics Ver.2
Recent Advances on Transfer Learning and Related Topics Ver.2Recent Advances on Transfer Learning and Related Topics Ver.2
Recent Advances on Transfer Learning and Related Topics Ver.2
 

Viewers also liked

Confidence Weightedで ランク学習を実装してみた
Confidence Weightedで ランク学習を実装してみたConfidence Weightedで ランク学習を実装してみた
Confidence Weightedで ランク学習を実装してみたtkng
 
Learning to Rank: An Introduction to LambdaMART
Learning to Rank: An Introduction to LambdaMARTLearning to Rank: An Introduction to LambdaMART
Learning to Rank: An Introduction to LambdaMARTJulian Qian
 
Matrix Factorizationを使った評価予測
Matrix Factorizationを使った評価予測Matrix Factorizationを使った評価予測
Matrix Factorizationを使った評価予測JAVA DM
 
スパース推定
スパース推定スパース推定
スパース推定y-uti
 
ゲームで切り込む暗黙知的なスキルやノウハウ
ゲームで切り込む暗黙知的なスキルやノウハウゲームで切り込む暗黙知的なスキルやノウハウ
ゲームで切り込む暗黙知的なスキルやノウハウhaji mizu
 
Watson API トレーニング 20160716 rev02
Watson API トレーニング 20160716 rev02Watson API トレーニング 20160716 rev02
Watson API トレーニング 20160716 rev02Hiroaki Komine
 
転置インデックスとTop k-query
転置インデックスとTop k-query転置インデックスとTop k-query
転置インデックスとTop k-query正志 坪坂
 
ディープラーニングでおそ松さんの6つ子は見分けられるのか? FIT2016
ディープラーニングでおそ松さんの6つ子は見分けられるのか? FIT2016ディープラーニングでおそ松さんの6つ子は見分けられるのか? FIT2016
ディープラーニングでおそ松さんの6つ子は見分けられるのか? FIT2016Yota Ishida
 
リクルートにおける画像解析事例紹介
リクルートにおける画像解析事例紹介リクルートにおける画像解析事例紹介
リクルートにおける画像解析事例紹介Recruit Technologies
 
CDNのトラフィックエンジニアリング:CDNの現状とSDNの可能性
CDNのトラフィックエンジニアリング:CDNの現状とSDNの可能性CDNのトラフィックエンジニアリング:CDNの現状とSDNの可能性
CDNのトラフィックエンジニアリング:CDNの現状とSDNの可能性J-Stream Inc.
 
Java 9 and Future #jjug
Java 9 and Future #jjugJava 9 and Future #jjug
Java 9 and Future #jjugYuji Kubota
 
Java libraries you can't afford to miss
Java libraries you can't afford to missJava libraries you can't afford to miss
Java libraries you can't afford to missAndres Almiray
 
VMの歩む道。 Dalvik、ART、そしてJava VM
VMの歩む道。 Dalvik、ART、そしてJava VMVMの歩む道。 Dalvik、ART、そしてJava VM
VMの歩む道。 Dalvik、ART、そしてJava VMyy yank
 
U-NEXT学生インターン、過激なJavaの学び方と過激な要求
U-NEXT学生インターン、過激なJavaの学び方と過激な要求U-NEXT学生インターン、過激なJavaの学び方と過激な要求
U-NEXT学生インターン、過激なJavaの学び方と過激な要求hajime funaki
 
Arachne Unweaved (JP)
Arachne Unweaved (JP)Arachne Unweaved (JP)
Arachne Unweaved (JP)Ikuru Kanuma
 
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~Hiroyuki Ohnaka
 
Jjugccc2017spring-postgres-ccc_m1
Jjugccc2017spring-postgres-ccc_m1Jjugccc2017spring-postgres-ccc_m1
Jjugccc2017spring-postgres-ccc_m1Kosuke Kida
 
2017spring jjug ccc_f2
2017spring jjug ccc_f22017spring jjug ccc_f2
2017spring jjug ccc_f2Kazuhiro Wada
 

Viewers also liked (20)

Confidence Weightedで ランク学習を実装してみた
Confidence Weightedで ランク学習を実装してみたConfidence Weightedで ランク学習を実装してみた
Confidence Weightedで ランク学習を実装してみた
 
Learning to Rank: An Introduction to LambdaMART
Learning to Rank: An Introduction to LambdaMARTLearning to Rank: An Introduction to LambdaMART
Learning to Rank: An Introduction to LambdaMART
 
Matrix Factorizationを使った評価予測
Matrix Factorizationを使った評価予測Matrix Factorizationを使った評価予測
Matrix Factorizationを使った評価予測
 
スパース推定
スパース推定スパース推定
スパース推定
 
ゲームで切り込む暗黙知的なスキルやノウハウ
ゲームで切り込む暗黙知的なスキルやノウハウゲームで切り込む暗黙知的なスキルやノウハウ
ゲームで切り込む暗黙知的なスキルやノウハウ
 
Watson API トレーニング 20160716 rev02
Watson API トレーニング 20160716 rev02Watson API トレーニング 20160716 rev02
Watson API トレーニング 20160716 rev02
 
転置インデックスとTop k-query
転置インデックスとTop k-query転置インデックスとTop k-query
転置インデックスとTop k-query
 
How to Run Solr on Docker and Why
How to Run Solr on Docker and WhyHow to Run Solr on Docker and Why
How to Run Solr on Docker and Why
 
ディープラーニングでおそ松さんの6つ子は見分けられるのか? FIT2016
ディープラーニングでおそ松さんの6つ子は見分けられるのか? FIT2016ディープラーニングでおそ松さんの6つ子は見分けられるのか? FIT2016
ディープラーニングでおそ松さんの6つ子は見分けられるのか? FIT2016
 
リクルートにおける画像解析事例紹介
リクルートにおける画像解析事例紹介リクルートにおける画像解析事例紹介
リクルートにおける画像解析事例紹介
 
CDNのトラフィックエンジニアリング:CDNの現状とSDNの可能性
CDNのトラフィックエンジニアリング:CDNの現状とSDNの可能性CDNのトラフィックエンジニアリング:CDNの現状とSDNの可能性
CDNのトラフィックエンジニアリング:CDNの現状とSDNの可能性
 
Java 9 and Future #jjug
Java 9 and Future #jjugJava 9 and Future #jjug
Java 9 and Future #jjug
 
Java libraries you can't afford to miss
Java libraries you can't afford to missJava libraries you can't afford to miss
Java libraries you can't afford to miss
 
Jjug ccc
Jjug cccJjug ccc
Jjug ccc
 
VMの歩む道。 Dalvik、ART、そしてJava VM
VMの歩む道。 Dalvik、ART、そしてJava VMVMの歩む道。 Dalvik、ART、そしてJava VM
VMの歩む道。 Dalvik、ART、そしてJava VM
 
U-NEXT学生インターン、過激なJavaの学び方と過激な要求
U-NEXT学生インターン、過激なJavaの学び方と過激な要求U-NEXT学生インターン、過激なJavaの学び方と過激な要求
U-NEXT学生インターン、過激なJavaの学び方と過激な要求
 
Arachne Unweaved (JP)
Arachne Unweaved (JP)Arachne Unweaved (JP)
Arachne Unweaved (JP)
 
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
 
Jjugccc2017spring-postgres-ccc_m1
Jjugccc2017spring-postgres-ccc_m1Jjugccc2017spring-postgres-ccc_m1
Jjugccc2017spring-postgres-ccc_m1
 
2017spring jjug ccc_f2
2017spring jjug ccc_f22017spring jjug ccc_f2
2017spring jjug ccc_f2
 

Similar to DSIRNLP#1 ランキング学習ことはじめ

ACL2011読み会: Query Weighting for Ranking Model Adaptation
ACL2011読み会: Query Weighting for Ranking Model AdaptationACL2011読み会: Query Weighting for Ranking Model Adaptation
ACL2011読み会: Query Weighting for Ranking Model Adaptationsleepy_yoshi
 
SIGIR2011読み会 3. Learning to Rank
SIGIR2011読み会 3. Learning to RankSIGIR2011読み会 3. Learning to Rank
SIGIR2011読み会 3. Learning to Ranksleepy_yoshi
 
SIGIR2012勉強会 23 Learning to Rank
SIGIR2012勉強会 23 Learning to RankSIGIR2012勉強会 23 Learning to Rank
SIGIR2012勉強会 23 Learning to Ranksleepy_yoshi
 
WSDM2012読み会: Learning to Rank with Multi-Aspect Relevance for Vertical Search
WSDM2012読み会: Learning to Rank with Multi-Aspect Relevance for Vertical SearchWSDM2012読み会: Learning to Rank with Multi-Aspect Relevance for Vertical Search
WSDM2012読み会: Learning to Rank with Multi-Aspect Relevance for Vertical Searchsleepy_yoshi
 
Learning to rank for IR
Learning to rank for IRLearning to rank for IR
Learning to rank for IRtakaya imai
 
コンピューターの整列処理におけるデータ操作の時間的共起分析
コンピューターの整列処理におけるデータ操作の時間的共起分析コンピューターの整列処理におけるデータ操作の時間的共起分析
コンピューターの整列処理におけるデータ操作の時間的共起分析yamahige
 
Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識Ken Morishita
 
20181219_全部見せます、データサイエンティストの仕事
20181219_全部見せます、データサイエンティストの仕事20181219_全部見せます、データサイエンティストの仕事
20181219_全部見せます、データサイエンティストの仕事Shunsuke Nakamura
 
SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​
SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​
SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​SSII
 
ソーシャルデザインパターン -評判と情報収集-
ソーシャルデザインパターン -評判と情報収集-ソーシャルデザインパターン -評判と情報収集-
ソーシャルデザインパターン -評判と情報収集-Koichi Hamada
 
NIPS2010読み会: A New Probabilistic Model for Rank Aggregation
NIPS2010読み会: A New Probabilistic Model for Rank AggregationNIPS2010読み会: A New Probabilistic Model for Rank Aggregation
NIPS2010読み会: A New Probabilistic Model for Rank Aggregationsleepy_yoshi
 
Paper Introduction "RankCompete: Simultaneous ranking and clustering of info...
Paper Introduction "RankCompete:Simultaneous ranking and clustering of info...Paper Introduction "RankCompete:Simultaneous ranking and clustering of info...
Paper Introduction "RankCompete: Simultaneous ranking and clustering of info...Kotaro Yamazaki
 
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築Tatsuya Tojima
 
SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜
SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜
SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜SSII
 
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~Miki Shimogai
 
テストアプローチにデータ分析を使おう
テストアプローチにデータ分析を使おうテストアプローチにデータ分析を使おう
テストアプローチにデータ分析を使おうSayaka Nakano
 
Hive/Pigを使ったKDD'12 track2の広告クリック率予測
Hive/Pigを使ったKDD'12 track2の広告クリック率予測Hive/Pigを使ったKDD'12 track2の広告クリック率予測
Hive/Pigを使ったKDD'12 track2の広告クリック率予測Makoto Yui
 
Information retrieval model
Information retrieval modelInformation retrieval model
Information retrieval modelYuku Takahashi
 

Similar to DSIRNLP#1 ランキング学習ことはじめ (20)

ACL2011読み会: Query Weighting for Ranking Model Adaptation
ACL2011読み会: Query Weighting for Ranking Model AdaptationACL2011読み会: Query Weighting for Ranking Model Adaptation
ACL2011読み会: Query Weighting for Ranking Model Adaptation
 
SIGIR2011読み会 3. Learning to Rank
SIGIR2011読み会 3. Learning to RankSIGIR2011読み会 3. Learning to Rank
SIGIR2011読み会 3. Learning to Rank
 
SIGIR2012勉強会 23 Learning to Rank
SIGIR2012勉強会 23 Learning to RankSIGIR2012勉強会 23 Learning to Rank
SIGIR2012勉強会 23 Learning to Rank
 
WSDM2012読み会: Learning to Rank with Multi-Aspect Relevance for Vertical Search
WSDM2012読み会: Learning to Rank with Multi-Aspect Relevance for Vertical SearchWSDM2012読み会: Learning to Rank with Multi-Aspect Relevance for Vertical Search
WSDM2012読み会: Learning to Rank with Multi-Aspect Relevance for Vertical Search
 
Learning to rank for IR
Learning to rank for IRLearning to rank for IR
Learning to rank for IR
 
コンピューターの整列処理におけるデータ操作の時間的共起分析
コンピューターの整列処理におけるデータ操作の時間的共起分析コンピューターの整列処理におけるデータ操作の時間的共起分析
コンピューターの整列処理におけるデータ操作の時間的共起分析
 
Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識
 
20181219_全部見せます、データサイエンティストの仕事
20181219_全部見せます、データサイエンティストの仕事20181219_全部見せます、データサイエンティストの仕事
20181219_全部見せます、データサイエンティストの仕事
 
SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​
SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​
SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​
 
ソーシャルデザインパターン -評判と情報収集-
ソーシャルデザインパターン -評判と情報収集-ソーシャルデザインパターン -評判と情報収集-
ソーシャルデザインパターン -評判と情報収集-
 
Gorinphp0729
Gorinphp0729Gorinphp0729
Gorinphp0729
 
Gorinphp0729
Gorinphp0729Gorinphp0729
Gorinphp0729
 
NIPS2010読み会: A New Probabilistic Model for Rank Aggregation
NIPS2010読み会: A New Probabilistic Model for Rank AggregationNIPS2010読み会: A New Probabilistic Model for Rank Aggregation
NIPS2010読み会: A New Probabilistic Model for Rank Aggregation
 
Paper Introduction "RankCompete: Simultaneous ranking and clustering of info...
Paper Introduction "RankCompete:Simultaneous ranking and clustering of info...Paper Introduction "RankCompete:Simultaneous ranking and clustering of info...
Paper Introduction "RankCompete: Simultaneous ranking and clustering of info...
 
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
 
SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜
SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜
SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜
 
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
 
テストアプローチにデータ分析を使おう
テストアプローチにデータ分析を使おうテストアプローチにデータ分析を使おう
テストアプローチにデータ分析を使おう
 
Hive/Pigを使ったKDD'12 track2の広告クリック率予測
Hive/Pigを使ったKDD'12 track2の広告クリック率予測Hive/Pigを使ったKDD'12 track2の広告クリック率予測
Hive/Pigを使ったKDD'12 track2の広告クリック率予測
 
Information retrieval model
Information retrieval modelInformation retrieval model
Information retrieval model
 

More from sleepy_yoshi

KDD2014勉強会: Large-Scale High-Precision Topic Modeling on Twitter
KDD2014勉強会: Large-Scale High-Precision Topic Modeling on TwitterKDD2014勉強会: Large-Scale High-Precision Topic Modeling on Twitter
KDD2014勉強会: Large-Scale High-Precision Topic Modeling on Twittersleepy_yoshi
 
KDD2013読み会: Direct Optimization of Ranking Measures
KDD2013読み会: Direct Optimization of Ranking MeasuresKDD2013読み会: Direct Optimization of Ranking Measures
KDD2013読み会: Direct Optimization of Ranking Measuressleepy_yoshi
 
PRML復々習レーン#15 前回までのあらすじ
PRML復々習レーン#15 前回までのあらすじPRML復々習レーン#15 前回までのあらすじ
PRML復々習レーン#15 前回までのあらすじsleepy_yoshi
 
PRML復々習レーン#14 前回までのあらすじ
PRML復々習レーン#14 前回までのあらすじPRML復々習レーン#14 前回までのあらすじ
PRML復々習レーン#14 前回までのあらすじsleepy_yoshi
 
PRML復々習レーン#13 前回までのあらすじ
PRML復々習レーン#13 前回までのあらすじPRML復々習レーン#13 前回までのあらすじ
PRML復々習レーン#13 前回までのあらすじsleepy_yoshi
 
PRML復々習レーン#12 前回までのあらすじ
PRML復々習レーン#12 前回までのあらすじPRML復々習レーン#12 前回までのあらすじ
PRML復々習レーン#12 前回までのあらすじsleepy_yoshi
 
ICML2013読み会: Distributed training of Large-scale Logistic models
ICML2013読み会: Distributed training of Large-scale Logistic modelsICML2013読み会: Distributed training of Large-scale Logistic models
ICML2013読み会: Distributed training of Large-scale Logistic modelssleepy_yoshi
 
SEXI2013読み会: Adult Query Classification for Web Search and Recommendation
SEXI2013読み会: Adult Query Classification for Web Search and RecommendationSEXI2013読み会: Adult Query Classification for Web Search and Recommendation
SEXI2013読み会: Adult Query Classification for Web Search and Recommendationsleepy_yoshi
 
計算論的学習理論入門 -PAC学習とかVC次元とか-
計算論的学習理論入門 -PAC学習とかVC次元とか-計算論的学習理論入門 -PAC学習とかVC次元とか-
計算論的学習理論入門 -PAC学習とかVC次元とか-sleepy_yoshi
 
PRML復々習レーン#11 前回までのあらすじ
PRML復々習レーン#11 前回までのあらすじPRML復々習レーン#11 前回までのあらすじ
PRML復々習レーン#11 前回までのあらすじsleepy_yoshi
 
SMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装するSMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装するsleepy_yoshi
 
PRML復々習レーン#10 前回までのあらすじ
PRML復々習レーン#10 前回までのあらすじPRML復々習レーン#10 前回までのあらすじ
PRML復々習レーン#10 前回までのあらすじsleepy_yoshi
 
PRML復々習レーン#10 7.1.3-7.1.5
PRML復々習レーン#10 7.1.3-7.1.5PRML復々習レーン#10 7.1.3-7.1.5
PRML復々習レーン#10 7.1.3-7.1.5sleepy_yoshi
 
PRML復々習レーン#9 6.3-6.3.1
PRML復々習レーン#9 6.3-6.3.1PRML復々習レーン#9 6.3-6.3.1
PRML復々習レーン#9 6.3-6.3.1sleepy_yoshi
 
PRML復々習レーン#9 前回までのあらすじ
PRML復々習レーン#9 前回までのあらすじPRML復々習レーン#9 前回までのあらすじ
PRML復々習レーン#9 前回までのあらすじsleepy_yoshi
 
PRML復々習レーン#7 前回までのあらすじ
PRML復々習レーン#7 前回までのあらすじPRML復々習レーン#7 前回までのあらすじ
PRML復々習レーン#7 前回までのあらすじsleepy_yoshi
 
DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5
DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5
DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5sleepy_yoshi
 
ICML2012読み会 Scaling Up Coordinate Descent Algorithms for Large L1 regularizat...
ICML2012読み会 Scaling Up Coordinate Descent Algorithms for Large L1 regularizat...ICML2012読み会 Scaling Up Coordinate Descent Algorithms for Large L1 regularizat...
ICML2012読み会 Scaling Up Coordinate Descent Algorithms for Large L1 regularizat...sleepy_yoshi
 
PRML復々習レーン#3 3.1.3-3.1.5
PRML復々習レーン#3 3.1.3-3.1.5PRML復々習レーン#3 3.1.3-3.1.5
PRML復々習レーン#3 3.1.3-3.1.5sleepy_yoshi
 
PRML復々習レーン#3 前回までのあらすじ
PRML復々習レーン#3 前回までのあらすじPRML復々習レーン#3 前回までのあらすじ
PRML復々習レーン#3 前回までのあらすじsleepy_yoshi
 

More from sleepy_yoshi (20)

KDD2014勉強会: Large-Scale High-Precision Topic Modeling on Twitter
KDD2014勉強会: Large-Scale High-Precision Topic Modeling on TwitterKDD2014勉強会: Large-Scale High-Precision Topic Modeling on Twitter
KDD2014勉強会: Large-Scale High-Precision Topic Modeling on Twitter
 
KDD2013読み会: Direct Optimization of Ranking Measures
KDD2013読み会: Direct Optimization of Ranking MeasuresKDD2013読み会: Direct Optimization of Ranking Measures
KDD2013読み会: Direct Optimization of Ranking Measures
 
PRML復々習レーン#15 前回までのあらすじ
PRML復々習レーン#15 前回までのあらすじPRML復々習レーン#15 前回までのあらすじ
PRML復々習レーン#15 前回までのあらすじ
 
PRML復々習レーン#14 前回までのあらすじ
PRML復々習レーン#14 前回までのあらすじPRML復々習レーン#14 前回までのあらすじ
PRML復々習レーン#14 前回までのあらすじ
 
PRML復々習レーン#13 前回までのあらすじ
PRML復々習レーン#13 前回までのあらすじPRML復々習レーン#13 前回までのあらすじ
PRML復々習レーン#13 前回までのあらすじ
 
PRML復々習レーン#12 前回までのあらすじ
PRML復々習レーン#12 前回までのあらすじPRML復々習レーン#12 前回までのあらすじ
PRML復々習レーン#12 前回までのあらすじ
 
ICML2013読み会: Distributed training of Large-scale Logistic models
ICML2013読み会: Distributed training of Large-scale Logistic modelsICML2013読み会: Distributed training of Large-scale Logistic models
ICML2013読み会: Distributed training of Large-scale Logistic models
 
SEXI2013読み会: Adult Query Classification for Web Search and Recommendation
SEXI2013読み会: Adult Query Classification for Web Search and RecommendationSEXI2013読み会: Adult Query Classification for Web Search and Recommendation
SEXI2013読み会: Adult Query Classification for Web Search and Recommendation
 
計算論的学習理論入門 -PAC学習とかVC次元とか-
計算論的学習理論入門 -PAC学習とかVC次元とか-計算論的学習理論入門 -PAC学習とかVC次元とか-
計算論的学習理論入門 -PAC学習とかVC次元とか-
 
PRML復々習レーン#11 前回までのあらすじ
PRML復々習レーン#11 前回までのあらすじPRML復々習レーン#11 前回までのあらすじ
PRML復々習レーン#11 前回までのあらすじ
 
SMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装するSMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装する
 
PRML復々習レーン#10 前回までのあらすじ
PRML復々習レーン#10 前回までのあらすじPRML復々習レーン#10 前回までのあらすじ
PRML復々習レーン#10 前回までのあらすじ
 
PRML復々習レーン#10 7.1.3-7.1.5
PRML復々習レーン#10 7.1.3-7.1.5PRML復々習レーン#10 7.1.3-7.1.5
PRML復々習レーン#10 7.1.3-7.1.5
 
PRML復々習レーン#9 6.3-6.3.1
PRML復々習レーン#9 6.3-6.3.1PRML復々習レーン#9 6.3-6.3.1
PRML復々習レーン#9 6.3-6.3.1
 
PRML復々習レーン#9 前回までのあらすじ
PRML復々習レーン#9 前回までのあらすじPRML復々習レーン#9 前回までのあらすじ
PRML復々習レーン#9 前回までのあらすじ
 
PRML復々習レーン#7 前回までのあらすじ
PRML復々習レーン#7 前回までのあらすじPRML復々習レーン#7 前回までのあらすじ
PRML復々習レーン#7 前回までのあらすじ
 
DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5
DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5
DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5
 
ICML2012読み会 Scaling Up Coordinate Descent Algorithms for Large L1 regularizat...
ICML2012読み会 Scaling Up Coordinate Descent Algorithms for Large L1 regularizat...ICML2012読み会 Scaling Up Coordinate Descent Algorithms for Large L1 regularizat...
ICML2012読み会 Scaling Up Coordinate Descent Algorithms for Large L1 regularizat...
 
PRML復々習レーン#3 3.1.3-3.1.5
PRML復々習レーン#3 3.1.3-3.1.5PRML復々習レーン#3 3.1.3-3.1.5
PRML復々習レーン#3 3.1.3-3.1.5
 
PRML復々習レーン#3 前回までのあらすじ
PRML復々習レーン#3 前回までのあらすじPRML復々習レーン#3 前回までのあらすじ
PRML復々習レーン#3 前回までのあらすじ
 

Recently uploaded

PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 

Recently uploaded (7)

PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 

DSIRNLP#1 ランキング学習ことはじめ

  • 1. DSIRNLP #1 ランキング学習ことはじめ 2011-07-23 Yoshihiko Suhara @sleepy_yoshi
  • 2. 自己紹介 • 数原 良彦 (すはら よしひこ) – @sleepy_yoshi – http://d.hatena.ne.jp/sleepy_yoshi/ • 情報検索の研究開発ぽい仕事など – 情報検索とか機械学習とか • 特にランキング学習 • 三浦半島在住 – マグロを食べる頻度が減った  – 三浦半島で地震に怯える日々  2
  • 4. 本発表のねらい • ねらい – ランキング学習の認知度を高める – ランキング学習をざっくり伝える – なにか实装できるようになっていただく • 理論的妥当性の説明はほとんど無し • アルゴリズムを可能な限り紹介 • おねがい? – 質問は適宜お気軽にどうぞ – 手法をたくさん紹介するのはイメージづけのため • 完全に理解する必要ありません • イメージがつけば後で詳細を追える(ハズ) 4
  • 7. 目次 • ランキング学習とは? (15min.) – 検索ランキングの歴史 – 検索ランキングの評価方法 – ランキング学習の概要 • ランキング学習手法の紹介 (35min.) – Pointwise手法 – Pairwise手法 – Listwise手法 • その他の話題とまとめ (10min.) 7
  • 8. ランキング学習とは? • Learning to rank – 決まった訳語がない • 例) ランキング学習,ランク学習とか – 順序学習 (preference learning) とは微妙に違う • ランキング学習 ⊂ 順序学習 • 教師あり機械学習の枠組みで,検索ランキン グを最適化する技術 – 最適化ってなによ? 8
  • 11. 検索ランキングの歴史 • 従来は単一のランキング手法を利用 – (1) クエリ・文書関連度に基づく手法 • TF-IDF, BM25, 言語モデルなど – (2) 文書重要度に基づく手法 • PageRank, HITS, SALSAなど • 最近では,上記ランキング手法(+α)を統合 的に扱ってランキングを实現 11
  • 12. 近代的なランキングの实現方法 • 多数のランキング素性を用いてランキングを实現 クエリ・文書関連度 (クエリ依存) ������1 (������, ������) e.g., BM25 クエリq ・ ・ ・ ������������ (������, ������) ランキング関数 ������ T Φ(������, ������) ������������+1 (������) e.g., PageRank ・ ・ 検索スコア ・ クエリqを含む ������������ (������) 文書d 文書の重要度 (クエリ非依存) = Φ(������, ������) 12
  • 13. ランキング素性の例 クエリq = “hoge” のときの文書1の例 • TF-TITLE □: 1 <TITLE> hoge </TITLE> <BODY> ... hoge .... • TF-BODY □: 3 ............................... ..... hoge ................ • IN-LINK: 5 ............................... hoge ...................... • URL length: 12 </BODY> http://www.hoge.com/ ⇒ Φ "hoge", ������1 = 1, 3, 5, 12 ������ 13
  • 14. G社の場合 (2009年版?) などなど... • Let’s Try to Find All 200 Parameters in Google Algorithm – http://www.searchenginejournal.com/200-parameters-in-google- algorithm/15457/#ixzz1Io4iBrJI • Googleアルゴリズム200項目全てを特別公開 – http://swat9.com/seo/google%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3% 83%A0200%E5%80%8B%E3%82%92%E5%85%AC%E9%96%8B/ 14
  • 15. ランキング関数 • (今日は) ランキング関数はランキング素性の線 形結合とする – モデルパラメータ: ������ – 文書のランキング素性ベクトル: ������ ������ ������; ������ = ������������ ������ • 非線形モデルもあるが,非線形モデルであるか どうかは,ランキング学習を理解する上ではあま り重要ではない 15
  • 16. ポイント • 現代の検索エンジンは多様な要因を用いてラ ンキングを实現 • 要因が多くなると,組み合わせの調整が困難 ⇒教師あり機械学習の枠組みで最適化 16
  • 18. 正解データ (適合性評価) の作成方法 • クエリに対する検索結果集合の一部に対して,「クエリが 表す意図」に適合しているかという観点で点数を付与 – 評価点数は多段階 – 複数の被験者の適合度を平均 クエリgooに対する適合度評価 クエリ:goo 適合度 gooトップ 5 1 被験者の事前知識 に依存するため, ブレなく評価するのは 2 スパムブログ 0 難しい... 3 IT記事 評価点数はクエリ・文書ペアに対して付与 4 18
  • 19. 検索ランキングの評価方法 • 正解データとランキングを比較 • 検索結果上位を重視する評価指標 – (1) 順位kに高い点数>順位kに低い点数 分子 – (2) ランキング上位をより重視 分母 • NDCG (Normalized Discouted Cumulative Gain) – 上記の2つを取り入れた多段階評価指標 – ������������,������ : クエリqにおける順位iの評価点数 ������ 2������������,������ − 1 ������������������������ @������ ≡ log 1 + ������ ������=1 ������������������������ @������ ������������������������������ @������ ≡ (0,1]に正規化 ������������������������������������������ @������ 19
  • 21. 分類問題におけるモデルの生成 (������1 , ������1 ) Training (������2 , ������2 ) data 未知のデータ … (������������ , ������������ ) ������������������������������ 入力 学習 アルゴリズム モデル 学習/生成 出力 予測値 ������ 21
  • 22. ランキング学習の訓練データ 素性や評価はクエリ毎に与えられる ������1 ������2 ������������ Training 1 1 2 2 ������ ������ (������1 , ������1 ) (������1 , ������1 ) (������1 , ������1 ) data 1 1 2 2 … ������ ������ (������2 , ������2 ) (������2 , ������2 ) (������2 , ������2 ) … 1 1 … … (������������1 , ������������1 ) ������ ������ 2 2 (������������������ , ������������������ ) (������������2 , ������������2 ) 22
  • 23. ランキング学習におけるモデルの生成 未知のクエリ ������������������������������ ������ (������1 , ? ) Training ������ (������2 , ? ) data … ������ (������������������ , ? ) 入力 学習 アルゴリズム モデル 学習/生成 出力 直接順列を出力 する手法もある 予測値 ������ = (������1 , ������1 , ..., ������������������ ) 23
  • 24. ここまでのまとめ • ランキング素性とランキング関数 • 正解データのつくり方と評価方法 – 「適合度」至上主義 • ランキング学習におけるモデルと予測 24
  • 26. 实装について . .: : : : : : : : :: :::: :: :: : ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: . . : : : :: : : :: : ::: :: : :::: :: ::: ::: :::::::::::::::::::::::::::::::::::::: . . .... ..: : :: :: ::: :::::: :::::::::::: : ::::::::::::::::::::::::::::::::::::::::::::: Λ_Λ . . . .: : : ::: : :: ::::::::: ::::::::::::::::::::::::::::: /:彡ミ゛ヽ;)ー、 . . .: : : :::::: ::::::::::::::::::::::::::::::::: / :::/:: ヽ、ヽ、 ::i . .:: :.: ::: . ::::::::::::::::::::::::::::::::::::::: / :::/;;: ヽ ヽ ::l . :. :. .:: : :: :: :::::::: : ::::::::::::::::::  ̄ ̄ ̄(_,ノ  ̄ ̄ ̄ヽ、_ノ ̄ ̄ ̄ ̄ 完全に忘れてた... 26
  • 27. 实装のヒント? データ構造 アルゴリズム typedef std::pair<int, float> fpair_t; class Ranker { int wvec_size; 各手法について class Document { float *wvec; 解説 int rel_level; std::vector<fpair_t> fvec; void train (Data *data); }; float predict (Document *doc); }; class Query { 線形モデルの場合,重みベクトルだけでよい std::vector<Document> docs; }; class Data { std::vector<Query> queries; }; 27
  • 30. ランキング学習3つのアプローチ • 教師あり機械学習 (識別学習) ≒ – どのような目的関数/損失関数を – どのように最適化するのか • ランキング学習3つのアプローチ – (1) Pointwise手法 – (2) Pairwise手法 – (3) Listwise手法 30
  • 32. (1) Pointwise手法 単一のデータに対して損失関数を設定 ������1 ������2 ������������ Training 1 1 2 2 ������ ������ (������1 , ������1 ) (������1 , ������1 ) (������1 , ������1 ) data 1 1 2 2 … ������ ������ (������2 , ������2 ) (������2 , ������2 ) (������2 , ������2 ) … 1 1 … … (������������1 , ������������1 ) ������ ������ 2 2 (������������������ , ������������������ ) (������������2 , ������������2 ) 32
  • 33. (2) Pairwise手法 同一クエリのペアに対して損失関数を設定 ������1 ������2 ������������ Training 1 1 2 2 ������ ������ (������1 , ������1 ) (������1 , ������1 ) (������1 , ������1 ) data 1 1 2 2 … ������ ������ (������2 , ������2 ) (������2 , ������2 ) (������2 , ������2 ) … 1 1 … … (������������1 , ������������1 ) ������ ������ 2 2 (������������������ , ������������������ ) (������������2 , ������������2 ) 33
  • 34. (3) Listwise手法 同一クエリのリストに対して損失関数を設定 ������1 ������2 ������������ Training 1 1 2 2 ������ ������ (������1 , ������1 ) (������1 , ������1 ) (������1 , ������1 ) data 1 1 2 2 … ������ ������ (������2 , ������2 ) (������2 , ������2 ) (������2 , ������2 ) … 1 1 … … (������������1 , ������������1 ) ������ ������ 2 2 (������������������ , ������������������ ) (������������2 , ������������2 ) 34
  • 37. Pointwise手法の説明 • 二値分類,多値分類や回帰によって定式化 • 文書毎に損失が与えられる • Pointwise手法 – Discriminative Model for IR – PRank – Regression – ... 37
  • 39. Discriminative Model for IR [Nallapati 04] • 適合 (+1) / 非適合 (-1) の二値分類問題とし て解く – 通常の二値分類アルゴリズムが利用可能 ������1 ������2 ������������ Training data (������11 , ������1 1 ) (������12 , ������1 2 ) (������1������ , ������1 ������ ) 適合 … 1 (������2 , ������2 ) 1 2 (������2 , ������2 ) 2 ������ (������2 , ������2 ) ������ 非適合 … (������������1 , ������������1 ) … 1 1 … (������������������ , ������������������ ) (������������2 , ������������2 ������ ������ 2 2 ) 39 [Nallapati 04] R. Nallapati. Discriminative Models for Information Retrieval. SIGIR ‘04, (2004).
  • 40. 補足: Perceptron • オンライン学習手法 – 線形識別モデル ������������ ������ – 間違ったパターンに対して適切に識別できるよう に重みを修正 • 細かい話にご興味がある方はTokyoNLP#5の「パーセプトロン で楽しい仲間がぽぽぽぽ~ん」をご覧ください – http://d.hatena.ne.jp/sleepy_yoshi/20110423/p1 40
  • 41. Perceptron (二値分類) INPUT: (������������ , ������������ ) ∈ ������, ������, ������ OUTPUT: ������ 1: Initialize ������0 = ������, ������ = 0 2: FOR ������ in 0 to ������ 3: Obtain sample (������������ , ������������ ) from ������ 4: IF ������������ ������������ ������������ ≤ 0 THEN ������ 5: ������������+1 ← ������������ + ������ ������������ ������������ 6: ������ ← ������ + 1 7: ENDIF 8: ENDFOR 9: RETURN ������������ 41
  • 42. Perceptron (二値分類) INPUT: (������������ , ������������ ) ∈ ������, ������, ������ OUTPUT: ������ 1: Initialize ������0 = ������, ������ = 0 2: FOR ������ in 0 to ������ 間違ったら重みを修正 3: Obtain sample (������������ , ������������ ) from ������ 4: IF ������������ ������������ ������������ ≤ 0 THEN ������ 5: ������������+1 ← ������������ + ������ ������������ ������������ 6: ������ ← ������ + 1 7: ENDIF 8: ENDFOR 9: RETURN ������������ 42
  • 43. PRank 43
  • 44. PRank [Crammer+ 02] • 順序を考慮した多値分類アルゴリズム – 閾値を用いて離散値を出力 • モデル – 線形モデル: ������������ ������ – 適合度レベルk個の閾値を用意 ������1 ≤ ⋯ ≤ ������������−1 ≤ ������������ = ∞ – ������������−1 < ������������ ������ < ������������ のとき,������と予測 ������ = min *������: ������������ ������ − ������������ < 0+ ������∈*1,…������+ • 学習方法 – Perceptronと同様に1サンプルずつ学習 – 誤った予測をした場合,重み������と閾値������の両方を修正 *Crammer+ 02+ K. Crammer and Y. Singer. Pranking with Ranking. NIPS ‘01, (2002) 44
  • 45. PRankの学習 訓練データ (������, ������) ������1 ������2 ������3 ������4 ������1 ������2 ������3 ������4 ������ ������ ������ +1x 1 2 3 4 5 ������������ : 自分より -1 -1 +1 +1 左側 -1 右側 +1 +1 -1 -1 ������������ : -1 0 +1 +1 自分がいる エリアを0とする 重みと閾値を修正 修正幅 ������������������������ = ������������������������ + ������������ ������ ������ ������������������ ������������������ ������������ = ������������ − ������������ 45
  • 46. PRank 46
  • 47. PRank ラベルの予測 ������������ の計算 ������������ の計算 重みと閾値の 更新 47
  • 49. Pairwise手法の説明 • 文書ペアで損失を設定し,二値分類問題として解く • 一般的にPointwise手法より高精度な学習が可能とさ れている • Pairwise手法 – Stochastic Pairwise Descent – RankingSVM – IR-SVM – RankBoost – RankNet – ... 49
  • 50. Pairwise → 二値分類 • 同一クエリ内の文書Aと文書Bに着目 ������������ ������������ > ������������ ������������ ⇒ ������������ ������������ − ������������ > 0 ������������ ������������ < ������������ ������������ ⇒ ������������ ������������ − ������������ < 0 • 以下のようにすると,二値分類問題として解ける ������������������ = ������������ − ������������ ������������������ = sign(������������ − ������������ ) 50
  • 51. 再掲: Perceptron (二値分類) INPUT: (������������ , ������������ ) ∈ ������, ������, ������ OUTPUT: ������ 1: Initialize ������0 = ������, ������ = 0 2: FOR ������ in 0 to ������ 3: Obtain sample (������������ , ������������ ) from ������ 4: IF ������������ ������������ ������������ ≤ 0 THEN ������ 5: ������������+1 ← ������������ + ������ ������������ ������������ 6: ������ ← ������ + 1 7: ENDIF 8: ENDFOR 9: RETURN ������������ 51
  • 52. Perceptron (ペアワイズ) INPUT: (������������ , ������������ , ������������ ) ∈ ������, ������, ������ OUTPUT: ������ 1: Initialize ������0 = ������, ������ = 0 2: FOR ������ in 0 to ������ 3: Obtain two samples (������������ , ������������ , ������������ ), (������������ , ������������ , ������������ ) from ������ , where ������������ = ������������ AND ������������ ≠ ������������ 4: Let ������������ = sign(������������ − ������������ ), ������������ = ������������ − ������������ 5: IF ������������ ������������ ������������ ≤ 0 THEN ������ 6: ������������+1 ← ������������ + ������ ������������ ������������ 7: ������ ← ������ + 1 8: ENDIF 9: ENDFOR 10: RETURN ������������ 52
  • 53. Perceptron (ペアワイズ) INPUT: (������������ , ������������ , ������������ ) ∈ ������, ������, ������ OUTPUT: ������ 1: Initialize ������0 = ������, ������ = 0 2: FOR ������ in 0 to ������ 3: Obtain two samples (������������ , ������������ , ������������ ), (������������ , ������������ , ������������ ) from ������ , where ������������ = ������������ AND ������������ ≠ ������������ 4: Let ������������ = sign(������������ − ������������ ), ������������ = ������������ − ������������ 5: IF ������������ ������������ ������������ ≤ 0 THEN ������ 6: ������������+1 ← ������������ + ������ ������������ ������������ 7: ������ ← ������ + 1 8: ENDIF 9: ENDFOR 10: RETURN ������������ 53
  • 54. Stochastic Pairwise Descent [Sculley 09] • ランダムランプリングした文書ペアに対して重み 更新を行う – 更新手法はいろいろ • SVM • Passive-Aggressive • Margin-Perceptron • など • 实装: sofia-ml – http://code.google.com/p/sofia-ml/ 54
  • 55. Stochastic Pairwise Descent INPUT: (������������ , ������������ , ������������ ) ∈ ������, ������, ������ OUTPUT: ������ 1: Initialize ������0 = ������, ������ = 0 2: FOR ������ in 0 to ������ 3: Obtain two samples (������������ , ������������ , ������������ ), (������������ , ������������ , ������������ ) from ������ , where ������������ = ������������ AND ������������ ≠ ������������ 4: Let ������������ = sign(������������ − ������������ ), ������������ = ������������ − ������������ 5: IF ������������ ������������ ������������ ≤ 0 THEN ������ 6: ������������+1 ← ������������ + ������ ������������ ������������ 7: ������ ← ������ + 1 この部分を変更 8: ENDIF 9: ENDFOR 10: RETURN ������������ 55
  • 56. Stochastic Pairwise Descent (PA-I) INPUT: (������������ , ������������ , ������������ ) ∈ ������, ������, ������ OUTPUT: ������ 1: Initialize ������0 = ������, ������ = 0 2: FOR ������ in 0 to ������ 3: Obtain two samples (������������ , ������������ , ������������ ), (������������ , ������������ , ������������ ) from ������ , where ������������ = ������������ AND ������������ ≠ ������������ 4: Let ������������ = sign(������������ − ������������ ), ������������ = ������������ − ������������ 5: IF ������������ ������������ ������������ ≤ 0THEN ������ ℓ������ ������������ = min ������, 6: ������������+1 ← ������������ + ������������2������������ ������������ ������ 7: ������ ← ������+1 =1 ������ + ������������ ������������ ������ ������ + ������ みんな大好きPassive-Aggressive 8: ENDIF 9: ENDFOR 10: RETURN ������������ 56
  • 57. RankingSVM • 先ほどと同様に考えると,SVMも二値分類と 同様の枠組みで解ける 2 ������ – minimize ������ + ������ ������ ������,������ ������������,������ ������ ������ ������ ������ ������ – s.t. sign ������������ − ������������ ������������ ������������ − ������������ ≥ 1 − ������������,������ ∀������, ������, ������ • 最適化の方法は色々 57
  • 58. Pairwise手法がやっていること • ペア誤りの最小化 = Kendallの順位相関の最適化 (≠ 検索評価指標の最適化) • Kendallの順位相関 – P: 順序が一致しているペアの数 2������ 2������ Kendall = ������ −1= −1 2 1/2������ ������ − 1 Pairwise損失は検索評価指標損失の 上界になってるで [Chen+ 09] W. Chen, T.-Y. Liu, Y. Lan, Z. Ma, H. Li. Ranking Measures and Loss Functions in 58 Learning to Rank. NIPS ’09 (2009).
  • 59. 参考: Pair 0-1 lossと他の損失関数 通常の二値分類と同じアナロジー f(x)=sign(yA-yB) wT (xA-xB) 59
  • 60. Pairwise手法そんなに悪くない? • RSVM (Pairwise) vs. ListNet, AdaRank (Listwise) MQ2007 NDCG@1 NDCG@5 NDCG@10 dataset RSVM .4096 .4143 .4439 ListNet .4002 .4170 .4440 AdaRank-NDCG .3876 .4102 .4369 AdaRank-MAP .3821 .4070 .4335 MQ2008 NDCG@1 NDCG@5 NDCG@10 dataset RSVM .3627 .4695 .2279 ListNet .3754 .4747 .2303 AdaRank-NDCG .3826 .4821 .2307 AdaRank-MAP .3754 .4794 .2288 60
  • 61. Pairwise手法の問題点 • ペアワイズ手法では,順序ペアの誤りのみ考慮 4 0 = ? 5 1 評価点数の違いを考慮すべきでは? 61
  • 62. IR-SVM [Cao+ 06] • (1) ペア毎に異なる損失重みを利用 – 評価指標に影響を与えるペアの誤りに対して大きな 損失を与える (ヒンジロスの傾き) • (2) クエリ毎のペアの偏りを排除 – 多くのペアを持つクエリに対して損失を小さくする loss ������������ ������ ������ ������������ 62
  • 63. PARank (手前味噌) [数原+ 11] • 重要度をマージンに反映 • PAで更新 ������2 (������, ������) ○ 重要度 ○ r=4 △ 小 △ r=3 ○ △ ○ □ r=2 □ ○ × r=1 △ 重要度 □ △ 大 □ × ������������ Φ(q, d) × × ������1 (������, ������) 63 [数原+ 11] 数原, 鈴木, 安田, 小池, 片岡. 評価指標をマージンに反映したオンラインランキング学習. NLP2011.
  • 66. Listwise手法の概要 • クエリ毎に損失を設定 – 検索評価指標を直接/間接的に最適化することが 可能 • 一般的にPairwiseよりも精度が高いとされている • Listwise手法 – ListNet – AdaRank – SVM_MAP – SmoothRank – ... 66
  • 67. ListNet 67
  • 68. ListNet [Cao+ 07] • 今までペアを考慮 – Kendallの順位相関 ≠ 検索評価指標 • “順列 (リスト)”の観点で最適化をしたい – 訓練データとモデルを順列の確率分布で表現し, 分布間の距離を最小化する • 順列の確率分布にPlackett-Luceモデルを利用 • 分布間の距離はみんな大好きKL-divergenceを利用 [Cao+ 07] Z. Cao, T. Qin, T.-Y. Liu, M.-F. Tsai, H. Li. Learning to rank: from pairwise approach to listwise approach. ICML ’07, (2007). 68
  • 69. Plackett-Luceモデル ������ exp(������������ ������ ) • 順列の確率モデル: ������ ������|������ = ������=1 ������ exp ������ ������=������ ������ ������ 順列1  doc1 exp(3) exp 2 評価データ = ⋅ exp 3 + exp(2) + exp(1) exp 2 + exp 1 doc2 exp 1 doc1 3点 ⋅ = ������. ������������������ doc3 exp 1 doc2 2点 doc3 1点 順列2  doc2 exp(2) exp 1 = ⋅ exp 2 + exp(1) + exp(3) exp 1 + exp 3 doc3 exp 3 ⋅ = ������. ������������������ doc1 exp 3 69
  • 70. ListNetのパラメータ学習 • 評価データとモデルの出力が近づける – Plackett-Luceモデルの分布の観点で (クロスエントロピー) − ������������������ ������ log ������������ (������) ������∈Π������ 直感的なイメージ 評価データ 順列の全候補って?! モデル出力 doc1 n文書に対してO(n!) ������������ ������1 3点 doc2 2点 ������������ ������2 類似度が最大に doc3 1点 なるように������を調整 ������������ ������3 70
  • 71. 計算の効率化 • 上位k件 (k=1) に対するPlackett-Luceモデル の分布を計算 [Cao+ 08] – k=1の際,クエリiのクロスエントロピーの������に関す る微分は以下のように求まる ������������ ������������ , ������ ������������ ������������ ������������ ������ ������ 1 ������ ������ =− ������������������ ������������ ������������ + ������������ ������ exp(������������ ������������ ) ������������ ������=1 ������=1 exp ������������ ������������ ������=1 71
  • 72. ListNet INPUT:(������ ������ , ������������ , ������������ ) ∈ ������, ������, ������ OUTPUT: ������ 1: Initialize ������0 = ������, ������ = 0 2: FOR ������ in 0 to ������ 3: FOR i = 1 to m ������������ ������������ ,������ 4: Compute ������������ ������������ ������������ ,������ 5: Update ������ = ������ − ������ ������������ 6: ENDFOR 7: ENDFOR 8: Return ������ 72
  • 73. ListNet INPUT:(������ ������ , ������������ , ������������ ) ∈ ������, ������, ������ OUTPUT: ������ 1: Initialize ������0 = ������, ������ = 0 各クエリ毎に勾配を求めて 2: FOR ������ in 0 to ������ 最急降下法で更新 3: FOR i = 1 to m ������������ ������������ ,������ 4: Compute ������������ ������������ ������������ ,������ 5: Update ������ = ������ − ������ ������������ 6: ENDFOR 7: ENDFOR 8: Return ������ 73
  • 74. ListNet余談 • Pairwise手法であるRankNetでは,多層ニュー ラルネットでランキング関数を实現 – 多層ニューラルネットワークで表現される非線形 関数は最急降下法で解ける • 誤差逆伝播を用いることで勾配を求めることができる ため (詳しくはPRMLを!) • けれど,ListNet論文では線形モデルを利用 – List “Net” なのに? 74
  • 75. AdaRank 75
  • 76. AdaRank • 検索評価指標を直接最適化するブースティン グ手法 – 線形モデル • WeakRanker次第 – 实装が簡単  – 任意の評価指標を最適化することが可能  – 性能はそれほどよくない?  76
  • 77. AdaRankのイメージ 試行回数 訓練データ 弱学習器 クエリ1 ... クエリn 1 × g1 重み付き訓練データ g1が苦手とする 重み変更 クエリに有効 2 × × g2 … … N個の弱学習器を … 重み付け和 … 重み付き訓練データ … N gN ランキング関数 77
  • 78. AdaRank INPUT: (������������ , ������������ , ������������ ) ∈ ������, ������, ������ OUTPUT: ������(������) 1 1: Initialize ������1 ������ = ������ ������������������ ������������������ℎ ������ 2: FOR ������ in 1 to ������ 3: Create weak ranker ℎ������ with weighted distribution ������������ 4: Calculate ������ 1 ������=1 ������������ ������ *1 + ������(������(������������ , ������������ , ℎ������ ), ������������ ) ������������ = ln ������ 2 ������=1 ������������ ������ *1 − ������(������(������������ , ������������ , ℎ������ ), ������������ ) 5: Create ������ ������������ ������ = ������������ ℎ������ (������) ������=1 6: Update ������������+1 exp*−������(������ ������������ , ������������ , ������������ , ������������ )+ ������������+1 ������ = ������ ������=1 exp*−������(������ ������������ , ������������ , ������������ , ������������ )+ 7: ENDFOR 8: Return ������������ (������) 78
  • 79. AdaRank (解説) INPUT: (������������ , ������������ , ������������ ) ∈ ������, ������, ������ OUTPUT: ������(������) クエリiの重み 1 1: Initialize ������1 ������ = ������ ������������������ ������������������ℎ ������ WeakRankerの生成 2: FOR ������ in 1 to ������ WeakRankerのクエリi 3: Create weak ranker ℎ������ with weighted distribution ������������ に対する評価値 WeakRankerの重要度 4: Calculate ������ 1 ������=1 ������������ ������ *1 + ������(������(������������ , ������������ , ℎ������ ), ������������ ) ������������ = ln ������ 2 ������=1 ������������ ������ *1 − ������(������(������������ , ������������ , ℎ������ ), ������������ ) 5: Create ������ これまでのWeakRanker の重みづけ和 ������������ ������ = ������������ ℎ������ (������) ������=1 6: Update ������������+1 クエリの重みの更新 exp*−������(������ ������������ , ������������ , ������������ , ������������ )+ ������������+1 ������ = ������ ������=1 exp*−������(������ ������������ , ������������ , ������������ , ������������ )+ 7: ENDFOR 8: Return ������������ (������) 79
  • 80. 再掲: 検索ランキングの評価方法 • 正解データとランキングを比較 • 検索結果上位を重視する評価指標 – (1) 順位kに高い点数>順位kに低い点数 分子 – (2) ランキング上位をより重視 分母 • NDCG (Normalized Discouted Cumulative Gain) – 上記の2つを取り入れた多段階評価指標 – ������������,������ : クエリqにおける順位iの評価点数 ������ 2������������,������ − 1 ������������������������ @������ ≡ log 1 + ������ ������=1 ������������������������ @������ ������������������������������ @������ ≡ (0,1]に正規化 ������������������������������������������ @������ 80
  • 81. AdaRank: WeakRankerの生成方法 • クエリ重み付け評価指標が最大になるようなひとつ のランキング素性 – 例: BM25, PageRank, etc... ������ max ������������ ������ ������(������ ������������ , ������������ , ������������ , ������������ ) k ������=1 • この場合,最終的なランキング関数������������ (������)も線形関数 81
  • 83. その他のListwise手法 • 評価指標の近似を用いる手法 – SoftRank, SmoothRank • 構造学習を用いる手法 – SVM_MAP, SVM_NDCG • 勾配情報を利用しない方法 – NDCG-Annealing, RankPSO 83
  • 85. 再掲: (1) Pointwise手法 単一のデータに対して損失関数を設定 ������1 ������2 ������������ Training 1 1 2 2 ������ ������ (������1 , ������1 ) (������1 , ������1 ) (������1 , ������1 ) data 1 1 2 2 … ������ ������ (������2 , ������2 ) (������2 , ������2 ) (������2 , ������2 ) … 1 1 … … (������������1 , ������������1 ) ������ ������ 2 2 (������������������ , ������������������ ) (������������2 , ������������2 ) 85
  • 86. 再掲: (2) Pairwise手法 同一クエリのペアに対して損失関数を設定 ������1 ������2 ������������ Training 1 1 2 2 ������ ������ (������1 , ������1 ) (������1 , ������1 ) (������1 , ������1 ) data 1 1 2 2 … ������ ������ (������2 , ������2 ) (������2 , ������2 ) (������2 , ������2 ) … 1 1 … … (������������1 , ������������1 ) ������ ������ 2 2 (������������������ , ������������������ ) (������������2 , ������������2 ) 86
  • 87. 再掲: (3) Listwise手法 同一クエリのリストに対して損失関数を設定 ������1 ������2 ������������ Training 1 1 2 2 ������ ������ (������1 , ������1 ) (������1 , ������1 ) (������1 , ������1 ) data 1 1 2 2 … ������ ������ (������2 , ������2 ) (������2 , ������2 ) (������2 , ������2 ) … 1 1 … … (������������1 , ������������1 ) ������ ������ 2 2 (������������������ , ������������������ ) (������������2 , ������������2 ) 87
  • 89. その他の話題 • Click-through logs • Query-dependent ranking • Feature selection • Transfer learning/Domain adaptation • Diversity/Novelty 「ことはじめ」なので割愛... 89
  • 90. 公開Dataset • LETOR3.0/4.0 Dataset – http://research.microsoft.com/en-us/um/beijing/projects/letor/default.aspx • MSLR-WEB Dataset – http://research.microsoft.com/en-us/projects/mslr/ • Yahoo! Learning to Rank Challenge – http://learningtorankchallenge.yahoo.com/datasets.php – 大学のみ? (+学部長のサインが必要?) 90
  • 91. 实装 • RankingSVM – svm_rank by T. Joachims • http://www.cs.cornell.edu/People/tj/svm_light/svm_rank.html • Stochastic Pairwise Descent – sofia-ml by D. Sculley • http://code.google.com/p/sofia-ml/ 91
  • 92. Learning to Rank教科書 • Tie-Yan Liu. Learning to Rank for Information Retrieval. Springer (2011). • Tie-Yan Liu. Learning to Rank for Information Retrieval (Foundations and Trends(R) in Information Retrieval), Now Publishers (2009) • Hang Li, Learning to Rank for Information Retrieval and Natural Language Processing, Morgan & Claypool (2011) 92
  • 93. 情報検索の教科書 • Christopher D. Manning, Prabhakar Raghavan, Hinrich Schuetze, “Introduction to Information Retrieval”, Cambridge University Press (2008). – Webで全ページ公開されている.情報検索全般的にバランスよく書かれている • Bruce Croft, Donald Metzler, Trevor Strohman, “Search Engines: Information Retrieval in Practice”, Pearson Education (2009). – 検索エンジン寄りの話.エンジニア向けに書かれている.一番簡単かも. • Stefan Buttcher, Charles L. A. Clarke and Gordon V. Cormack, “Information Retrieval”, The MIT Press, 2010. – 实装から理論まで王道を押さえてしっかり書かれている印象.特にお薦め. 93
  • 94. チュートリアル資料 • Tie Yan Liu. Learning to Rank for Information Retrieval. SIGIR ‘08 Tutorial. – http://research.microsoft.com/en-us/people/tyliu/letor-tutorial- sigir08.pdf • Hang Li. Learning to Rank. ACL-IJCNLP ‘09 Tutorial. – http://research.microsoft.com/en-us/people/hangli/li-acl-ijcnlp-2009- tutorial.pdf • Shivani Agarwal. Ranking Methods in Machine Learning, SDM ’10 Tutorial. – http://web.mit.edu/shivani/www/Events/SDM-10-Tutorial/sdm10- tutorial.pdf • 徳永拓之. Confidence Weightedでランク学習を实装してみた. TokyoNLP#4 (2011). – http://www.slideshare.net/tkng/confidence-weighted 94
  • 95. まとめ • 近代的な検索エンジンは多数のランキング素 性を利用している • ランキング学習は,評価データを用いて,ラン キング素性の最適な重み付けを求める方法 • 適合度の観点での基本タスクは大体終わっ た感じ 95
  • 96. お持ち帰りメッセージ • Pointwise, Pairwise, Listwiseの違いは,損失 関数の設定方法にあり – どのように最適化するかは規定していない • Pairwise手法は二値分類アルゴリズムがその まま利用可能 • 機械学習手法 (に限らず?) は論文 ≒ 实装 – ソースコードはノウハウの宝庫 96