Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
KDD2014勉強会: Large-Scale High-Precision Topic Modeling on Twitter 
2014-09-23 
Yoshihiko Suhara 
@sleepy_yoshi 
※発表後、訓練データの獲得方法について修正しました
Large-Scale High-Precision Topic Modeling on Twitterby ShuangYang, 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 
–ペナルティ項を追加: 12 휂 푐=1 푘푤푐−푤parent푐22 
性能はどれも同じくらいだったので今回は(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

More Related Content

KDD2014勉強会: Large-Scale High-Precision Topic Modeling on Twitter

  • 1. KDD2014勉強会: Large-Scale High-Precision Topic Modeling on Twitter 2014-09-23 Yoshihiko Suhara @sleepy_yoshi ※発表後、訓練データの獲得方法について修正しました
  • 2. Large-Scale High-Precision Topic Modeling on Twitterby ShuangYang, 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中
  • 8. システム全体図(6/6) 300+種類のラベルを付与するのは大変なので、タグ毎に {-1,+1} の2値ラベル付与をクラウドワーカに依頼 8 [Industryぽいところ] パラメータチューニングと 評価に重点的に人手を利用
  • 9. タクソノミの構築 ODPやFreebaseをベースに階層構造を持ったトピック分類体系 を人手で修正・構築します •最大6階層、300+のトピック 階層構造の情報は分類器構築に利用(後述) 9
  • 10. テキスト分類を用いたタグ判定 様々な工夫をこらしています •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
  • 11. テキスト分類を用いたタグ判定 •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
  • 12. テキスト分類を用いたタグ判定 •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
  • 13. 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を使っているものと思われる
  • 14. 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
  • 15. [補足] Unigram-logTF-norm の計算方法 SpeedyFx [13] を利用 • 文字列をそのまま使うと文字列一致の判定コストが高い 15
  • 16. 4.4 Model pretraining タグ数だけLRを用意して閾値によってタグ付与を判定する方法を採用 •正則化項にはElastic Net regularizer(L1+L2) を利用 正則化項 尤度 ※300クラスのMLRって… 正規化項(分母計算) で死ぬ ICML2013読み会の論文 16
  • 17. 4.4 Model pretraining タグ数だけLRを用意して閾値によってタグ付与を判定する方法を採用 •正則化項にはElastic Net regularizer(L1+L2) を利用 正則化項 尤度 ※300クラスのMLRって… 正規化項(分母計算) で死ぬ ICML2013読み会の論文 (Twitter社内部のライブラリをひととおり自慢し、速度が大切であることを述べたあとに) 最適化にはバッチ学習を採用と記述 17 ?!
  • 18. テキスト分類を用いたタグ判定 •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
  • 19. 4.5 Relational regularization トピック分類体系の階層構造をパラメータ学習に利用 •(1) Label expansion –対象タグの{先祖、子孫}から負例を選択しない –※タグごとに2値分類器を用意している •(2) Cost-sensitive learning –피푒푦, 푦푥= 푐=1 푘푒푦푐푝( 푦=푐|푥) •푒푦푐にはtree distance を利用 •(3) Hierarchical regularization –ペナルティ項を追加: 12 휂 푐=1 푘푤푐−푤parent푐22 性能はどれも同じくらいだったので今回は(1)を採用 19
  • 20. 4.6 Model calibration クラウドワーカの判定結果を使って各タグの分類器の閾値を 決定します 事前設定の lower bound 푃(푦푐 |풙) 0 1 Crowd workers (1) 確信度毎に箱詰め20
  • 21. 4.6 Model calibration クラウドワーカの判定結果を使って各タグの分類器の閾値を 決定します 事前設定の lower bound 푃(푦푐 |풙) 0 1 Crowd workers 1.00 0.86 0.72 0.69 0.625 ラベル付与 Precision (1) 確信度毎に箱詰め(2) 判定結果から閾値を決定21
  • 22. 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
  • 23. テキスト分類を用いたタグ判定 •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
  • 24. 4.8 Diagnosis and corrective learning アノテータに判定を要求し、corrective learningに基づいて 重み判定します 24
  • 25. 補足: Corrective learning [Raman+ 12] 特徴空間の排他的な領域ごとにモデルを用意し、各モデルは 当該領域に含まれる訓練データのみを用いて生成 • 領域ごとにモデルを用意する分割統治モデル(学習アルゴリズム、領域 関数は与える) • 追加データは対象領域のモデルのみ更新する モデル分割の話 してなかったけど なぁ… 25
  • 26. テキスト分類を用いたタグ判定 •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
  • 27. 4.9 Model fine-tuning 全データを使って構築したモデル푤0を事前分布として きれいな訓練データでモデルを学習します • 今回は훿はCVで決定 27 • きれいな訓練データの作り方については詳細記述なし
  • 28. まとめ 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