SlideShare a Scribd company logo
1 of 39
Download to read offline
Jubatus Casual Talks #1
Jubatusでオンラインランク学習
2013-06-02
Tagami Yukihiro
自己紹介
● Tagami Yukihiro
– 広告エンジニア
– 機械学習とか情報検索
– @y_tag
– github.com/y-tag
– www.kaggle.com/users/33499/y-tag
– d.hatena.ne.jp/y_tag/
今日のアジェンダ
● ランク学習とは?
● どうやって並べるの?
● どうやって学習するの?
● Jubatusでオンラインランク学習
● 実験
● まとめ
ランク学習とは?
ランク学習(Learning-to-Rank)
● 目的
– 入力として与えられたあるクエリに対して、
候補となるアイテムを適切に並び替えたい
● ランク学習では
– 適切な並べ方をデータから学習する
例: ウェブ検索
検索クエリ
ウェブページ
例: 商品検索
検索クエリ
商品
例: レコメンド
クエリアイテム
類似アイテム
例: メールの受信トレイ
ユーザー
メール
support.google.com/mail/answer/186543
ランク学習の適用先
● 入力に対して候補を並べるものなら何でも
– ウェブ検索・商品検索
– レコメンド
– メールの受信トレイ
– などなど
どうやって並べるの?
並べ方
● ランキングモデルを用いてクエリとアイテムの組に
対してスコアを付与する
● 付与されたスコアによって候補を並べる
● ランク学習は、このランキングモデルをデータから
構築する
クエリ
候補集合
ランキング
モデル
アイテム
スコア
特徴量
抽出
データの形式
● 実際に用いるデータは主に以下の形式
– クエリのID
– クエリとアイテムから抽出された特徴量ベクトル
– ラベル(適合度)
(x1
(i)
, y1
(i)
)
(x2
(i)
, y2
(i)
)
⋮
(xn(i)
(i)
, yn(i)
(i)
)
q
(i)
q
(i)
x j
(i)
y j
(i)
(x1
(1)
, y1
(1)
)
(x2
(1)
, y2
(1)
)
⋮
(xn(1)
(1)
, yn(1)
(1)
)
q
(1)
⋯ ⋯
(x1
(m)
, y1
(m)
)
(x2
(m)
, y2
(m)
)
⋮
(xn(m)
(m)
, yn(m)
(m)
)
q
(m)
特徴量ベクトル
● クエリとアイテムの関連性
– 検索クエリがどれくらいウェブページに含まれているか
● クエリによらないアイテムのクオリティ
– PageRank
ラベル(適合度)
● 二値
– relevant vs. irrelevant
● 多値
– Perfect > Excellent > Good > Fair > Bad
● 値が大きい方が、より好ましいアイテム
データはどう作るの?
● 人手で作成
– 質は高いけど大変
– クラウドソーシング
● ユーザーのフィードバックをログから抽出
– 大量に作れるけど質はいまいち(かも)
– レーティング
– クリックログ
ここまでのまとめ
● 用いるデータは以下三つ組で表現
– クエリのID
– クエリとアイテムから抽出された特徴量ベクトル
– ラベル(適合度)
クエリ
候補集合
ランキング
モデル
アイテム
スコア
特徴量
抽出
q
(i)
x j
(i)
y j
(i)
どうやって学習するの?
主に三つのアプローチ
● Pointwiseアプローチ
– 単純にラベルの値自体を予測
● Pairwiseアプローチ
– 二つのアイテムのどちらが優れているかに着目
● Listwiseアプローチ
– 全体の並びをきちんと考慮
Pointwiseアプローチ
● ラベルの値を目的変数として分類や回帰を行う
– ラベルが二値 {0, 1} → 分類
– ラベルが多値 {0, 1, 2, …} → 回帰
● 正解ラベルと予測値の間の損失関数を最小化す
るように学習
● 既存の分類や回帰の手法をそのまま適用できる
Pairwiseアプローチ
● 適合度の値その物ではなく、大小関係に着目
● あるクエリに結びつく、二つのアイテムの適合度の
大小関係を用いる
● 適合度の大小関係に対して、分類や回帰の手法
を適用して学習
※あとでもう少し詳しく
Listwiseアプローチ
● 名前の通り、リストの並び順全体を考慮
● ランク学習で用いられる評価指標は、そもそも並
べられたリストに対して計算されるもの
● 前の二つのアプローチとは異なり、分類や回帰の
手法をそのまま適用するというわけではない
三つのアプローチまとめ
● Pointwiseアプローチ
– ラベルの値自体を予測
● Pairwiseアプローチ
– 二つのアイテムのどちらが優れているかに着目
● Listwiseアプローチ
– 全体の並びをきちんと考慮
詳しくは参考文献を参照
Jubatusで
オンラインランク学習
Jubatusでランク学習
● 大量のユーザーフィードバックを用いて、
オンラインでランキングモデルを学習したい
● Pairwiseアプローチは分類や回帰の手法を
適用して学習している
● 分類や回帰ができるJubatusなら、ランク学習も
できるはず
実装したよ!
github.com/y-tag/jubatus/commits/ranking
Pairwiseアプローチと分類(1)
● 二つのサンプルに対するモデルのスコアの
大小関係が、適合度の大小関係通りになるように
モデルを学習したい
score(x j
(i)
) > score(xk
(i)
)
(x j
(i)
, y j
(i)
),(xk
(i)
, yk
(i)
)
where y j
(i)
> yk
(i)
このようなデータに対して このようなスコアを返す
ランキングモデルを得たい
Pairwiseアプローチと分類(2)
● ランキングモデルを線形モデルで表現する
● 二つの素性ベクトルの差分に対するスコアが、
0より大きいか小さいかだけ判別できれば良い
score(x j
(i)
) > score(xk
(i)
)
⇔ f (x j
(i)
) > f (xk
(i)
)
⇔wT
x j
(i)
> wT
xk
(i)
⇔w
T
x j
(i)
−w
T
xk
(i)
> 0
⇔wT
(x j
(i)
−xk
(i)
) > 0
⇔ f (x j
(i)
−xk
(i)
) > 0
(x j
(i)
, y j
(i)
),(xk
(i)
, yk
(i)
)
where y j
(i)
> yk
(i)
このようなデータに対して
このようなスコアを返す
ランキングモデルを得たい
Pairwiseアプローチと分類(3)
● とはいえ、すべての大小関係を正しく表現する
線形モデルを構築するのは困難
● そこで通常の分類や回帰のように、損失関数を
定義してそれを最小化する
̂w = argmin
w
∑
i=1
m
∑
j=1
n
(i)
−1
∑
k= j+1
n
(i)
Loss((x j
(i)
−xk
(i)
),( y j
(i)
−yk
(i)
),w)
Losshinge(x , y ,w) =
{0 y=0
max(0,1−sign( y)⋅w
T
x) otherwise
Losssquared (x , y ,w) = ( y−w
T
x)
2
現在の実装(学習)
● 一回の入力が一つのクエリに対応するとみなし、
与えられたリスト内でペアを作成して分類器で学習
● ペアデータに対するラベルはすべて”+”
(x1
(i)
, y1
(i)
=0)
(x2
(i)
, y2
(i)
=2)
(x3
(i)
, y3
(i)
=0)
(x4
(i)
, y4
(i)
=0)
(x5
(i)
, y5
(i)
=1)
(x2
(i)
−x1
(i)
,+)
(x2
(i)
−x3
(i)
,+)
(x2
(i)
−x4
(i)
,+)
(x2
(i)
−x5
(i)
,+)
(x2
(5)
−x1
(i)
,+)
(x5
(i)
−x3
(i)
,+)
(x5
(i)
−x4
(i)
,+)
これらのデータを用いて分類器を学習
ラベルの大小関係に
応じてペアを作成
現在の実装(予測)
● 予測時はアイテムごとにランキングモデルで、
ラベル”+”に対するスコアを付与
● スコアでアイテムを並び替える
(x1
(test)
)
(x2
(test)
)
(x3
(test)
)
(x4
(test)
)
(x5
(test)
)
学習した
モデルで
スコアを付与
(x1
(test)
,0.67)
(x2
(test)
,−0.18)
(x3
(test)
,0.09)
(x4
(test)
,−0.27)
(x5
(test)
,0.62)
(x1
(test)
)
(x5
(test)
)
(x3
(test)
)
(x2
(test)
)
(x4
(test)
)
スコアの
降順で
ソート
実験
実験設定
● LETORのデータセットで実験
– OHSUMED, MQ2007, MQ2008
– research.microsoft.com/en-us/um/beijing/projects/letor/
● 今回の実装と既存のベースラインを比較
– PA, CW, AROW, NHERD vs. RankSVM
● 詳しい実験の設定と結果はここを参照
– d.hatena.ne.jp/y_tag/20130423/online_learning_to_rank
実験結果
OHSUMED MQ2007 MQ2008
0.3
0.32
0.34
0.36
0.38
0.4
0.42
0.44
0.46
0.48
0.5
Mean Average Precision
RankPA
RankCW
RankAROW
RankNHERD
RankSVM-(Struct)
ListNet
AdaRank-MAP
RankBoost
まとめ
まとめ
● Jubatusでオンラインランク学習できるよ!
● でも実システムで使うには、もう少し賢い仕組みが
必要になるかも
– 特徴量抽出の部分
– 検索エンジン(転置インデックス)との連携など
● 今後の課題
– いろいろありすぎてつらい
Reference
● Learning to Rank for Information Retrieval
– research.microsoft.com/en-
us/people/tyliu/learning_to_rank_tutorial_-_www_-_2008.pdf
● ランキング学習ことはじめ
– www.slideshare.net/sleepy_yoshi/dsirnlp1
● Large Scale Learning to Rank
– http://research.google.com/pubs/archive/35662.pdf
Implementation
● sofia-ml
– code.google.com/p/sofia-ml/
● Jforests
– code.google.com/p/jforests/
● y-tag / cpp-ToyBox-Ranking
– github.com/y-tag/cpp-ToyBox-Ranking
おしまい

More Related Content

Viewers also liked

小町のレス数が予測できるか試してみた
小町のレス数が予測できるか試してみた小町のレス数が予測できるか試してみた
小町のレス数が予測できるか試してみたJubatusOfficial
 
単語コレクター(文章自動校正器)
単語コレクター(文章自動校正器)単語コレクター(文章自動校正器)
単語コレクター(文章自動校正器)JubatusOfficial
 
新聞から今年の漢字を予測する
新聞から今年の漢字を予測する新聞から今年の漢字を予測する
新聞から今年の漢字を予測するJubatusOfficial
 
jubarecommenderの紹介
jubarecommenderの紹介jubarecommenderの紹介
jubarecommenderの紹介JubatusOfficial
 
Jubatus 新機能ハイライト
Jubatus 新機能ハイライトJubatus 新機能ハイライト
Jubatus 新機能ハイライトJubatusOfficial
 
かまってちゃん小町
かまってちゃん小町かまってちゃん小町
かまってちゃん小町JubatusOfficial
 
コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用
コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用
コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用JubatusOfficial
 
データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定
データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定
データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定JubatusOfficial
 
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化JubatusOfficial
 
Jubakit の紹介
Jubakit の紹介Jubakit の紹介
Jubakit の紹介kmaehashi
 
発言小町からのプロファイリング
発言小町からのプロファイリング発言小町からのプロファイリング
発言小町からのプロファイリングJubatusOfficial
 
地域の魅力を伝えるツアーガイドAI
地域の魅力を伝えるツアーガイドAI地域の魅力を伝えるツアーガイドAI
地域の魅力を伝えるツアーガイドAIJubatusOfficial
 
機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual TalksYuya Unno
 

Viewers also liked (20)

小町のレス数が予測できるか試してみた
小町のレス数が予測できるか試してみた小町のレス数が予測できるか試してみた
小町のレス数が予測できるか試してみた
 
単語コレクター(文章自動校正器)
単語コレクター(文章自動校正器)単語コレクター(文章自動校正器)
単語コレクター(文章自動校正器)
 
新聞から今年の漢字を予測する
新聞から今年の漢字を予測する新聞から今年の漢字を予測する
新聞から今年の漢字を予測する
 
jubarecommenderの紹介
jubarecommenderの紹介jubarecommenderの紹介
jubarecommenderの紹介
 
Jubatus 新機能ハイライト
Jubatus 新機能ハイライトJubatus 新機能ハイライト
Jubatus 新機能ハイライト
 
jubabanditの紹介
jubabanditの紹介jubabanditの紹介
jubabanditの紹介
 
かまってちゃん小町
かまってちゃん小町かまってちゃん小町
かまってちゃん小町
 
JubaQLご紹介
JubaQLご紹介JubaQLご紹介
JubaQLご紹介
 
コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用
コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用
コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用
 
データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定
データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定
データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定
 
Jubaanomalyについて
JubaanomalyについてJubaanomalyについて
Jubaanomalyについて
 
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化
 
Jubakit の紹介
Jubakit の紹介Jubakit の紹介
Jubakit の紹介
 
発言小町からのプロファイリング
発言小町からのプロファイリング発言小町からのプロファイリング
発言小町からのプロファイリング
 
銀座のママ
銀座のママ銀座のママ
銀座のママ
 
JUBARHYME
JUBARHYMEJUBARHYME
JUBARHYME
 
小町の溜息
小町の溜息小町の溜息
小町の溜息
 
Jubatus 1.0 の紹介
Jubatus 1.0 の紹介Jubatus 1.0 の紹介
Jubatus 1.0 の紹介
 
地域の魅力を伝えるツアーガイドAI
地域の魅力を伝えるツアーガイドAI地域の魅力を伝えるツアーガイドAI
地域の魅力を伝えるツアーガイドAI
 
機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks
 

Recently uploaded

論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
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
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
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
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 

Recently uploaded (9)

論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
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
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
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」の紹介
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 

Jubatusでオンラインランク学習