Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

[DLHacks]Topic‑Aware Neu ral KeyphraseGenerationforSocial Media Language

634 views

Published on

2019/08/05
Deep Learning JP:
http://deeplearning.jp/hacks/

Published in: Technology
  • Be the first to comment

[DLHacks]Topic‑Aware Neu ral KeyphraseGenerationforSocial Media Language

  1. 1. 2019/08/05 DLHacks論文実装 Topic‑AwareNeuralKeyphrase GenerationforSocialMediaLanguage TakuyaMATSUDATE|@m3yrin ‑ 1
  2. 2. 論文 ‑ 2
  3. 3. PaperInfo Topic‑AwareNeuralKeyphraseGenerationforSocialMedia Language Wang+,2019 ACL2019Longpaper arXiv:https://arxiv.org/pdf/1906.03889.pdf ‑ 3
  4. 4. TL;DR seq2seqキーフレーズ生成モデル+NeuralTopicModelingを共同 して使用し、ソーシャルメディアの短く砕けた文章からのキーフレ ーズの予測性能を上げた Twitter等のデータセットで効果を確認した ‑ 4
  5. 5. 背景 ソーシャルメディア等によってテキストは爆発的に増えている テキストから自動で重要情報を抽出させたい ‑ 5
  6. 6. キーフレーズ予測 Extractionapproach ある程度の成果を上げた ドキュメント中に現れないキーフレーズを推測させるタスクで はどうしようもなかった Keyphrasegeneration 2017年に論文(Meng+,ACL2017)が発表される Encoder‑Decoderとしてキーフレーズを生成するのでAbsent keyphraseにも対応できる。ScientificArticleで成果を上げた。 ‑ 6
  7. 7. 課題 キーフレーズ生成モデルはソーシャルメディアのテキストでうまく いかない "よく書かれた文章"ではうまくいくが、ソーシャルメディアの短くて砕 けた文章ではうまくいかなかった ‑ 7
  8. 8. 目的 ソーシャルメディアで扱われる文章からのキーフレーズ生成 ‑ 8
  9. 9. 手法 NeuralTopicModelから得られる潜在トピックの情報も使って、入力文 書中に存在しないキーフレーズを推測 ‑ 9
  10. 10. トピックモデル 文書集合で話題となっているトピックを、同じ文書で現れやすい語彙と して抽出する手法の総称 LatentDirichletAllocation(LDA) 一つの文書に複数のトピックを持つと仮定し、文章が生成される過程を モデル化 θ :文書d に対するTopic分布 z :文書中の単語w に対するトピック割当 α , β :ハイパーパラメータ θd zn wn ∼ Dir α ,  for d ∈ D( 0) ∼ Multi θ ,  for n ∈ 1, N( d) [ d] ∼ Multi β ,  for n ∈ 1, N( zn ) [ d] d n n 0 zn ‑ 10
  11. 11. NeuralTopicModel 2017年あたりに論文が発表され始めた Miaoetal.(2017);SrivastavaandSutton(2017) 事後分布の推論をNNで行う,有り体に言えばVAE モデルをいじるごとに推論手法を導出する必要がなくなる ‑ 11
  12. 12. 今回のモデル Seq2seq+Neuraltopicmodel ‑ 12
  13. 13. データ collection C = x ,x , ...,x のそれぞれの文章xから、 BoWベクトルx ∈R ,(V は語彙数) 系列ベクトルx を作成 { 1 2 ∣C∣} bow V seq ‑ 13
  14. 14. NeuralTopicModeling 今回は最も簡単なGaussianSoftmaxモデル(GSM)を使用している 有限の潜在トピック数Kを仮定するモデル NTMモデル ‑ 14
  15. 15. NeuralTopicModel BoWEncoder μ = f f x , log σ = f f x f (⋅) はReLUのFC層 μ ( e ( bow)) σ ( e ( bow)) ∗ ‑ 15
  16. 16. NeuralTopicModel BoWDecoder 以下のステップでx を再構成 潜在トピック変数zをサンプルz ∼ N μ, σ 混合トピックを計算θ = softmax f (z) Foreachwordw ∈ x : w ∼ softmax f (θ) bow ( 2 ) ( θ ) ( ϕ ) ‑ 16
  17. 17. SequenceEncoder w ∈x (i = 1, 2, ..., ∣x∣) からEmbeddingvectorν を計算 Bi‑GRUで各時刻でのhiddenstateを計算 h = f ν ,h hiddenstateをまとめてメモリバンクMを作成 M = h ,h , … ,h i seq i i biGRU ( i i−1) ⟨ 1 2 ∣x∣⟩ ‑ 17
  18. 18. Topic‑AwareSequenceDecoder 混合トピックθと前ステップの出力u を入力として、Unidirectional GRUで逐次デコード s = f u ; θ ,s j j GRU ([ j ] j−1) ‑ 18
  19. 19. Topic‑AwareSequenceDecoder 注意重みを計算し、メモリバンクMを集約 α = ,  c = α hij exp f h ,s , θ∑i =1′ ∣x∣ ( α ( i′ j )) exp f h ,s , θ( α ( i j )) j i=1 ∑ ∣x∣ ij i ‑ 19
  20. 20. Topic‑AwareSequenceDecoder c とs から単語を生成 p = softmax W s ;c +b j j gen ( gen[ j j] gen) ‑ 20
  21. 21. Topic‑AwareSequenceDecoder 重みをつけて入力データ中の単語分布を合成し、最終的な出力を計 算(Copy機構) λ = sigmoid W u ;s ;c ; θ +b p = λ ⋅ p + 1 − λ ⋅ α j ( λ[ j j j ] λ) j j gen ( j) i=1 ∑ ∣x∣ ij ‑ 21
  22. 22. 目的関数 NTMのLoss L = D (p(z)∥q(z∣x)) −E [p(x∣z)] キーフレーズ生成のLoss L = − log Pr y ∣x , θ 最終的なLoss L =L + γ ⋅L NTM KL q(z∣x) KG n=1 ∑ N ( ( n n n)) NTM KG ‑ 22
  23. 23. 実験 ‑ 23
  24. 24. データ Twitter/Weibo/StackExchengeのデータを使用 TwitterとWeiboのtargetは投稿に付与されたハッシュタグ(?) SEのtargetは投稿に付与されたタグ 前処理は先行研究と条件を同じになるように頑張った ‑ 24
  25. 25. 結果 LatentTopicを使うとしっかり性能が上がる ‑ 25
  26. 26. AbsentKeyphraseへの性能 AbsentKeyphraseに対しても一定の改善が見られる 今回のモデルには関係ないが、Copy機構を使うとAbsent Keyphraseに対しては性能が若干下がるとの報告 ‑ 26
  27. 27. 実装 ‑ 27
  28. 28. 著者実装 提供されている! https://github.com/yuewang‑cuhk/TAKG ‑ 28
  29. 29. NeuralTopicModeling NTMの実装も含まれてる! ‑ 29
  30. 30. 実装1 NTMのデータローダ周りと評価関数を作って検証 実装 https://github.com/m3yrin/NTM 解説記事 https://qiita.com/m3yrin/items/3a8157f65eb9862ac21e ‑ 30
  31. 31. 結果1 LDAの方が軽く、性能も安定 (当たり前といえば当たり前) NTMの方が細かなモデルの調整を行いやすい LossにSparsityについてのL1ペナルティ項を加えて、単語分布の重 なりを抑制できた(ようにみえる) ‑ 31
  32. 32. 実装2(検証中) 日本語のデータセットでキーフレーズ生成 Qiita(https://qiita.com)の投稿をQiitaapiを使用して収集 Qiita記事のタグをtargetとして使用しモデルを構築 実装 https://github.com/m3yrin/topic‑aware‑tag‑prediction ‑ 32
  33. 33. ‑ 33
  34. 34. 追記 NTMの目的関数のp(z), q(z∣x) が逆ではないか。 確認したところ、参考文献では全て L = D (q(z∣x)∥p(z)) −E [p(x∣z)] と、なっていて、今回の論文のみが逆になっていました。逆になってい る理由はわかりませんでした。 NTM KL q(z∣x) ‑ 34
  35. 35. ‑ 35

×