PyDataTokyo201-05-22
-
Upload
yuta-kashino -
Category
Technology
-
view
310 -
download
1
Transcript of PyDataTokyo201-05-22
PYDATA TOKYO2015-05-22
LDA IN PYTHON
1
Wednesday, June 3, 15
WHO•バクフー株式会社 柏野 雄太
•大規模リアルタイムデータのPPPP (P4)
• preprocess /process /persistence /providing
Wednesday, June 3, 15
WHAT IS LDA
• Latent Dirichlet Allocation
•文章群から教師なしで「トピック」を探し出す
•トピック:複数単語のまとまり
•トピックは単語の分布関数を持つ
•文章はトピックの分布関数を持つ
w
ww
ww
w
w1 w2 w3 w4
�k
k1
トピック毎単語分布
z1 z2 z3
ww
wwww
z1z2
✓d
ドキュメント毎トピック分布
Wednesday, June 3, 15
WHAT IS LDA
•グラフィカルモデル
�✓d zd,i wd,i �kN K
M
zd,i ⇠ Multi(✓d)
wd,i ⇠ Multi(�zd,i) �k ⇠ Dirichlet(�)
↵
✓d ⇠ Dirichlet(↵)
z1 z2 z3ww w
w
w
w
wwww
z1z2
✓d
ドキュメント毎トピック分布
w
ww
ww
w
w1 w2 w3 w4
�k
k1
トピック毎単語分布
Wednesday, June 3, 15
WHAT IS LDA•何をするの?
w1 w2 w3 w4 w5 w6
w7 w8...LDA
w
ww
ww
ww
w
w
ww
w ww
w
w
w
ww
ww
w
w w
w
ww
w w
ww
w
w
ww
ww
w
w1 w2 w3 w4
�k
k1
k2k1
k3k4
z1 z2 z3
www w
w
w
w
wwww
z1z2
✓d
単語をトピック別にクラスタリング
トピック毎単語分布
ドキュメント毎トピック分布ドキュメント群
Wednesday, June 3, 15
WHAT IS LDA•パイプライン
w1 w2 w3 w4 w5 w6
w7 w8...LDA
w
ww
ww
ww
w
w
ww
w ww
w
w
w
ww
ww
w
w w
w
ww
w w
ww
w
w
ww
ww
w
w1 w2 w3 w4
�k
k1
k2k1
k3k4
z1 z2 z3
www w
w
w
w
wwww
z1z2
✓d
単語をトピック別にクラスタリング
トピック毎単語分布
ドキュメント毎トピック分布ドキュメント群
tokenize vectorizing modeling
word dictionary corpus BoW
Variational Bayes
Gibbs sampling
word id: word1: 政治2: 自民3: 総理
[(word id, freq)…][(1, 2), (3, 2), …][(1, 19), (4, 1), …]...
Wednesday, June 3, 15
LDA IN PYTHON 1/7
• lda-c Blei et al. 2003
• https://www.cs.princeton.edu/~blei/lda-c/index.html
•実装: C
•モデル: 変分ベイズ
•全ての始まり・コーパス固定/辞書固定
Wednesday, June 3, 15
LDA IN PYTHON 2/7
• onlineldavb.py Hoffman et al. 2010
• http://www.cs.princeton.edu/~blei/downloads/onlineldavb.tar
• model: 変分ベイズEM
•オンラインLDA
•メモリ効率はいいが,遅い.
Wednesday, June 3, 15
LDA IN PYTHON 3/7
• gensim
• http://radimrehurek.com/gensim/
• Hoffman+のpython版オンラインLDAをラッピング, LSIも実装している
• Pyroによる分散処理が可能
•基本遅い.辞書・コーパスを更新できない
Wednesday, June 3, 15
LDA IN PYTHON 4/7
• Vowpal_Wabbit /w pyvw
• Hoffman自身がonlineldavb.pyをC++で実装
•激速い
• pyvw経由でpythonから使える
•ただin/outのファイルが特殊
Wednesday, June 3, 15
LDA IN PYTHON 5/7
• lda
• http://pythonhosted.org/lda/
• scikit-learnライクなインタフェース
• collapsed Gibbsサンプリング
•野良LDA的…
Wednesday, June 3, 15
LDA IN PYTHON 6/7
• dato graphlab
• https://dato.com/products/create/docs/generated/graphlab.topic_model.create.html
• C++ /w pythonインタフェース
• collapesed Gibbsサンプリング
• graphlabの仕組みで並列化できる
Wednesday, June 3, 15
LDA IN PYTHON 7/7
•大量の野良実装
•自分も辞書・コーパスを更新できるオンラインLDA
を実装
• https://bitbucket.org/yutakashino/nhkssf4w/src/cd1ffc7f46ce/streamlda/?at=master
Wednesday, June 3, 15
LDA IN X
• MALLET (Java): 階層LDAもある
• Stanford Topic Modeling Toolbox (scala): LDA and Labeled LDA, Excelから使える
• Wang&Blei 2009 class-slda (c++)
• GibbsLDA ++ (c++)
• Multithreaded LDA (c)
• ...
Wednesday, June 3, 15