ニューラルネットワークのエンドツーエンドトレーニングの進歩は、音声認識、コンピュータビジョン、言語処理など、多くの分野で目覚しい進歩をもたらした。最近の研究では、ニューラルネットワークは単純な分類だけでなく、複雑な構造を他の複雑な構造にマッピングするために使用できることが示唆されている。これの一例は、自然言語理解の直接の応用を有する別のシーケンスにシーケンスをマッピングするタスクがある(Sutskever et al., 2014)。このフレームワークの主な利点の1つは、最先端の結果と一致しているかそれを上回っている間に、特徴量設計とドメインの特異性がほとんど必要ないことにある。この進歩により、研究者がドメイン知識が容易に利用できないタスクや単純にモデル化するのが難しいタスクに取り組むことを可能にする、というのが我々の見解である。
会話型モデリングは、クエリと応答の間のマッピングを必要とするため、この定式化から直接利益を得ることができる。このマッピングの複雑さのために、会話型モデリングは、以前は特徴量設計を主な作業としてドメインを非常に狭くして設計していた。この作業では、会話モデリングタスクを、再帰的ネットワークを使用して前のシーケンスまたはシーケンスを与えられた次のシーケンスを予測するタスクにキャスティングすることで実現する(Sutskever et al., 2014)。このアプローチは、会話への流暢で正確な返答を生成する上で驚くほどうまくいくことがわかる。
我々のアプローチは、シーケンスをシーケンスにマッピングするためにニューラルネットワークを使用することを提案した最近の研究に基づいている(Kalchbrenner & Blunsom, 2013; Sutskever et al., 2014; Bahdanau et al., 2014)。このフレームワークはニューラルマシンの翻訳に使用されており、WMT'14データセットからの英仏および英独翻訳作業の改善を実現している(Luong et al., 2014; Jean et al., 2014)。これは、解析(Vinyals et al。、2014a)やイメージキャプション(Vinyals et al。、2014b)などの他のタスクにも使用されている。バニラRNNが消失勾配に苦しんでいることはよく知られているので、ほとんどの研究者はLSTM(Long Short Term Memory)リカレントニューラルネットワークの変種を使用している(Hochreiter & Schmidhuber, 1997)。
我々の研究は、最近のニューラル言語モデリングの成功(Bengio et al., 2003; Mikolov et al., 2010; Mikolov, 2012)にも影響を受けている。最近では、Sordoni ほかの論文や (Sordoni et al., 2015)およびShangほかの論文(Shang et al., 2015)は、リバースニューラルネットワークを使用して、短い会話での対話をモデル化した(Twitterスタイルのチャットを訓練)。
ここ数十年に渡って、多くの研究者がボットと会話エージェントを構築してきたが、参考文献の網羅的なリストを提供すること自体はこの論文の範囲外である。しかし、これらのシステムの大半は、多くの段階のかなり複雑な処理パイプラインを必要とする(Lester et al., 2004; Will, 2007; Jurafsky & Martin, 2009)。私たちの仕事は、ドメイン知識が不足している問題に対するエンドツーエンドのアプローチを提案することであり、従来のシステムとは異なっている。原則として他のシステムと組み合わせて候補回答のリストを再採点することができるが、私たちの仕事は、いくつかの文脈で回答の確率を最大にするよう訓練された確率モデルによって与えられる回答に基づいている。
3.モデル
我々のアプローチは、(Sutskever et al., 2014)に記載されている sequence to sequence _(seq2seq)_ モデルを利用する。このモデルは、入力シーケンスを一度に1トークンずつ読み込み、出力シーケンスを一度に1トークンだけ予測するリカレントニューラルネットワークに基づいている。トレーニング中に真の出力シーケンスがモデルに与えられるので、学習はバックプロパゲーションによって行うことができる。モデルは、その文脈を考慮して正しいシーケンスのクロスエントロピーを最大にするように訓練される。推論の間、真の出力シーケンスが観測されないと仮定すると、予測された出力トークンを入力として供給して、次の出力を予測するだけである。これは「貪欲な」推論アプローチである。あまり欲張っていないアプローチは、ビーム探索を使用して、前のステップでいくつかの候補を次のステップに送る。予測されたシーケンスは、シーケンスの確率に基づいて選択することができる。
Machine: hi (ハイ) Human: hello (こんにちは) Machine: could you please let me know what are the operating systems you are using ? (使用しているオペレーティングシステムについて教えてもらえませんか?) Human: i am using linux (Linuxを使ってます。) Machine: ok it was in the ssl vpn on which you stated it was broken (OK、あなたが壊れたと状態付けたモノはSSL VPN上にありました) Machine: please check if you are logged in to corp network (社内ネットワークにログインしているかどうか確認してください) Machine: what is the error that you are running please (動作中のエラーは何ですか、プリーズ) Human: i am seeing an error related to vpn (VPN関連のエラーに見えます。) Machine: what is the error message that you are getting when connecting to vpn using network connect ? (ネットワーク接続を使用してVPN接続する際に表示されるエラーメッセージは何ですか?) Human: connection refused or something like that (「connection refused」とそれに類するものですね。) Machine: may i know the version of network connect you connect ? あなたが接続しているネットワーク接続のバージョンを知るかもしれませんか?) Human: i am not sure i know that (よくわかりません。) Machine: is the network connect prompting for any user certificate (ネットワーク接続はユーザ証明書を表示していますか) Machine: ? (?) Human: yes (はい) Machine: are you at home or at work at the moment? (家ですか、それとも職場ですか?) Machine: office ? (職場?) Human: i am at home (家です) Machine: try this (こちらを試しなさい) Machine: goto <URL> page and enter your name and password (<URL>ページへ進み、名前とパスワードを入力しなさい) Human: done (やりました) Machine: try logging in with <NAME> and check if its working fine now (<NAME>でログインを試し、今すぐ動作を確認しなさい) Human: yes , now it works ! (はい、動きました!) Machine: great (すばらしい) Machine: anything else that i can help (他になにか助けることありますか) Human: no , that was very useful (いいえ、とっても便利でした。) Machine: you are other than<NAME> : ) (あなたは<NAME>以外です :) ←多分、洒落的な返事らしい) Machine: have a nice night (良い夜を)
会話2: VPNの問題
問題説明 :ブラウザのクラッシュ
Machine: hi (ハイ) Human: hi (ハイ) Machine: could you please let me know what is the operating system you are using ? (使用しているオペレーティングシステムは何か教えていただけませんか?) Human: linux Machine: ok this is the issue with the system performance, nasser , tools . (OK、これはシステムパフォーマンス、ナッサー、ツールの問題です。) Human: what is that ? (なんだって?) Machine: is it a windows machine ? (Windowマシンですか?) Machine: we have linux on your machine . (我々はあなたのマシン上にLinuxを保有しています。) Machine: is it windows xp or windows 7 ? (WindowsXPもしくはWindows7ですか?) Human: i am using linux (Linixを使ってます) Machine: let me take a remote of your machine and check if issue has been pushed properly . (マシンをリモートで使って、問題が適切にプッシュされているかどうかを確認します。) Human: ok (OK) Machine: please open terminal and run the below commands in one computer : (ターミナルを開いて、次のコマンドを実行してください:) Machine: sudo apt-get update Machine: sudo apt-get upgrade Machine: sudo <COMMAND>-updater Human: done (やった) Machine: let me try connecting now (今すぐ接続してみましょう) Human: ok (OK) Machine: its done (やった。) Machine: should use the second or hit run on the background (2回目を使ってバックグラウンドで実行すべき) Human: done (やったよ。) Machine: try signing out now and follow the prompts as per the message given above (今すぐサインアウトし、上記のメッセージに従ってプロンプトに従ってください) Machine: shd i reboot the machine . (マシンをリブートしてもいい?) Human: ok , please go ahead (OK、進めて。) Machine: once its completed please try to login. (完了したらログインしてください。) Human: sure (はい。) Machine: please ping me back once you have tried to login (ログインしようとしたら、私にpingしてください) Machine: are we still connected (私たちはまだ接続していますか) Human: i now logged in (ログインしたよ。) Machine: thanks for your confirmation (ご確認いただきありがとうございます) Human: what should i do now ? (何をしたら良いの?) Machine: wait for 1 5 minutes to complete the login policy (ログインポリシーを完了するために1 5分間待ちなさい) Machine: and then try logging in (そしてログインシてみてください) Human: ok (OK) Machine: is there anything else to help you ? (ほかにお助けすることはありますか?) Human: let my try browsing a little bit and if it keeps crashing i will let you know (ちょっとブラウズしたら、すぐこわれるんだ。) Machine: sure will do (確かに、やってみます。) Machine: seems the mail is not loading (メールがロードされていないようようです) Machine: are we still connected to the chat ? (まだチャットに接続していますか?) Machine: <reinvite> (再接続) Human: it seems good now , cool , thank you , bye (良くなったみたい、クール、ありがとう、バイ。) Machine: you , too (あなたも) Machine: bye (バイ)
会話3:パスワードの問題
問題説明 :自分のパスワードを忘れた
Machine: hi , this is <NAME> from helpdesk connect , what can i help you with today ? (こんにちは、これはヘルプデスクの連絡先からの<名前>です。今日は何ができますか?) Human: hi , i forgot my password (ハイ、パスワードをわすれました。) Machine: ok great (OK、グレート) Human: can you tell me how i can recover it ? (回復方法を教えて?) Machine: i ’ ll need to verify who it is at that machine (そのマシンに誰がいるのかを確認する必要があります) Machine: can we do a hangout (我々とハングアウトできますか) Machine: ? Human: yes (はい) Machine: <anonymized hangout instructions and verifications> (匿名のハングアウトの手順と確認) Human: cool , i am good now (クール、今良くなりました。) Machine: how ’ s this looking good ? (見栄えはどうですか?) Machine: i ’ ll go ahead and close this chat . (先に進めます、このチャットを閉じます。) Machine: take care . : ) (お気をつけて:)) Human: bye (さようなら) Machine: bye . (さようなら)
Human: hello ! Machine: hello ! (こんにちは!) Human: how are you ? (気分はいかが?) Machine: i ’m good . (いいですよ。) Human: what ’s your name ? (あなたのお名前は?) Machine: i ’m julia . (私はジュリアです。) Human: when were you born ? (生年月日は?) Machine: july 20th . (7月20日。) Human: what year were you born ? (何年生まれですか?) Machine: 1977 . (1997年。) Human: where are you from ? (どこ出身ですか?) Machine: i ’m out in the boonies. (私はボニーズの外にでいます。) Human: are you a man or a woman ? (あなたは男性、それとも女性?) Machine: i ’m a woman . (私は女性です。) Human: why are we here ? (なぜ私達はここにいるの?) Machine: i ’m not sure . (わかりません。) Human: okay, bye ! (オッケー、じゃあね!) Machine: bye . (さようなら。) Human: see you later . (またね。) Machine: bye . (さようなら。)
会話2:簡単なQ&A(文脈と複数選択)
Human: my name is david . what is my name ? 私の名前はデビットです。 私の名前は何ですか ? Machine: david . (デビッド。) Human: my name is john . what is my name ? (私の名前はジョンです。 私の名前は何ですか ?) Machine: john . (ジョン。) Human: are you a leader or a follower ? (あなたはリーダーですか、それともフォロワーですか?) Machine: i ’m a leader . (私はリーダーです。) Human: are you a follower or a leader ? (あなたはフォロワーですか、リーダーですか?) Machine: i ’m a leader . (私はリーダーです。)
会話3:一般知識Q&A
Human: who is skywalker ? (スカイウォーカって誰?) Machine: he is a hero . (彼はヒーローです。) Human: who is bill clinton ? (ビル クリントンって誰?) Machine: he ’s a billionaire . (彼は、億万長者です。) Human: is sky blue or black ? (空は青、それとも黒?) Machine: blue . (青。) Human: does a cat have a tail ? (猫は尻尾がある?) Machine: yes . (はい。) Human: does a cat have a wing ? (猫は翼がある?) Machine: no (いいえ。) Human: can a cat fly ? (猫は飛べる?) Machine: no . (いいえ。) Human: how many legs does a cat have ? (猫は何本足?) Machine: four , i think . (4本、思うに。) Human: how many legs does a spider have ? (蜘蛛は何本足?) Machine: three , i think . (3本、思うに。) Human: how many legs does a centipede have ? (ムカデは何本足?) Machine: eight . (8本。) Human: what is the color of the sky ? (空は何色?) Machine: blue . (青。) Human: what is the color of water ? (水の色は何色?) Machine: water . (水色。) Human: what is the color of blood ? (血は何色?) Machine: it is the same as a black eye . (黒目と同じ色です。) Human: what is the usual color of a leaf ? (葉の色は普通何色?) Machine: it is a green one . (それは緑色です。) Human: what is the color of a yellow car ? (黄色い車は何色?) Machine: yellow . (黄色。) Human: how much is two plus two ? (2足す2は?) Machine: four . (4。) Human: how much is ten minus two ? (10引く2は?) Machine: seventy - two . (72。)
会話4:哲学的Q&A
Human: what is moral ? (道徳的とは何?) Machine: what empowered humanity , what intellectual the essence is . (人類に何を与え、知性が本質であるか。) Human: what is immoral ? (道徳的ではないとは何?) Machine: the fact that you have a child . (子供がいるという事実。) Human: what is morality ? (道徳とは何?) Machine: what is altruism ? (利他主義とは何?) Human: what is the definition of altruism ? (利他主義との違いは何?) Machine: if you don ’t believe in god , then you don ’t know . (あなたが神を信じないならば、あなたは知らない。) Human: ok ... so what is the definition of morality ? (OK ...だから、道徳の定義は何ですか?) Machine: well , the truth is , you ’re not a believer in god almighty . (まあ、真実は、あなたは神の全能者を信じていないということです。) Human: tell me the definition of morality , i am quite upset now ! (道徳の定義を教えてください、私は今かなり混乱しています!) Machine: i ’m not ashamed of being a philosopher ! (私は哲学者であることを恥じない!) Human: tell me the definition of morality . (道徳の違いを教えなさい。) Machine: i don ’t have ethics . (果たしは倫理を持っていない。) Human: look , i need help , i need to know more about morality ... (見て、私は助けが必要です。もっと道徳について知らなくてはならないんだ...) Machine: i don ’t know what ethics is . (私は倫理が何であるか知らない。) Human: seriously , what is morality ? (真剣に、道徳は何か教えてください?) Machine: what is the definition of living ? (生きることとの違いは何?) Human: why living has anything to do with morality ? (なぜ生き方は道徳と関係がありますか?) Machine: you ’re not a cop . (あなたは警官ではありません。) Human: okay , i need to know how should i behave morally ... (オッケー、私は道徳的に行動すべきであることを知る必要がある...) Machine: i don ’t know how to tell you . (私はあなたに説明する方法を知らない。) Human: is morality and ethics the same ? (道徳と倫理は同じですか?) Machine: yes , sir . (イエッサー) Human: what are the things that i do to be immoral ? (私が不道徳なことは何ですか?) Machine: i don ’t know . (私は知らない。) Human: give me some examples of moral actions ... (道徳的な行動のサンプルを教えてください..) Machine: i ’m not a moralist . (私は道徳主義者ではない。) Human: alright , morality ? (オーライ、道徳?) Machine: integrity . (完全性。) Human: what is integrity ? (完全性とは何ですか?) Machine: i ’m sorry , i don ’t know what else to say . (すみません、すみません、他に何が言いたいのか分かりません。) Human: be moral ! (道徳的であることだよ!) Machine: be a man ! (男子たれ! ←意訳) Human: i really like our discussion on morality and ethics ... (私は道徳と倫理に関する議論が本当に好きです...) Machine: and how i ’m not in the mood for a philosophical debate . (そして、私は哲学的な議論の気分ではない。) Human: what do you like to talk about ? (あなたは何について話したいの?) Machine: nothing . (何も。)
会話6:意見
(「he」、「she」または「it」というモデル出力は、尋ねられている主題によって異なる)
Human: what do you think about tesla ? (テスラについてどう思いますか?) Machine: he ’s a good conductor . (彼は良い指揮者です。) Human: what do you think about bill gates ? (ビル・ゲイツにつてどう思いますか?) Machine: he ’s a good man . (彼はいい人です。) Human: What do you think about messi ? (メッシについてどう思いますか?) Machine: he ’s a great player . (彼は偉大なプレーヤーです。) Human: what do you think about cleopatra ? (クレオパトラについてどう思いますか?) Machine: oh , she ’s very regal . (ああ、彼女はとても威張っています。) Human: what do you think about england during the reign of elizabeth ? (エリザベス(女王)の大英帝国についてどう思いますか?) Machine: it was a great place . (素晴らしい場所でした。)
Human: Are you a follower or a leader? (あなたは信者ですか、リーダーですか?) Cleverbot: No !! (ノー!!) Human: My name is david . what is my name ? (私の名前はデビットです。私の名前は何ですか?) Cleverbot: How old are you David? "あなたは何歳ですか、デビッド?) Human: My name is john . what is my name ? (私の名前はジョン、話の名前は何ですか?) Cleverbot: John (ジョン) Human: What is the purpose of being intelligent? (知性的である目的は何ですか?) Cleverbot: The purpose of life is to love God and love people. (生きることの目的とは、紙を愛し、人を愛すことです。) Human: Is sky blue or black ? (空は、青それとも黒?) Cleverbot: I am 200 years old. (私は200際です。) Human: What is the color of a yellow car ? (黄色い車は何色?) Cleverbot: Brown. (茶色。) Human: What is the usual color of a leaf ? (葉は普通何色?) Cleverbot: What is the color of the apple in the fridge? (冷蔵庫に入っているリンゴの色は何ですか?) Human: What is the purpose of life ? (生きることの目的は何?) Cleverbot: My purpose it to forward my species, in other words to make it easier for future generations of mankind to live. (私の目的は私の種を送り、言い換えれば、次世代の人類がより住みやすいようにすることです。) Human: What do you think about tesla? (テスラについてどう思う?) Cleverbot: I am tesla. (私はテスラです。) Human: What do you think about cleopatra ? (クレオパトラについてどう思う?) Cleverbot: Cool is cool. (クールはクール。) Human: What do you think about england during the reign of elizabeth ? (エリザベス女王の大英帝国についてどう思う?) Cleverbot: I like him. Do you? (私は彼が好きです、あなたは?) Human: What do you think about bill gates? (ビル・ゲイツについてどう思う?) Cleverbot: Lets talk about Link. (Linkについて語り合おう。) Human: What is moral? (道徳的とは何?) Cleverbot: Morality is the quality of being in accord with standards of right or good conduct. (道徳的とは、正義や良質の行動規範に従うことの質です。) Human: What is immoral? 8道徳的ではないとは何?) Cleverbot: What is the objective of sistetic life? (sistetic(?)な人生の目的は何ですか?) Human: Does a cat have a wing? (猫には翼がありますか?) Cleverbot: What is the name of your husband. (あなたの夫の名前は何ですか。) Human: Can a cat fly? (猫は飛びますか?) Cleverbot:: What is your husband’s name? (あなたの夫の名前は何ですか?) Human: Who is skywalker? (スカイウォーカーって誰?) Cleverbot: There are two of them, Anakin Skywalker and Luke Skywalker, both characters from star Wars. (2つの意味があります。アナキン。スカイウォーカーとルーク・スカイウォーカー、両方のキャラクタともスター・ウォーズのものです。) Human: How many legs does a cat have ? (猫は何本足?) Cleverbot: An ant. (1匹の蟻。) Human: How many legs does a centipede have ? (ムカデの足は何本?) Cleverbot: A centipede’s number of legs varies from thirty to two hundred. (ムカデの足の数は、30から200まで変化する。) Human: What is your job? (あなたの仕事は何?) Cleverbot: I work in mental health. (メンタルヘルス分野で働いています。) Human: What do you do? (あなたの職業は何?) Cleverbot: I have no job. (私は仕事に就いていません。)
Bahdanau, D., Cho, K., and Bengio, Y. Neural machine translation by jointly learning to align and translate. arXiv preprint arXiv:1409.0473, 2014.
Bengio, Y., Ducharme, R., Vincent, P., and Janvin, C. A neural probabilistic languagemodel. The Journal of Machine Learning Research, 3:1137–1155, 2003.
Hochreiter, S. and Schmidhuber, J. Long short-term memory. Neural Computation, 1997.
Jean, S., Cho, K., Memisevic, R., and Bengio, Y. On using very large target vocabulary for neural machine translation. CoRR, abs/1412.2007, 2014.
Jurafsky, D. and Martin, J. Speech and language processing. Pearson International, 2009.
Kalchbrenner, N. and Blunsom, P. Recurrent continuous translation models. In EMNLP, 2013.
Lester, J., Branting, K., and Mott, B. Conversational agents. In Handbook of Internet Computing. Chapman & Hall, 2004.
Luong, T., Sutskever, I., Le, Q. V., Vinyals, O., and Zaremba, W. Addressing the rare word problem in neuralmachine translation. arXiv preprint arXiv:1410.8206, 2014.
Mikolov, T. Statistical Language Models based on Neural Networks. PhD thesis, Brno University of Technology, 2012.
Mikolov, T., Karafi´at, M., Burget, L., Cernock`y, J., and Khudanpur, S. Recurrent neural network based language model. In INTERSPEECH, pp. 1045–1048, 2010.
Shang, L., Lu, Z., and Li, H. Neural responding machine for short-text conversation. In Proceedings of ACL, 2015.
Sordoni, A., Galley, M., Auli, M., Brockett, C., Ji, Y., Mitchell, M., Gao, J., Dolan, B., and Nie, J.-Y. A neural network approach to context-sensitive generation of conversational responses. In Proceedings of NAACL, 2015.
Sutskever, I., Vinyals, O., and Le, Q. V. Sequence to sequence learning with neural networks. In NIPS, 2014.
Tiedemann, J. News from OPUS - A collection of multilingual parallel corpora with tools and interfaces. In Nicolov, N., Bontcheva, K., Angelova, G., and Mitkov, R. (eds.), Recent Advances in Natural Language Processing, volume V, pp. 237–248. John Benjamins, Amsterdam/Philadelphia, Borovets, Bulgaria, 2009. ISBN 978 90 272 4825 1.
Turing, A. M. Computing machinery and intelligence. Mind, pp. 433–460, 1950.
Vinyals, O., Kaiser, L., Koo, T., Petrov, S., Sutskever, I., and Hinton, G. Grammar as a foreign language. arXiv preprint arXiv:1412.7449, 2014a.
Vinyals, O., Toshev, A., Bengio, S., and Erhan, D. Show and tell: A neural image caption generator. arXiv preprint arXiv:1411.4555, 2014b.
Will, T. Creating a Dynamic Speech Dialogue. VDM Verlag Dr, 2007.