seq2seq の chatbot を日本語で動かしてみた

最近ずっと NN/CNN/RNN/LSTM などで遊んでいたのだけど Seq2Seq の encoder/decoder と word embeddings を理解したかったので Seq2Seq の chatbot を動かしてみた。Keras でフルスクラッチで書いていたのだけど上手く動かず。論文読んでもわからないところがあったので https://github.com/1228337123/tensorflow-seq2seq-chatbot を自分なりに読み解いてプロセスが別れてわかりやすいように書き換えた。同時に日本語に対応させて Twitter Bot として動くようにした。

会話例



seq2seq

Google 翻訳などでも利用されている seq2seq というタイプの Neural Networks を利用しています。入力も出力も時系列データ。例えば会話とか翻訳とかに使えます。入力側に Encoder、出力側に Decoder という 2個のネットワークがあるのが特徴です。


Layer Size=256, Num Layers=3, Max Vocabulary=50000 で training しました。twittertweet/reply のペアをおよそ 17 万個が training data です。

試してみたい人

https://twitter.com/higepon_bot に話しかけてみてください。Macbook Pro で動いているボットが返事をするかもしれません。(多分数日後にはオフラインになります)

動かしてみたい人

https://github.com/higepon/tensorflow_seq2seq_chatbot にあります。
Python3 や Tensorflow を入れて README.md のとおりにスクリプトを実行して下さい。Twitter の会話データ(=訓練データ)は自分で取得する必要があります。詳しくは README.mdを見てください。