Upload
sleepyyoshi
View
2.505
Download
2
Embed Size (px)
DESCRIPTION
2014-09-23 KDD2014勉強会の発表資料 https://atnd.org/events/55940
Citation preview
KDD2014勉強会:
Large-Scale High-Precision Topic Modeling on Twitter
2014-09-23Yoshihiko Suhara@sleepy_yoshi
※発表後、訓練データの獲得方法について修正しました
Large-Scale High-Precision Topic Modeling on Twitterby Shuang Yang, Alek Kolcz, Andy Schlaikjer, Pankaj Gupta (Twitter, Inc.)
• 大量に蓄積されるTweetに対して、あらかじめ用意した300+種類の “トピック” 付与問題をマルチラベル問題として解く– いわゆる “Topic Model” な話ではない
– 本発表ではトピックの代わりにタグと表現
• 様々な工夫– 訓練データの自動獲得
– 高速な特徴抽出
– 閾値のチューニング
– タグ階層構造の利用
– など
• Precision 93% (37% coverage) のタグ割り当て精度を達成
Twitterで実運用可能なレベルの高Precisionのタグ割り当て機能を実現
1枚概要Industry paper
2※ Recall 重視の方法については別のpaperがunder review中
システム全体図 (1/6)
3
システム全体図 (2/6)訓練データは半自動獲得します
4
システム全体図 (3/6)各タグごとに2値分類器 (Logistic Regression) を用意します
5
システム全体図 (4/6)閾値のチューニングを行います
6
システム全体図 (5/6)ユーザとのインタラクティブなインタフェースを用いて誤り事例に対してモデルを修正する仕組みを導入しています
7
システム全体図 (6/6)300+種類のラベルを付与するのは大変なので、タグ毎に{-1,+1} の2値ラベル付与をクラウドワーカに依頼
8
[Industryぽいところ]パラメータチューニングと評価に重点的に人手を利用
タクソノミの構築ODPやFreebaseをベースに階層構造を持ったトピック分類体系を人手で修正・構築します
• 最大6階層、300+のトピック
階層構造の情報は分類器構築に利用 (後述)9
テキスト分類を用いたタグ判定様々な工夫をこらしています
• 4.1 Chatter detection• 4.2 Training data acquisition• 4.3 Feature extraction• 4.4 Model pretraining• 4.5 Relational regularization• 4.6 Model calibration• 4.7 Quality evaluation• 4.8 Diagnosis and corrective learning• 4.9 Model fine-tuning
10
テキスト分類を用いたタグ判定
• 4.1 Chatter detection– 単なる「おしゃべり」Tweetの除去 ([3]を利用)
• 4.2 Training data acquisition• 4.3 Feature extraction• 4.4 Model pretraining• 4.5 Relational regularization• 4.6 Model calibration• 4.7 Quality evaluation• 4.8 Diagnosis and corrective learning• 4.9 Model fine-tuning
11
テキスト分類を用いたタグ判定
• 4.1 Chatter detection• 4.2 Training data acquisition• 4.3 Feature extraction• 4.4 Model pretraining• 4.5 Relational regularization• 4.6 Model calibration• 4.7 Quality evaluation• 4.8 Diagnosis and corrective learning• 4.9 Model fine-tuning
12
4.2 Training data acquisitionCo-training + PU-learning ベースの枠組みで正例、負例を判定し、訓練データを半自動獲得します
• Co-training– 特徴空間を2つに分けてそれぞれの特徴空間で分類器を構築し、一方の予
測結果を反映してもう一方の分類器のラベルありデータとして用いる半教師あり学習
– (1) URLベースの分類器 + (2) Tweet本文の分類器
• PU-learning– 現在のモデルで確信度が閾値以下の事例を負例とみなす半教師あり学習
13
URLを含むTweetのみを対象※一部ラベルあり
※タグごとに2値分類器を用意する方法では co-training で正例を増やせれば、他タグの負例とみなせる安心して負例とみなせる事例を準備するためにPU-learningを使っているものと思われる
4.3 Feature extraction単語unigramよりも高速な特徴抽出方法を利用します
• Binary hashed byte 4gram (Byte4gram)
– 訓練データ獲得ではTweet 分類に利用
– 4byteサイズのsliding windowをd次元にハッシュ• d=1,000,081 (?!)
• Hashed unigram frequency (Unigram-logTF-norm)
– 訓練データ獲得ではURL 分類に利用
– 1 characterをハッシュ値に変更して、頻度の対数を利用
14
[補足] Unigram-logTF-norm の計算方法SpeedyFx [13] を利用
• 文字列をそのまま使うと文字列一致の判定コストが高い
15
4.4 Model pretrainingタグ数だけLRを用意して閾値によってタグ付与を判定する方法を採用
• 正則化項にはElastic Net regularizer (L1+L2) を利用
正則化項 尤度
※ 300クラスのMLRって…正規化項 (分母計算) で死ぬ ICML2013読み会の論文
16
4.4 Model pretrainingタグ数だけLRを用意して閾値によってタグ付与を判定する方法を採用
• 正則化項にはElastic Net regularizer (L1+L2) を利用
正則化項 尤度
※ 300クラスのMLRって…正規化項 (分母計算) で死ぬ ICML2013読み会の論文
(Twitter社内部のライブラリをひととおり自慢し、速度が大切であることを述べたあとに)
最適化にはバッチ学習を採用と記述17?!
テキスト分類を用いたタグ判定
• 4.1 Chatter detection• 4.2 Training data acquisition• 4.3 Feature extraction• 4.4 Model pretraining• 4.5 Relational regularization• 4.6 Model calibration• 4.7 Quality evaluation• 4.8 Diagnosis and corrective learning• 4.9 Model fine-tuning
18
4.5 Relational regularizationトピック分類体系の階層構造をパラメータ学習に利用
• (1) Label expansion– 対象タグの{先祖、子孫}から負例を選択しない– ※タグごとに2値分類器を用意している
• (2) Cost-sensitive learning
– 𝔼 𝑒 𝑦, 𝑦 𝑥 = 𝑐=1𝑘 𝑒𝑦𝑐𝑝( 𝑦 = 𝑐|𝑥)
• 𝑒𝑦𝑐にはtree distance を利用
• (3) Hierarchical regularization
– ペナルティ項を追加:1
2𝜂 𝑐=1
𝑘 𝑤𝑐 − 𝑤parent 𝑐 2
2
性能はどれも同じくらいだったので今回は(1)を採用19
4.6 Model calibrationクラウドワーカの判定結果を使って各タグの分類器の閾値を決定します
事前設定の
lower bound
𝑃(𝑦
𝑐|𝒙
)
0
1
Crowd workers
(1) 確信度毎に箱詰め 20
4.6 Model calibrationクラウドワーカの判定結果を使って各タグの分類器の閾値を決定します
事前設定の
lower bound
𝑃(𝑦
𝑐|𝒙
)
0
1
Crowd workers
1.00
0.86
0.72
0.69
0.625
ラベル付与
Precision
(1) 確信度毎に箱詰め (2) 判定結果から閾値を決定 21
4.6 Model calibrationクラウドワーカの判定結果を使って各タグの分類器の閾値を決定します
事前設定の
lower bound
𝑃(𝑦
𝑐|𝒙
)
0
1
Crowd workers
1.00
0.86
0.72
0.69
0.625
ラベル付与 Precisionの達成目標を
超える最も小さい閾値を選択
Precision
(1) 確信度毎に箱詰め (2) 判定結果から閾値を決定 22
テキスト分類を用いたタグ判定
• 4.1 Chatter detection• 4.2 Training data acquisition• 4.3 Feature extraction• 4.4 Model pretraining• 4.5 Relational regularization• 4.6 Model calibration• 4.7 Quality evaluation• 4.8 Diagnosis and corrective learning• 4.9 Model fine-tuning
23
4.8 Diagnosis and corrective learningアノテータに判定を要求し、corrective learningに基づいて重み判定します
24
補足: Corrective learning [Raman+ 12]特徴空間の排他的な領域ごとにモデルを用意し、各モデルは当該領域に含まれる訓練データのみを用いて生成
• 領域ごとにモデルを用意する分割統治モデル (学習アルゴリズム、領域関数は与える)
• 追加データは対象領域のモデルのみ更新する
モデル分割の話
してなかったけどなぁ…
25
テキスト分類を用いたタグ判定
• 4.1 Chatter detection• 4.2 Training data acquisition• 4.3 Feature extraction• 4.4 Model pretraining• 4.5 Relational regularization• 4.6 Model calibration• 4.7 Quality evaluation• 4.8 Diagnosis and corrective learning• 4.9 Model fine-tuning
26
4.9 Model fine-tuning全データを使って構築したモデル𝑤0を事前分布としてきれいな訓練データでモデルを学習します
• 今回は𝛿はCVで決定
27
• きれいな訓練データの作り方については詳細記述なし
まとめ300+種類のタグを90%+のPrecisionで推定可能なシステムを構築しました
• 90%+ のprecisionを達成– Precision 93%– Tweet Coverage 37%– Topic Coverage 81%
• 本論文で使用したテクニック– Co-training– PU-learning– Elastic Net regularizer– Extreme Fast Feature Extraction– Threshold calibration– Corrective learning
28
おしまい
29