SlideShare uma empresa Scribd logo
1 de 30
SEXI2013読み会:
Adult Query Classification for Web
Search and Recommendation
2013-06-30
Yoshihiko Suhara
@sleepy_yoshi
Adult Query Classification for Web
Search and Recommendation
• Aleksandr Chuklin, Alisa Lavrentyeva (Yandex)
• Yandex
– ロシアのシェアNo.1検索エンジン
イントロ
なぜ
アダルトクエリ判別が
必要なのか?
幸せな世界
• 検索エンジンというひとつの入り口からおとなも こども
もおねーさんもみんな各々が幸せになれる世界へ案
内
検閲削除
Adult query 判別がなぜ必要か?
• アダルトコンテンツを望む人,望まない人がいる
ハァハァ・・・
検閲済ハァァァ!
おとなには自動的に
セーフサーチOFFにしてあげたい
検閲削除
既存のアプローチ
• 最も簡単なのはホワイトリスト,ブラックリスト
形式
• 既存研究の多くはアダルトコンテンツ判定に
取り組んでいた
– 映像,文書などのアダルトコンテンツ判定
• 今回はアダルトコンテンツ判定の情報を利用
したアダルトクエリ分類器を学習
提案手法
提案手法の概要
• 教師あり学習を用いて分類器を学習
訓練データ
学習アルゴリズム
クエリ分類器
クエリ
(特徴ベクトル)
生成
判定結果
{white, gray, black}
今回は3値分類
利用する特徴
• 大きく以下の2つのアプローチで特徴抽出
– (1) SEarch Result Page (SERP) feature
• 検索結果のadultnessスコアを利用した特徴
• adultnesss スコア [0, 1]
– 各文書に対してあらかじめ付与されたアダルトコンテンツらし
さのスコア
– 具体的な計算方法については記載なし 
– (2) Language feature
• クエリのみから抽出する特徴
(1) SERP features (8 features)
• SERP feature
– 上位N件に存在する adultness > 0 の文書数
– 最上位の adultness スコア
– 上位N件に存在する adultness スコアが以下の範
囲に含まれる数 (4 features)
• [0.25, 0.5), [0.5, 0.75), [0.75, 1.0), [1,0, +∞)
– 上位N件のadultnessスコアの平均と分散 (2
features)
本研究ではN=30と設定
(2) Language features (1/2)
• Language features
– 全クエリ, black, whiteクエリに対して構築された計3個
の言語モデルを利用
• bi-gramモデル+back-off smoothing を利用
– black言語モデルの例
𝑃𝑏𝑙𝑎𝑐𝑘 𝑄 𝑀 𝑏𝑙𝑎𝑐𝑘 = 𝑃(𝑞𝑖|𝑞𝑖−1; 𝑀 𝑏𝑙𝑎𝑐𝑘)
|𝑄|
𝑖=1
– 言語モデル構築に利用するコーパス:
• SERP featureを用いて構築したblack-whiteクエリ分類器に
よって収集したblack/whiteクエリ
• precision 約90%だそう.量については記載されておらず
(2) Language features (2/2)
• 具体的には記載されておらず
システム構成図
クエリ入力
検索結果取得
Adultness計算
検索結果フィルタ
検索結果提示
検索エンジン
ここでフィルタ
実験
Adult query dataset
• 1889クエリを人手で判別
– white: 1118
– gray: 132
– black: 639
– ※サンプルにはsome well-known black wordsを
利用
実験条件
• 分類器にはGradient Boosting Decision Trees
(GBDT) を利用
• 10 Fold cross validation で評価
結果
結果に対する考察
• black, whiteの判別は高精度に達成.grayが
イマイチ
• Language feature がなくても高精度
– 当たり前?
• コーパス作成のblack/white判定にSERP featureを使っ
ているから
• SERPにおけるAdultnessスコアを利用しているから
– 検索結果に出てくる = 当該キーワードを含む
– Adultnessスコア計算にlanguage featureに相当する情報に基
づく特徴が利用されていれば,情報として重複
応用例
• (1) ウェブ検索
– クエリが
• blackに分類: フィルタリングを一切せずに検索結果を提示
• whiteに分類: adultnessスコアが閾値𝛼以上のものを排除して結
果を提示
• grayに分類: adultnessスコアが閾値𝛽以上のものを排除して結果
を提示
• (2) クエリ推薦
– 既に入力されたクエリがwhiteに分類された場合,blackク
エリは提示しない
– 既に入力されたクエリがblackに分類された場合は前候補
を提示
まとめ
• アダルトクエリ判別を3値に分類する方法と特
徴を提案した
• 今後の課題
– grayクエリの更なる分析
– filteringではなくランキングへの反映
感想
• 3値分類の目的がよくわからない
– black/white 判定の精度向上?
– 考察が少ないのでなんともいえず
• 特徴にSERPを使うのはよいとして,adultness
スコア計算方法に依存しているため微妙
– しかもそこがブラックボックスになっている 
おまけ
Yandexの総クエリ数を推定する
• Yandexの1年間に使用されるユニーククエリ
数が論文内に記載されている (いいの?)
– 116,511,310クエリ
• この数字からYandexの年間総クエリ投入数
予測を試みる
Heapsの法則
• コーパスサイズ𝑁の総語彙数𝐷が以下の法則
に従うというもの
𝐷 = 𝑘𝑁 𝛽
– ただし𝑘と 𝛽はコーパスに依存
• 対数を取ると
log 𝐷 = 𝛽 log 𝑁 + log 𝑘
– 両対数の世界では線形の関係
Heapsの法則を用いた予測
• 以下のステップで推定を試みる
– 1. 既存のクエリログから𝑘と𝛽を推定
– 2. 𝐷 = 116,511,310 を代入して総クエリ数𝑁を推定
• 既存のクエリログとしてAOLクエリログデータ
セットを利用して試してみる
AOLデータセットに対する
Heapsの法則の適用
• 両対数グラフでプロットしてみる
– かなりきれいに線形関係
※ 詳しくは http://d.hatena.ne.jp/sleepy_yoshi/20120129/p1 に記載
AOLデータにおける実験
• 一部データを使って推定した𝑘と𝛽を用いて語
彙数増加を予測
– 最小二乗法によるフィッティング
• 10%程度のデータを用いるとかなり高精度にフィット
Yandexクエリ数の推定
• AOL全データに対する最小二乗フィッティング結果
– 推定値: 𝑘 = 3.832, 𝛽 = 0.7406
• 𝐷 = 𝑘𝑁 𝛽
に代入
116,511,310 = 3.832 𝑁0.7406
𝑁 = 12,702,687,258
• よって総クエリ投入数は以下のとおり予測
– 約127億クエリ/年
– 約10億クエリ/月
Thank you!

Mais conteúdo relacionado

Destaque

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復々習レーン#7 前回までのあらすじ
PRML復々習レーン#7 前回までのあらすじPRML復々習レーン#7 前回までのあらすじ
PRML復々習レーン#7 前回までのあらすじ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復々習レーン#10 前回までのあらすじ
PRML復々習レーン#10 前回までのあらすじPRML復々習レーン#10 前回までのあらすじ
PRML復々習レーン#10 前回までのあらすじsleepy_yoshi
 
SIGIR2012勉強会 23 Learning to Rank
SIGIR2012勉強会 23 Learning to RankSIGIR2012勉強会 23 Learning to Rank
SIGIR2012勉強会 23 Learning to Ranksleepy_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復々習レーン#2 2.3.6 - 2.3.7
PRML復々習レーン#2 2.3.6 - 2.3.7PRML復々習レーン#2 2.3.6 - 2.3.7
PRML復々習レーン#2 2.3.6 - 2.3.7sleepy_yoshi
 
SIGIR2011読み会 3. Learning to Rank
SIGIR2011読み会 3. Learning to RankSIGIR2011読み会 3. Learning to Rank
SIGIR2011読み会 3. Learning to Ranksleepy_yoshi
 
PRML復々習レーン#11 前回までのあらすじ
PRML復々習レーン#11 前回までのあらすじPRML復々習レーン#11 前回までのあらすじ
PRML復々習レーン#11 前回までのあらすじsleepy_yoshi
 
TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++
TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++
TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++sleepy_yoshi
 
PRML復々習レーン#15 前回までのあらすじ
PRML復々習レーン#15 前回までのあらすじPRML復々習レーン#15 前回までのあらすじ
PRML復々習レーン#15 前回までのあらすじ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
 
計算論的学習理論入門 -PAC学習とかVC次元とか-
計算論的学習理論入門 -PAC学習とかVC次元とか-計算論的学習理論入門 -PAC学習とかVC次元とか-
計算論的学習理論入門 -PAC学習とかVC次元とか-sleepy_yoshi
 
CVIM#11 3. 最小化のための数値計算
CVIM#11 3. 最小化のための数値計算CVIM#11 3. 最小化のための数値計算
CVIM#11 3. 最小化のための数値計算sleepy_yoshi
 
SMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装するSMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装するsleepy_yoshi
 
TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん
TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~んTokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん
TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~んsleepy_yoshi
 
DSIRNLP#1 ランキング学習ことはじめ
DSIRNLP#1 ランキング学習ことはじめDSIRNLP#1 ランキング学習ことはじめ
DSIRNLP#1 ランキング学習ことはじめsleepy_yoshi
 
SVM実践ガイド (A Practical Guide to Support Vector Classification)
SVM実践ガイド (A Practical Guide to Support Vector Classification)SVM実践ガイド (A Practical Guide to Support Vector Classification)
SVM実践ガイド (A Practical Guide to Support Vector Classification)sleepy_yoshi
 

Destaque (18)

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復々習レーン#7 前回までのあらすじ
PRML復々習レーン#7 前回までのあらすじPRML復々習レーン#7 前回までのあらすじ
PRML復々習レーン#7 前回までのあらすじ
 
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復々習レーン#10 前回までのあらすじ
PRML復々習レーン#10 前回までのあらすじPRML復々習レーン#10 前回までのあらすじ
PRML復々習レーン#10 前回までのあらすじ
 
SIGIR2012勉強会 23 Learning to Rank
SIGIR2012勉強会 23 Learning to RankSIGIR2012勉強会 23 Learning to Rank
SIGIR2012勉強会 23 Learning to Rank
 
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復々習レーン#2 2.3.6 - 2.3.7
PRML復々習レーン#2 2.3.6 - 2.3.7PRML復々習レーン#2 2.3.6 - 2.3.7
PRML復々習レーン#2 2.3.6 - 2.3.7
 
SIGIR2011読み会 3. Learning to Rank
SIGIR2011読み会 3. Learning to RankSIGIR2011読み会 3. Learning to Rank
SIGIR2011読み会 3. Learning to Rank
 
PRML復々習レーン#11 前回までのあらすじ
PRML復々習レーン#11 前回までのあらすじPRML復々習レーン#11 前回までのあらすじ
PRML復々習レーン#11 前回までのあらすじ
 
TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++
TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++
TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++
 
PRML復々習レーン#15 前回までのあらすじ
PRML復々習レーン#15 前回までのあらすじPRML復々習レーン#15 前回までのあらすじ
PRML復々習レーン#15 前回までのあらすじ
 
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
 
計算論的学習理論入門 -PAC学習とかVC次元とか-
計算論的学習理論入門 -PAC学習とかVC次元とか-計算論的学習理論入門 -PAC学習とかVC次元とか-
計算論的学習理論入門 -PAC学習とかVC次元とか-
 
CVIM#11 3. 最小化のための数値計算
CVIM#11 3. 最小化のための数値計算CVIM#11 3. 最小化のための数値計算
CVIM#11 3. 最小化のための数値計算
 
SMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装するSMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装する
 
TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん
TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~んTokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん
TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん
 
DSIRNLP#1 ランキング学習ことはじめ
DSIRNLP#1 ランキング学習ことはじめDSIRNLP#1 ランキング学習ことはじめ
DSIRNLP#1 ランキング学習ことはじめ
 
SVM実践ガイド (A Practical Guide to Support Vector Classification)
SVM実践ガイド (A Practical Guide to Support Vector Classification)SVM実践ガイド (A Practical Guide to Support Vector Classification)
SVM実践ガイド (A Practical Guide to Support Vector Classification)
 

SEXI2013読み会: Adult Query Classification for Web Search and Recommendation