Your SlideShare is downloading. ×
ディープラーニングチュートリアル 応用編
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

ディープラーニングチュートリアル 応用編

643
views

Published on

http://adtech.cyberagent.io/pr/?p=1410

http://adtech.cyberagent.io/pr/?p=1410

Published in: Technology

0 Comments
15 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
643
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
8
Comments
0
Likes
15
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 大規模データから単語の 意味表現学習-word2vec ボレガラ ダヌシカ 博士(情報理工学) 英国リバープール大学計算機科学科准教授
  • 2. 2 2005 2008~10 学部 修士 博士 助教/講師 東京大学 工学部 東京大学大学院情報理工学系 文書自動要約における 重要文順序学習 同姓同名抽出 別名抽出 属性類似性計測 関係類似性計測 評判分類の分野適応 関係抽出の分野適応 進化計算を用いたWeb 検索結果順序学習 ソーシャルネットワーク の関係予測 対話型協調 Web検索エンジン 潜在関係検索 エンジン 自己紹介 専門分野:自然言語処理, 機械学習,データマイニング 2006~07 2010~13 2010~現在 准教授 リバープール大学 深層学習
  • 3. 今回の講演の背景 •深層学習に関する活動 •2014年9月に深層学習のチュートリアルをCyberAgent社 で行った. •「深層学習」に関する書籍を分担執筆しており,今年の夏ご ろ販売予定. •研究活動 •意味的関係に関する意味表現学習 •国際会議AAAI 15(American Association for Artificial Intelligence)にて口頭発表. •人工知能分野の最高峰の国際会議 3
  • 4. 単語の意味とは? •語彙意味論(lexical semantics) •数学的には語彙意味は「演算」である. •自然言語の最小の意味単位は単語であり,単語の意 味さえ表現しておけば,句(phrase),文(sentence), 文書(document)の意味が構築できる. •構成的意味論(compositional semantics) 4
  • 5. 単語自身,意味を持っているか 無いよ. 周辺に現れる単語によって決まるだけ J. R. Firth Image credit: www.odlt.org 5 “You shall know a word by the company it keeps”
  • 6. 問1 •X は持ち歩く可能で,相手と通信ができて,ネッ トも見れて,便利だ.X は次の内どれ? •犬 •飛行機 •iPhone •バナナ 6
  • 7. でもそれは本当? •だって辞書は単語の意味を定義しているじゃないか •辞書も他の単語との関係を述べることで単語の意 味を説明している. •膨大なコーパスがあれば周辺単語を集めてくるだけ で単語の意味表現が作れるので自然言語処理屋には 嬉しい. •practicalな意味表現手法 •色んなタスクに応用して成功しているので意味表現 として(定量的に)は正しい 7
  • 8. 意味表現を作るアプローチ •分布的意味表現 •Distributional Semantic Representations •単語xをコーパス中でその周辺に現れる全ての単語の共起頻度分布を持って 表す. •高次元,スパース •古典的なアプローチ •分散的意味表現 •Distributed Semantic Representations •有数(10 1000)の次元/分布/クラスターの組み合わせ/混合として単語xの 意味を表す. •低次元,密 •深層学習/表現学習ブームで最近人気 8
  • 9. 意味表現を作るアプローチ •分布的意味表現 •Distributional Semantic Representations •単語xをコーパス中でその周辺に現れる全ての単語の共起頻度分布を持って 表す. •高次元,スパース •古典的なアプローチ •分散的意味表現 •Distributed Semantic Representations •有数(10 1000)の次元/分布/クラスターの組み合わせ/混合として単語xの 意味を表す. •低次元,密 •深層学習/表現学習ブームで最近人気 9
  • 10. 分布的意味表現構築 •「リンゴ」の単語の意味表現を作りなさい. •S1=リンゴは赤い. •S2=リンゴは美味しい. •S3=青森県はリンゴの生産地として有名である. 10
  • 11. 分布的意味表現構築 •「リンゴ」の単語の意味表現を作りなさい. •S1=リンゴは赤い. •S2=赤いリンゴは美味しい. •S3=青森県はリンゴの生産地として有名である. リンゴ=[(赤い,2),(美味しい,1),(青森県,1),(生産 地,1),(有名,1)] 11
  • 12. 応用例:意味的類似性計測 •「リンゴ」と「みかん」の意味的類似性を計測したい. •まず,「みかん」の意味表現を作ってみる. •S4=みかんはオレンジ色. •S5=みかんは美味しい. •S6=兵庫県はみかんの生産地として有名である. 12 みかん=[(オレンジ色,1),(美味しい,1),(兵庫県,1),(生産 地,1),(有名,1)]
  • 13. 「リンゴ」と「みかん」 13 リンゴ=[(赤い,2),(美味しい,1),(青森県,1),(生産 地,1),(有名,1)] みかん=[(オレンジ色,1),(美味しい,1),(兵庫県,1),(生産 地,1),(有名,1)] 両方の単語に対し,「美味しい」,「生産地」,「有名」と いった共通な文脈があるのでリンゴとみかんはかなり 意味的に似ているといえる. 定量的に比較したければ集合同士の重なりとしてみれば良い Jaccard係数 = ¦リンゴ AND みかん¦ / ¦リンゴ OR みかん¦ ¦リンゴ AND みかん¦ = ¦{美味しい,生産地,有名}¦ = 3 ¦リンゴ OR みかん¦ =¦{赤い,美味しい,青森県,生産地,有名,オレンジ色,兵庫県}¦ = 7 sim(リンゴ,みかん) = 3/7 = 0.4285
  • 14. 共起行列 •コーパス全体で単語xとその単語の周辺に現れる単語(文脈/コンテキス ト)をcとすると,(w,c)の共起頻度を要素とする行列を構築できる. •列 = 意味表現構築を対象とする単語x •行 = 文脈となる単語c 14 リンゴ みかん 赤い 美味しい 青森県 生産地 有名 オレンジ色 兵庫県 2 1 1 1 1 0 0 0 1 0 1 1 1 1
  • 15. 大きな共起による問題 •ナマの共起頻度を信頼できるか. •Googleヒット件数 •(car, automobile) = 11,300,000 •(car, apple) = 49,000,000 •では,carはautomobileよりappleに近いか? •何らかの重み付けが必要 15
  • 16. 共起頻度の重み付け手法 •沢山ありますが,それぞれの単語の出現頻度 h(x), h(y)と単語同士の共起頻度h(x,y)の関数で あることが殆ど •重み = f(h(x), h(y), h(x,y)) •有名な重み付け手法 •点情報量(pointwise mutual information) PMI(x, y) = log ✓ p(x, y) p(x)p(y) ◆ = log ✓ h(x, y)/N (h(x)/N) ⇥ (h(y)/N) ◆ 16
  • 17. その他の重み手法 •正点情報量(PPMI) [Turney+Pantel JAIR 10] •Positive pointwise mutual information •PPMI(x,y) = max(0, PMI(x,y)) •移動点情報量(SPMI) [Levy+Goldberg NIPS 14] •Shifted pointwise mutual information •SPMI(x,y) = PMI(x,y) - log(k) •kは定数 17
  • 18. ゼロ共起による問題 •どんなに大きなコーパスを持ってきても同一文脈 で共起しない単語がある. •単語xとyが共起しないのは •xとyの間に関連性がないためか,それとも •タマタマ(コーパスが小さかったから)なのか不明 •それぞれの単語の意味表現にゼロが並ぶとANDが 更にゼロになりやすい. •どうすれば,ゼロの数を減らすことができるか. 18
  • 19. 次元削減/低次元射影 •結局何らかの空間で意味を表せばよい.作った意味表現を使って正確に類 似度計測できれば良い. •文脈の次元を減らすことでゼロとなっていたものをゼロでない値で埋める. 19 リンゴ みかん 赤い 美味しい 青森県 生産地 有名 オレンジ色 兵庫県 2 1 1 1 1 0 0 0 1 0 1 1 1 1 リンゴ みかん 次元1 0.3 0.2 1 1.2 -0.1 0.3 次元2 次元3 行の数が変わらないので元々あった単語が全てに対して 意味表現が構築される.列の数が減る(次元削減)
  • 20. 次元削減手法 •特異値分解(SVD) •singular value decomposition •A = UDV T , 低次元射影 UあるいはUD •主成分分析(PCA) •principal component analysis •非負行列分解(NMF) •non-negative matrix factorization •A = WH •既存のライブラリが多数存在する •numpy, scipy, sklearnなど 20
  • 21. 細かい工夫が多数 •文脈として何を選ぶか •文全体 (sentence-level co-occurrences) •前後のn単語 (proximity window) •係り受け関係にある単語 (dependencies) •文脈の距離によって重みをつける. •遠ければその共起の重みを距離分だけ減らす •などなど 21
  • 22. 意味表現を作るアプローチ •分布的意味表現 •Distributional Semantic Representations •単語xをコーパス中でその周辺に現れる全ての単語の共起頻度分布を持って 表す. •高次元,スパース •古典的なアプローチ •分散的意味表現 •Distributed Semantic Representations •有数(10 1000)の次元/分布/クラスターの組み合わせ/混合として単語xの 意味を表す. •低次元,密 •深層学習/表現学習ブームで最近人気 22
  • 23. 局所的表現 vs. 分散表現 23 •  Clustering,!NearestJ Neighbors,!RBF!SVMs,!local! nonJparametric!density! es>ma>on!&!predic>on,! decision!trees,!etc.! •  Parameters!for!each! dis>nguishable!region! •  #!dis>nguishable!regions! linear!in!#!parameters! #2 The need for distributed representations Clustering! 16! •  Factor!models,!PCA,!RBMs,! Neural!Nets,!Sparse!Coding,! Deep!Learning,!etc.! •  Each!parameter!influences! many!regions,!not!just!local! neighbors! •  #!dis>nguishable!regions! grows!almost!exponen>ally! with!#!parameters! •  GENERALIZE+NON5LOCALLY+ TO+NEVER5SEEN+REGIONS+ #2 The need for distributed representations Mul>J! Clustering! 17! C1! C2! C3! input! ある点のラベルを決める ときに近隣する数個の点 しか関与しない. 3個のパーテションで 8個の領域が定義される. (2nの表現能力) slide credit: Yoshua Bengio
  • 24. 分散表現の表現能力 24 美味しさ 赤さ 青森県らしさ 有名度 兵庫県 らしさ オレンジ色度
  • 25. 分散表現の表現能力 25 美味しさ 赤さ 青森県らしさ 有名度 兵庫県 らしさ オレンジ色度 リンゴ
  • 26. 分散表現の表現能力 26 美味しさ 赤さ 青森県らしさ 有名度 兵庫県 らしさ オレンジ色度 みかん
  • 27. 分散表現を学習する •分布表現はコーパスから数え上げた •counting-based approach •ボトムアップ型 •一方,分散表現ではまず,各単語xの意味表現がd次元のベクトルで 表させると仮定し,そのベクトルの要素の値をコーパスから学習す る. •prediction-based approach •xの意味表現ベクトルv(x)を使って,コーパス中でxの周辺に出現 する単語cを予測できるかどうかで学習する. •トップダウン型 •次数dを固定.最初にランダムベクトルで初期化する. 27
  • 28. word2vec •word2vecは単語の分散意味表現を学習するための ツールであり,次の2つの手法が実装されている. •skip-gram(スキップグラム)モデル •continuous bag-of-words(CBOW)(連続単語 集合)モデル 28
  • 29. n-gram vs. skip-gram •連続する単語列のことをn-gram(n-グラム)と呼 ばれている. •例:I went to school •bi-gram = I+went, went+to, to+school •スキップグラムでは連続していなくてもOK •skip bi-gramの例: I+to, went+school 29
  • 30. skip-gramモデル 30 私はみそ汁とご飯を頂いた
  • 31. skip-gramモデル 31 私はみそ汁とご飯を頂いた 私 は みそ汁 と ご飯 を 頂いた 形態素解析 各単語に対してd次元のベクトルが2個割り当てられている 単語xが意味表現学習対象となる場合のベクトルを表現ベクトル v(x)といい,赤で示す. xの周辺で現れる文脈単語cを文脈ベクトルv(c)で表し,青で示す.
  • 32. skip-gramモデル 32 私はみそ汁とご飯を頂いた 私 は みそ汁 と ご飯 を 頂いた 形態素解析 v(x) u(c) 例えば「みそ汁」の周辺で「ご飯」が出現するかどうか を予測する問題を考えよう.
  • 33. skip-gramモデル 33 私はみそ汁とご飯を頂いた 私 は みそ汁 と ? を 頂いた 形態素解析 v(x) u(c) c=ご飯, c =ケーキ とすると (x=みそ汁, c=ご飯)という 組み合わせの方が,(x=みそ汁, c =ケーキ)より日本語として もっともらしいという「意味」を反映させたv(x), u(c), u(c ) を学習したい.
  • 34. skip-gramモデル 34 私はみそ汁とご飯を頂いた 私 は みそ汁 と ? を 頂いた 形態素解析 v(x) v(c) 提案1 この尤もらしさをベクトルの内積で定義しましょう. score(x,c) = v(x)Tu(c)
  • 35. skip-gramモデル 35 私はみそ汁とご飯を頂いた 私 は みそ汁 と ? を 頂いた 形態素解析 v(x) u(c) 提案2 しかし,内積は(- ,+ )の値であり,正規化されていない ので,都合が悪い.全ての文脈単語c に関するスコアで 割ることで確率にできる.
  • 36. 対数双線型 •log-bilinear model 36 xの周辺でcが 出現する確率 xとcの共起しやすさ 語彙集合(V)に含まれる全ての単語 c とxが共起しやすさ [Mnih+Hinton ICML’07] p(c|x) = exp(v(x)> u(c)) P c02V exp(v(x)>u(c0)) 学習方法は ロジスティック回帰と 似ている.vとuの どちらか片方を固定すれば もう片方に関し, ロジスティック回帰を 解いているのと同様. one-vs-restの学習.
  • 37. 双線型とは? •ある2変数関数f(x,y)がxに対しても,yに対しても線形である場合fは双線型で あると定義する. •線形性 •f(ax + b) = af(x) + b •双線型性 •f(ax+b,y) = af(x,y) + f(b,y) •双線型関数の例 •f(x,y) = x + y + xy •この関数はxとyどれか一方を固定した場合,片方に関して線形である(従って, 双線型である)が,xとyについて同時に線形ではないことに注意. •対数を取った後に線形になる = 対数線形(log-linear) •対数を取った後に双線型になる=対数双線型(log-bilinear) 37
  • 38. 連続単語集合モデル(CBOW) •周辺の単語を全てを使って,対象単語を予測する. 38 私 は みそ汁 と ご飯 を 頂いた u(ci+1) u(ci+2) u(ci+3) u(ci+4)u(ci-1)u(ci-2) v(x=ci) 文脈を前後の2単語に限定すれば p(x¦ci-1, ci-2, ci+1, ci+2) p(みそ汁¦私,は,と,ご飯) CBOWはskip-gramよりも表現能力が高いモデルだが,複数の事象に条 件付けられているので学習にはより大きなデータが必要.そのため, CBOWはskip-gramより若干精度が悪い.
  • 39. 工夫 •log-bilinearモデルの分母の計算が重たい •全語彙集合上でのexpの和を計算を要する •工夫その1 •負例サンプリング(negative sampling) •工夫その2 •階層的ソフトマックス(hierarchical softmax) 39
  • 40. 負例サンプリング 40 ロジスティック回帰の積ソフトマックス 正例 サンプリングした負例 Noise contrastive estimation [Mnih+Hinton ICML 12] どうやってサンプリングするか p(unigram)0.75 c p(c)0.75 コーパス中のそれぞれの単語をラベル として多値分類器を学習するのと等価 p(c|x) = exp(v(x)> u(c)) P c02V exp(v(x)>u(c0)) ⇡ (v(x)> u(c)) Y c02S(x) ( v(x)> u(c0 )) 単語(unigram)
  • 41. 階層的ソフトマックス •単語の出現の代わりに意味クラスの出現を使うことで語彙の大きさを減らす. •全単語を階層構造(木)に当てはめ,ある単語の予測確率を根から単語(葉)に至るパ ス上の分岐点に対する確率(ロジスティック回帰でモデル化)の積として計算する. 41 根 具体物 抽象物 生物 無生物 動物 植物 犬 猫 1 0 1 1 1 0 0 0 p(猫)=p(根)p(具体物|根)p(生物|具体物)p(動物|生物)p(猫|動物) Path(猫)={(根,1), (具体物,1), (生物,1), (動物,1)} どのように木構造を作るか? クラスタリング,既存の語彙体系, ハフマン木 p(c|x) = exp(v(x)> u(c)) P c02V exp(v(x)>u(c0)) ⇡ Y (yi,zi)2Path(c)0 (ziv(x)> u(yi))
  • 42. 学習した意味表現の評価 •学習した意味表現はベクトルであり「目で見て 分かる」ものではない. •正解が存在しない.(no gold standard) •何らかのタスクに応用し,その性能向上度合いで 評価をしなければならない •間接的評価(extrinsic evaluation) •単語間の意味的類似性計測 •アナロジー問題を解く 42
  • 43. アナロジー問題 •「水」と「パイプ」の間の関係に似ているのは 次のうちどれか A. (電気,配線) B. (氷,蒸気) C. (ガソリン,配管) D. (パイプ,ロールケーキ) 43
  • 44. 意味的類似性による評価 •与えられた単語対に対し,人間(言語学者,Turker) がその2つの単語がどれくらい似ているかスコア 付けを行い,平均を求める. •人間が付けたスコアとアルゴリズムが出したス コア間の相関係数(Pearson/Spearman順序相関) を計測する. •人間との相関が高い類似度スコアを出力するア ルゴリズムの方が良い. 44
  • 45. アナロジーを解く •(man, king)ならば(woman, ?) •手順 •x = v(king) - v(man) + v(woman)を作る. •このxと語彙中の全ての単語とのコサイン類似 度を計測し,最大な類似度を持つ単語を答えと して返す. 45
  • 46. Global Vector Prediction (GloVe) •skip-gramとCBOWは一文単位でコーパスを処理し,意味表現学習していく. •オンライン学習 •大規模なコーパスからでも容易に(処理時間が文数と線形に増加,分割による並列化可能)できる. •一方,分布表現ではコーパス全体から共起行列を作っている. •コーパス全体の共起情報を使って意味表現学習ができないか. •Pennington+ EMNLP 14, Global Vectors for Word Representation 46 予測誤差 バイアス項 共起頻度 内積と共起の対数間の自乗誤差を最小化している. 理由:ベクトルの引き算で意味を特徴付けたい. ポイント:log(a/b) = log(a) - log(b) J = |V| X i,j f(Mi,j) v(xi)> v(xj) + bi + bj log Mi,j 2 頻度による重み
  • 47. 重み関数f 47 ex- the pen- for ˜wk (7) (1), m di- olu- ft in hich e di- the and 0.2 0.4 0.6 0.8 1.0 0.0 Figure 1: Weighting function f with ↵ = 3/4. The performance of the model depends weakly on the cutoff, which we fix to xmax = 100 for all our experiments. We found that ↵ = 3/4 gives a mod- est improvement over a linear version with ↵ = 1. Although we offer only empirical motivation for choosing the value 3/4, it is interesting that a sim- ilar fractional power scaling was found to give the 低頻度の共起を強調しないで欲しい(PMIでは問題) 頻度に対し,ほぼ線形に増加して欲しい. ある閾値以上の共起に対し,ほぼ定数になって欲しい. 条件: 3. f(x) should be relatively small for large va ues of x, so that frequent co-occurrences a not overweighted. Of course a large number of functions satisfy the properties, but one class of functions that we foun to work well can be parameterized as, f(x) = ⇢ (x/xmax)↵ if x < xmax 1 otherwise . (
  • 48. 行列分解との等価性 [Levy+Goldberg NIPS14] •(i,j)番目の要素をPMI(wi,cj) - log(k)とする行列 Mを構築し, SVDによってMを分解することで単 語の意味表現(U)とコンテキストの意味表現(V) を得ることができる. •kはskip-gramで正例:負例の個数の割合 48
  • 49. distributional vs. distributed •Baroni+ ACL14 compared PPMI+SVD vs. skip- gram/CBOW and reported •Don t count, predict! •ところで,Levy+Goldberg+TACL15は手法の違い よりもハイパパラメータが重要と示している. •PPMI+SVDでもGloVeやskip-gramを上回る (hyperparameterの値/設定によって)ことがある. •特に,GloVeよりskip-gramの方が,全ての場合にお いて良い. 49
  • 50. PPMI+SVDの問題点 •「正」の共起しか見ていない. •PPMIを計算するときに実際にxとcが共起して いるという情報を使うがxとc が共起していな いという情報を使っていない. •skip-gramは負例サンプリングでこの情報を把 握している. •GloVeもこの「負」の共起を使っていない. 50
  • 51. ツール及び学習済み表現の紹介 •Wikipedia,ウェブページ,新聞記事など様々なコーパスか ら学習された意味表現ベクトルが多数公開されている. • GloVe [http://nlp.stanford.edu/projects/glove] • word2vec [https://code.google.com/p/word2vec/] • その他多数 [http://metaoptimize.com/projects/wordreprs] • 自分のデータでGloVeとword2vecを学習し直すことも可能. • ソース(C)を上述のリンクからダウンロード可能. • 意味表現を学習する・ロードするためのPythonによるツール • gensim [https://radimrehurek.com/gensim/models/word2vec.html] 51
  • 52. 意味表現の応用 •単語レベルの応用 •関連語抽出,クエリ推奨,クエリ拡張 •文書レベルの応用 •広告とアドワードのマッチング •評判分析 •その他 •関係の分類 •機械翻訳 •分野適応 52
  • 53. 53 Thank You Danushka Bollegala www.csc.liv.ac.uk/~danushka danushka.bollegala@liverpool.ac.uk @Bollegala