Gunosy勉強会
論文輪読
Gunosy Inc.
Coffee Yoshida

2013/10/23

1
発表する論文
• Optimizing Search Engines using Clickthrough Data
(http://dl.acm.org/citation.cfm?id=775067)

–
–
–
–

著者 : Thorsten Joachims (Cornell University)
引用数 : 2137
学会 : KDD ’02
内容 :
• Ranking SVM (http://en.wikipedia.org/wiki/Ranking_SVM )
• クエリログ・クリックログを用いて検索エンジン
の精度向上を行う

2013/10/23

2
1. INTRODUCTION
• 検索結果に対して、ユーザから明示的なフィー
ドバックを得るのは難しい
• クリックログという暗黙的なフィードバックは
無料でたくさん手に入る
• クリックログを用いて、検索結果のランキング
の修正を行う
• ランキング学習にSVMを使用する

2013/10/23

3
2. CLICKTHROUGH DATA IN SEARCH ENGINES
• クリックログについて
– clickthrough data in search engines = (q, r, c)
• q : クエリ
• r : ユーザに提示される検索結果のランキング
• c : ユーザがクリックしたリンク(複数)

2013/10/23

4
2.1 Recording Clickthrough Data
• クリックログの取り方
– プロキシかまして取った

2013/10/23

5
2.2 What Kind of Information does
Clickthrough Data Convey?
• クリックログからどんな情報が得られるか?
– (q, r, c) は強く依存しあっている
– 依存関係を適切にモデル化する必要がある
– クエリが違えば、表示される検索結果のランキングは異
なる
– クエリに関連したリンクをクリックしやすい

– ランキングで上位に表示されたリンクをクリックしやす
い

– クリックしたリンクとクエリとの関連性は、絶対的
なものではなく、ユーザが閲覧したリンクの中で、
相対的に関連性が高かったと考える
2013/10/23

6
2.2 What Kind of Information does
Clickthrough Data Convey?
• クリックログからどんな情報が得られるか?
– 下の検索結果10個の内、1・3・7番目をクリックした
場合に、得られる情報は、クエリとリンクの関連性
について、
3番目のリンク > 2番目のリンク
7番目のリンク > 2・4・5・6番目のリンク

2013/10/23

7
2.2 What Kind of Information does
Clickthrough Data Convey?
• クリックログからどんな情報が得られるか?
– 下の検索結果10個の内、1・3・7番目をクリックした
場合
– クエリとリンクの関連性は、
3番目のリンク > 2番目のリンク
7番目のリンク > 2・4・5・6番目のリンク

最適なランキングr*において、3番目のリンクが、
2番目のリンクよりも下にくることを意味する
2013/10/23

8
2.2 What Kind of Information does
Clickthrough Data Convey?
• クリックログからどんな情報が得られるか?

• このような形式のフィードバックに適した機械学習アルゴリズムは
無いので、次章以降で考える

2013/10/23

9
3. A FRAMEWORK FOR LEARNING
OF RETRIEVAL FUNCTIONS
• 最適な情報検索システム
– クエリ q と、文書集合 D = {d1, d2, …, dm} が与えられた
時に、文書をクエリとの関連度順のランキング r* で
返す

• 実際の情報検索システム
– ランキング関数 f を持つ
– 最適なランキング r* とは異なるランキング rf(q) を返
す
– rf(q) が r* に近いほど f は優れている

• ランキング r
– rf(q), r* ⊂ D × D = m × m の2値行列
–
2013/10/23ランキング r で、di のランクがdj よりも高い時、(di,

10
3. A FRAMEWORK FOR LEARNING
OF RETRIEVAL FUNCTIONS
• rf(q) と r* の類似度の指標に、Kendall’s τ を用いる

(Kendall tau distance: http://en.wikipedia.org/wiki/Kendall_tau_distance )

• P : 順位の並びが r* と同じだったペアの
数
• Q :順位の並びが r* と逆だったペアの数
– 例 • m : ドキュメント数
• τ(ra, rb) = (7-3) / (7+3)
= 0.4
– これが情報検索の他の指標と相関したり、関連があること
を述べてる
2013/10/23

11
3. A FRAMEWORK FOR LEARNING
OF RETRIEVAL FUNCTIONS
• ランキング学習の問題定義
– 文書集合 D において、クエリ q と最適なランキング
r* の分布 Pr(q, r*) が与えられた時に、Kendall’s τ を最
大化するランキング関数 f を求める

2013/10/23

12
4. AN SVM ALGORITHM FOR LEARNING
OF RANKING FUNCTIONS
• 学習について
– サイズ n の訓練データ (q1, r1*), (q2, r2*), …, (qn, rn*)が与えら
れた時、学習器 L は、ランキング関数群 F からKendall’s τ
を最大化するランキング関数 f を選択する
– 学習データは有限なので、Kendall’s τ は以下の式で表され
る

• 以下の条件を満たす学習アルゴリズムを考える
– 効率的にランキング関数群 F から Kendall’s τ を最大化する
ランキング関数 f を発見する
– 過学習しない
2013/10/23

13
4.1 The Ranking SVM Algorithm
• 線形ランキング関数 fw
– w : 重みベクトル
– Φ : クエリ q と文書 d を、それらのマッチ具合を表す
特徴ベクトルへ写像する関数
• 特徴ベクトルは実験の章で出てくる
– クエリと文書の単語の類似度とか

2013/10/23

14
4.1 The Ranking SVM Algorithm
• 線形ランキング関数 fw
– 文書 1〜4の順番は、重みベクトル w に射影された点
の順番となる

w1でのランキングは (1, 2, 3, 4)
w2でのランキングは (2, 3, 1, 4)

2013/10/23

15
4.1 The Ranking SVM Algorithm
• 最適化
– Kendall’s τ の最大化 = Q の最小化

– Q : rf(*) と r* で、順位の並びが異なる文書ペアの数
– 線形ランキング関数においては、
Q の最小化 =
すwの発見

2013/10/23

を満た

16
4.1 The Ranking SVM Algorithm
• 最適化
–

2013/10/23

を満たすwを見つ
けるのはNP困難なので、スラック変数 ξ を導入して
近似解を求める

17
4.1 The Ranking SVM Algorithm
• 最適化
–
を、
と見ると2値分類ぽい
– SVMを使う

2013/10/23

18
4.1 The Ranking SVM Algorithm
• 最適化
– カーネル使って非線形ランキング関数にも対応可能

– カーネル使わないほうが早いので、実験では線形でやって
るみたい

– 先にあげていた以下の条件を両方満たす
• 効率的にランキング関数群 F から Kendall’s τ を最大化す
るランキング関数 f を発見する
• 過学習しない
2013/10/23

19
4.1 The Ranking SVM Algorithm
• 検索関数
– ランキング関数を学習した後は、新しいクエリ q に
対して、各文書のスコアを算出し、ソートして表示
する

2013/10/23

20
4.1 The Ranking SVM Algorithm
• まとめると、
• 訓練
1. クエリと文書を両者の類似度を表すような特徴空間
に射影する(特徴ベクトルで表す)
2. 特徴ベクトル間の距離を算出する
3. SVMを用いて分類問題として解く

• テスト
– 文書をスコア順に並び替え
2013/10/23

21
4.2 Using Partial Feedback
• 実際には、最適なランキング r* というのは未知
で、クリックログから取得した r’ を用いて学習
することになる

2013/10/23

22
5. EXPERIMENTS
• オフラインとオンラインの実験を通して
– クリックログから嗜好を抽出できること
– Ranking SVMが検索精度を向上させること
を示す

2013/10/23

23
5.1 Experiment Setup: Meta-Search
• 実験環境
– Striver
• 複数の検索エンジンの結果を表示するメタ検索エ
ンジン
• クエリを入力すると、Google、MSNSearch、Excite、
Altavista、Hotbotから100件ずつ結果を取得し、ラ
ンキング関数 f で並び替えして、50件をユーザに
表示する

2013/10/23

24
5.1 Experiment Setup: Meta-Search
• 検索結果精度の比較方法
– 2つのランキング関数による結果を混ぜて出す
– 例)
• 結果Aと結果Bを混ぜて結果Cにする
• Aから1件出して、Bから1件出して、Aから、、、
をCとするみたいな
– ユーザがクリックしたリンクを、より多く輩出した
ランキング関数の性能が優れているとする
– 先行研究と同様の方法らしい

2013/10/23

25
5.2 Offline Experiment
• Ranking SVM がクリックログを用いて嗜好の規則
性を学習できることを示す
• 筆者自身でStriverを使用して、112クエリの教師
データを作成した

2013/10/23

26
5.2 Offline Experiment
• 特徴ベクトル Φ(q, d)
1. 他検索エンジンの結果
2. クエリと文書のマッチ具合
3. 文書の人気度

– 実装が容易かつ、ランキングに効果のありそうなも
のを選択した
– 改良の余地がある

2013/10/23

27
5.2 Offline Experiment
1. 他検索エンジンの結果
– top1_X: ranked #1 in X ∈ {Google, MSNSearch, Al- tavista,
Hotbot, Excite} (binary {0, 1})
– top10_X: ranked in top 10 in X ∈ {Google, MSN- Search,
Altavista, Hotbot, Excite} (binary {0, 1})
– top50_X: ranked in top 50 in X ∈ {Google, MSN- Search,
Altavista, Hotbot, Excite} (binary {0, 1})
– rf(q): ranked #1 in X of the 5 search engines
– top10count_X: ranked in top 10 in X of the 5 search
engines
– top50count_X: ranked in top 50 in X of the 5 search
engines
2013/10/23

28
5.2 Offline Experiment
2. クエリと文書のマッチ具合
– query_url_cosine: cosine between URL-words and query
(range [0, 1])
– query_abstract_cosine: cosine between title-words and
query (range [0, 1])
– domain_name_in_query: query contains domain-name
from URL (binary {0, 1})

2013/10/23

29
5.2 Offline Experiment
3. 文書の人気度
– url_length: length of URL in characters divided by 30
– country_X: country code X of URL (binary attribute {0, 1}
for each country code)
– domain_X: domain X of URL (binary attribute {0, 1} for
each domain name)
– abstract_contains_home: word “home” appears in URL or
title (binary attribute {0, 1})
– url_contains_tilde: URL contains “∼” (binary attri- bute {0,
1})
– url_X: URL X as an atom (binary attribute {0,1})

2013/10/23

30
5.2 Offline Experiment
• 実験結果
– 115個のクエリの内、訓練に使用するデータ数を変えて、
Precision Error(順位の並び間違いの割合)の変化を見る
– 訓練データを増やすにつれ、Errorが下がっている
– クリックログから筆者の嗜好の規則性を取得出来ている

2013/10/23

31
5.3 Interactive Online Experiment
• ユーザ20人に使用してもらい、訓練データを作
成した(260クエリ)
• 180クエリを用いて、Google、MSNSearch、
Toprankと精度を比較した
– Toprank(Google, MSNSearch, Altavista, Excite、Hotbotの
検索結果を上位から順番に表示したもの)

• Ranking SVMが1番だった(二項検定の結果有意水準5%で有意な結
果)

2013/10/23

32
5.4 Analysis of the Learned Function
• 効いてる特徴量について
– ランキング関数として線形なものを選択したため、
重みベクトルを見ることで、各特徴量効き具合を調
べることが出来る
– 正だと効いてて、負だと逆効果

2013/10/23

33
まとめ
• クリックログを用いて、相対的な嗜好順位とい
う訓練データを取得し使用した
• ランキング関数の学習アルゴリズムを提案し、
SVMを用いて実行した
• 実験で他検索エンジンよりも良い結果だった

2013/10/23

34
実装
• SVM-rank
– http://www.cs.cornell.edu/people/tj/svm_light/svm_rank.
html

2013/10/23

35

Optimizing Search Engines using Clickthrough Data

  • 1.
  • 2.
    発表する論文 • Optimizing SearchEngines using Clickthrough Data (http://dl.acm.org/citation.cfm?id=775067) – – – – 著者 : Thorsten Joachims (Cornell University) 引用数 : 2137 学会 : KDD ’02 内容 : • Ranking SVM (http://en.wikipedia.org/wiki/Ranking_SVM ) • クエリログ・クリックログを用いて検索エンジン の精度向上を行う 2013/10/23 2
  • 3.
    1. INTRODUCTION • 検索結果に対して、ユーザから明示的なフィー ドバックを得るのは難しい •クリックログという暗黙的なフィードバックは 無料でたくさん手に入る • クリックログを用いて、検索結果のランキング の修正を行う • ランキング学習にSVMを使用する 2013/10/23 3
  • 4.
    2. CLICKTHROUGH DATAIN SEARCH ENGINES • クリックログについて – clickthrough data in search engines = (q, r, c) • q : クエリ • r : ユーザに提示される検索結果のランキング • c : ユーザがクリックしたリンク(複数) 2013/10/23 4
  • 5.
    2.1 Recording ClickthroughData • クリックログの取り方 – プロキシかまして取った 2013/10/23 5
  • 6.
    2.2 What Kindof Information does Clickthrough Data Convey? • クリックログからどんな情報が得られるか? – (q, r, c) は強く依存しあっている – 依存関係を適切にモデル化する必要がある – クエリが違えば、表示される検索結果のランキングは異 なる – クエリに関連したリンクをクリックしやすい – ランキングで上位に表示されたリンクをクリックしやす い – クリックしたリンクとクエリとの関連性は、絶対的 なものではなく、ユーザが閲覧したリンクの中で、 相対的に関連性が高かったと考える 2013/10/23 6
  • 7.
    2.2 What Kindof Information does Clickthrough Data Convey? • クリックログからどんな情報が得られるか? – 下の検索結果10個の内、1・3・7番目をクリックした 場合に、得られる情報は、クエリとリンクの関連性 について、 3番目のリンク > 2番目のリンク 7番目のリンク > 2・4・5・6番目のリンク 2013/10/23 7
  • 8.
    2.2 What Kindof Information does Clickthrough Data Convey? • クリックログからどんな情報が得られるか? – 下の検索結果10個の内、1・3・7番目をクリックした 場合 – クエリとリンクの関連性は、 3番目のリンク > 2番目のリンク 7番目のリンク > 2・4・5・6番目のリンク 最適なランキングr*において、3番目のリンクが、 2番目のリンクよりも下にくることを意味する 2013/10/23 8
  • 9.
    2.2 What Kindof Information does Clickthrough Data Convey? • クリックログからどんな情報が得られるか? • このような形式のフィードバックに適した機械学習アルゴリズムは 無いので、次章以降で考える 2013/10/23 9
  • 10.
    3. A FRAMEWORKFOR LEARNING OF RETRIEVAL FUNCTIONS • 最適な情報検索システム – クエリ q と、文書集合 D = {d1, d2, …, dm} が与えられた 時に、文書をクエリとの関連度順のランキング r* で 返す • 実際の情報検索システム – ランキング関数 f を持つ – 最適なランキング r* とは異なるランキング rf(q) を返 す – rf(q) が r* に近いほど f は優れている • ランキング r – rf(q), r* ⊂ D × D = m × m の2値行列 – 2013/10/23ランキング r で、di のランクがdj よりも高い時、(di, 10
  • 11.
    3. A FRAMEWORKFOR LEARNING OF RETRIEVAL FUNCTIONS • rf(q) と r* の類似度の指標に、Kendall’s τ を用いる (Kendall tau distance: http://en.wikipedia.org/wiki/Kendall_tau_distance ) • P : 順位の並びが r* と同じだったペアの 数 • Q :順位の並びが r* と逆だったペアの数 – 例 • m : ドキュメント数 • τ(ra, rb) = (7-3) / (7+3) = 0.4 – これが情報検索の他の指標と相関したり、関連があること を述べてる 2013/10/23 11
  • 12.
    3. A FRAMEWORKFOR LEARNING OF RETRIEVAL FUNCTIONS • ランキング学習の問題定義 – 文書集合 D において、クエリ q と最適なランキング r* の分布 Pr(q, r*) が与えられた時に、Kendall’s τ を最 大化するランキング関数 f を求める 2013/10/23 12
  • 13.
    4. AN SVMALGORITHM FOR LEARNING OF RANKING FUNCTIONS • 学習について – サイズ n の訓練データ (q1, r1*), (q2, r2*), …, (qn, rn*)が与えら れた時、学習器 L は、ランキング関数群 F からKendall’s τ を最大化するランキング関数 f を選択する – 学習データは有限なので、Kendall’s τ は以下の式で表され る • 以下の条件を満たす学習アルゴリズムを考える – 効率的にランキング関数群 F から Kendall’s τ を最大化する ランキング関数 f を発見する – 過学習しない 2013/10/23 13
  • 14.
    4.1 The RankingSVM Algorithm • 線形ランキング関数 fw – w : 重みベクトル – Φ : クエリ q と文書 d を、それらのマッチ具合を表す 特徴ベクトルへ写像する関数 • 特徴ベクトルは実験の章で出てくる – クエリと文書の単語の類似度とか 2013/10/23 14
  • 15.
    4.1 The RankingSVM Algorithm • 線形ランキング関数 fw – 文書 1〜4の順番は、重みベクトル w に射影された点 の順番となる w1でのランキングは (1, 2, 3, 4) w2でのランキングは (2, 3, 1, 4) 2013/10/23 15
  • 16.
    4.1 The RankingSVM Algorithm • 最適化 – Kendall’s τ の最大化 = Q の最小化 – Q : rf(*) と r* で、順位の並びが異なる文書ペアの数 – 線形ランキング関数においては、 Q の最小化 = すwの発見 2013/10/23 を満た 16
  • 17.
    4.1 The RankingSVM Algorithm • 最適化 – 2013/10/23 を満たすwを見つ けるのはNP困難なので、スラック変数 ξ を導入して 近似解を求める 17
  • 18.
    4.1 The RankingSVM Algorithm • 最適化 – を、 と見ると2値分類ぽい – SVMを使う 2013/10/23 18
  • 19.
    4.1 The RankingSVM Algorithm • 最適化 – カーネル使って非線形ランキング関数にも対応可能 – カーネル使わないほうが早いので、実験では線形でやって るみたい – 先にあげていた以下の条件を両方満たす • 効率的にランキング関数群 F から Kendall’s τ を最大化す るランキング関数 f を発見する • 過学習しない 2013/10/23 19
  • 20.
    4.1 The RankingSVM Algorithm • 検索関数 – ランキング関数を学習した後は、新しいクエリ q に 対して、各文書のスコアを算出し、ソートして表示 する 2013/10/23 20
  • 21.
    4.1 The RankingSVM Algorithm • まとめると、 • 訓練 1. クエリと文書を両者の類似度を表すような特徴空間 に射影する(特徴ベクトルで表す) 2. 特徴ベクトル間の距離を算出する 3. SVMを用いて分類問題として解く • テスト – 文書をスコア順に並び替え 2013/10/23 21
  • 22.
    4.2 Using PartialFeedback • 実際には、最適なランキング r* というのは未知 で、クリックログから取得した r’ を用いて学習 することになる 2013/10/23 22
  • 23.
    5. EXPERIMENTS • オフラインとオンラインの実験を通して –クリックログから嗜好を抽出できること – Ranking SVMが検索精度を向上させること を示す 2013/10/23 23
  • 24.
    5.1 Experiment Setup:Meta-Search • 実験環境 – Striver • 複数の検索エンジンの結果を表示するメタ検索エ ンジン • クエリを入力すると、Google、MSNSearch、Excite、 Altavista、Hotbotから100件ずつ結果を取得し、ラ ンキング関数 f で並び替えして、50件をユーザに 表示する 2013/10/23 24
  • 25.
    5.1 Experiment Setup:Meta-Search • 検索結果精度の比較方法 – 2つのランキング関数による結果を混ぜて出す – 例) • 結果Aと結果Bを混ぜて結果Cにする • Aから1件出して、Bから1件出して、Aから、、、 をCとするみたいな – ユーザがクリックしたリンクを、より多く輩出した ランキング関数の性能が優れているとする – 先行研究と同様の方法らしい 2013/10/23 25
  • 26.
    5.2 Offline Experiment •Ranking SVM がクリックログを用いて嗜好の規則 性を学習できることを示す • 筆者自身でStriverを使用して、112クエリの教師 データを作成した 2013/10/23 26
  • 27.
    5.2 Offline Experiment •特徴ベクトル Φ(q, d) 1. 他検索エンジンの結果 2. クエリと文書のマッチ具合 3. 文書の人気度 – 実装が容易かつ、ランキングに効果のありそうなも のを選択した – 改良の余地がある 2013/10/23 27
  • 28.
    5.2 Offline Experiment 1.他検索エンジンの結果 – top1_X: ranked #1 in X ∈ {Google, MSNSearch, Al- tavista, Hotbot, Excite} (binary {0, 1}) – top10_X: ranked in top 10 in X ∈ {Google, MSN- Search, Altavista, Hotbot, Excite} (binary {0, 1}) – top50_X: ranked in top 50 in X ∈ {Google, MSN- Search, Altavista, Hotbot, Excite} (binary {0, 1}) – rf(q): ranked #1 in X of the 5 search engines – top10count_X: ranked in top 10 in X of the 5 search engines – top50count_X: ranked in top 50 in X of the 5 search engines 2013/10/23 28
  • 29.
    5.2 Offline Experiment 2.クエリと文書のマッチ具合 – query_url_cosine: cosine between URL-words and query (range [0, 1]) – query_abstract_cosine: cosine between title-words and query (range [0, 1]) – domain_name_in_query: query contains domain-name from URL (binary {0, 1}) 2013/10/23 29
  • 30.
    5.2 Offline Experiment 3.文書の人気度 – url_length: length of URL in characters divided by 30 – country_X: country code X of URL (binary attribute {0, 1} for each country code) – domain_X: domain X of URL (binary attribute {0, 1} for each domain name) – abstract_contains_home: word “home” appears in URL or title (binary attribute {0, 1}) – url_contains_tilde: URL contains “∼” (binary attri- bute {0, 1}) – url_X: URL X as an atom (binary attribute {0,1}) 2013/10/23 30
  • 31.
    5.2 Offline Experiment •実験結果 – 115個のクエリの内、訓練に使用するデータ数を変えて、 Precision Error(順位の並び間違いの割合)の変化を見る – 訓練データを増やすにつれ、Errorが下がっている – クリックログから筆者の嗜好の規則性を取得出来ている 2013/10/23 31
  • 32.
    5.3 Interactive OnlineExperiment • ユーザ20人に使用してもらい、訓練データを作 成した(260クエリ) • 180クエリを用いて、Google、MSNSearch、 Toprankと精度を比較した – Toprank(Google, MSNSearch, Altavista, Excite、Hotbotの 検索結果を上位から順番に表示したもの) • Ranking SVMが1番だった(二項検定の結果有意水準5%で有意な結 果) 2013/10/23 32
  • 33.
    5.4 Analysis ofthe Learned Function • 効いてる特徴量について – ランキング関数として線形なものを選択したため、 重みベクトルを見ることで、各特徴量効き具合を調 べることが出来る – 正だと効いてて、負だと逆効果 2013/10/23 33
  • 34.
  • 35.