wikipedia entity vectorとwordnetで対話内容を選定し chainer...
TRANSCRIPT
Wikipedia Entity Vector と WordNet で対話内容を選定しChainer を用いた Attention モデルで発話内の重要な単語に着目する Bot の作成
自己紹介大串 正矢 @SnowGushiGit
ポート株式会社 Web 開発事業部 研究チーム Tech-Circle 運営スタッフ 機械学習/自然言語処理 インフラ自動構築 /並列分散処理 Python
Agenda• Theme of LT
• Conversation Pattern • Use Case 1• Use Case 2
• System Architecture
• Choose TOPIC using by Wikipedia Entity Vector and Word Net
• Focus Speech of contents using by Attention Model
Theme of LT
Theme of LT
Choice and Focus
Conversation Pattern
Conversation Pattern 彼氏
妹
パパ
Conversation Pattern
私 と仕事のどっちが 大事 ?
その 服 可愛いどこ で買ったの?
パパ 小遣い 頂戴
彼氏
妹
パパ
Theme of LTユーザーそれぞれの対話履歴が必要しかし最初はない・・・最初から内容を絞りたい
System Architecture
System Architecture
SQLite
対話破綻コーパス
ファインチューニング用学習データ
プレトレイン WikiPedia タイトルデータ学習
データ取得 データ出力
チューニング
ボット応答
ユーザーアクション
Word NetWikipedia
Entity Vector
Word NetWikipedia
Entity Vector
Choose TOPIC using by
Wikipedia Entity Vector and Word Net
Choose TOPIC using by Wikipedia Entity Vector and Word Net
彼氏
妹
パパ
Choose TOPIC using by Wikipedia Entity Vector and Word Net• Word Net は何??
– 単語に概念を付与してグループ化してくれているデータセット
スコティッシュホールド クロネコ オレンジネコ
ネコ
Choose TOPIC using by Wikipedia Entity Vector and Word
Net
しかし概念数が多い:その数 57,238 概念概念数が多いとデータを用意しづらい
Choose TOPIC using by Wikipedia Entity Vector and Word
Net
同じような概念があるはず:それをまとめたい
Choose TOPIC using by Wikipedia Entity Vector and Word Net• Wikipedia Entity Vector は何??
– 単語、および Wikipedia で記事となっているエンティティの分散表現ベクトル
Choose TOPIC using by Wikipedia Entity Vector and Word
Net
概念にベクトルが付与できる:つまり計算が可能に(注意:今回は計算量とメモリの関係で 20万単語のみ使用)
Choose TOPIC using by Wikipedia Entity Vector and Word Net
Word NetとWikipedia Entity Vectorを組み合わせることで概念クラスを分散ベクトル化
Choose TOPIC using by Wikipedia Entity Vector and Word Net• Word Net と Wikipedia Entity Vector を組み合わせ
1: Word Net の概念クラスを Wikipedia Entity Vector を用いて サマライズ2: Word Net の未知語を Wikipedia Entity Vector で付与3:概念クラスの平均ベクトルを Wikipedia Entity Vector で 導出4:概念クラスをサマライズ5:概念クラス内の単語の頻度が 1000 以上だけ残す
Choose TOPIC using by Wikipedia Entity Vector and Word Net
1 : Word Net の概念クラスを Wikipedia Entity Vector を用いてサマライズ ネコ :[0.2, 0.3, 0.4…]
犬 :[0.3, 0.4, 0.5…]Wikipedia
Entity Vector
うさぎ :[0.2, 0.5, 0.4…]
コサイン類似度計算
Choose TOPIC using by Wikipedia Entity Vector and Word Net
2: Word Net の未知語を Wikipedia Entity Vector で付与
クロネコ白猫:三毛猫:
ネコWikipedia Entity Vector
コサイン類似度近い
未知語なら追加
Choose TOPIC using by Wikipedia Entity Vector and Word
Net
各概念に属する単語数が増えある程度まとまったが:まだ多い
Choose TOPIC using by Wikipedia Entity Vector and Word Net
3: 概念クラスの平均ベクトルを Wikipedia Entity Vector で導出
クロネコ :[0.2, 0.3, 0.4…]白猫 :[0.1, 0.3, 0.…]:
ネコ
柴犬 :[0.1, 0.3, 0.4…]土佐犬 :[0.1, 0.2, 0.…]:
犬
平均ベクトル
平均ベクトル
Choose TOPIC using by Wikipedia Entity Vector and Word Net
4: 概念クラスをサマライズ
クロネコ :[0.2, 0.3, 0.4…]白猫 :[0.1, 0.3, 0.…]:
ネコ
柴犬 :[0.1, 0.3, 0.4…]土佐犬 :[0.1, 0.2, 0.…]:
犬
平均ベクトル
平均ベクトルコサイン類似度計算
Choose TOPIC using by Wikipedia Entity Vector and Word
Net
各概念に属する単語数が増えある程度まとまったが:まだ多い( 20000程度)
Choose TOPIC using by Wikipedia Entity Vector and Word Net
5: 概念クラス内の単語の頻度が 1000 以上だけ残す
クロネコ白猫:
ネコ
柴犬土佐犬:
犬
白鳥アヒル:
トリ
コアラコアラ
Choose TOPIC using by Wikipedia Entity Vector and Word
Net
これで 76概念まで減少:他は概念を与えないことに全てのベクトル使えばもっと良くなるはず・・
Choose TOPIC using by Wikipedia Entity Vector and Word Net
その 服 可愛いどこ で買ったの?
彼氏イケメンかっこいい:
妹可愛い服:パパお金小遣い:
単語の平均一致率計算
Focus Speech of contents using by Attention Model
Focus Speech of contents using by Attention Model
私 と仕事のどっちが 大事 ?
その 服 可愛いどこ で買ったの?
パパ 小遣い 頂戴
彼氏
妹
パパ
Focus Speech of contents using by Attention Model
• Attention Model とは
• 詳しくは下記のスライドでhttp://www.slideshare.net/yutakikuchi927/deep-learning-nlp-attention
Conclusion
Conclusion• 概念クラスをまとめて、分散表現
– 概念クラスの辞書を入れ替えれば、特定の目的にそった分散表現が可能!!– バージョンアップ予定:– https://github.com/SnowMasaya/Chainer-Slack-Twitter-Dialogue
• Wikipedia Entity Vector 全てのデータを使用できるようにする。• Docker コンテナで動作可能• 固有表現の拡充• Chainer の最新バージョン対応( 1.5.1 で動作確認)• コサイン類似度で発言を分類(今は単純な単語一致率)
– 出来たら良いかな• キャラクター性の付与• 感情を考慮した対話
• Github に Star をくれるとやる気が加速します!!– github を“ Chainer Slack Twitter” で検索
Reference
Reference• Chainer で学習した対話用のボットを Slack で使用 +Twitter から学習データを取得してファインチューニング
– http://qiita.com/GushiSnow/items/79ca7deeb976f50126d7• WordNet
– http://nlpwww.nict.go.jp/wn-ja/• 日本語 Wikipedia エンティティベクトル
– http://www.cl.ecei.tohoku.ac.jp/~m-suzuki/jawiki_vector/• PAKUTASO
– https://www.pakutaso.com/• A Neural Attention Model for Sentence Summarization
– http://www.aclweb.org/anthology/D15-1044• A Neural Attention Model for Sentence Summarization [Rush+2015]
(Slide Share)– http://www.slideshare.net/yutakikuchi927/a-neural-attention-model-for-sentence-
summarization