ChatGPTはこれまでの対話システムと何が違う? 対話システムの言語理解を探る:対話システムの歴史から見たChatGPT(2)
ChatGPTを対話システムと見なし、これまでの対話システムで用いられてきた技術との違いを整理しながら、どのようにして人間のような自然で流ちょうな対話が実現できているのかを解説する本連載。第2回は、第1回で取り上げた対話システムを中心に、用いられている言語理解の技術について解説する。
今回のテーマは、対話システムにおける言語理解である。対話システムで用いられてきた言語理解の技術を大別すると、パターンマッチ、構文解析、意味解析、深層学習による大規模言語モデルが挙げられる。本連載の第1回で取り上げた対話システムを中心に、用いられている言語理解の技術について解説する。
パターンマッチ
対話システムにおけるパターンマッチとは、事前に用意された特定のパターンと入力されるテキストの文字列とを照合させる手法であり、最も単純な言語理解の技術といえる。
パターンマッチを用いた対話システムとして、最初に初期の非タスク指向型の対話システムである「ELIZA」を取り上げる。
ELIZAでは、患者役のユーザーとDOCTORというセラピストを模倣したスクリプトとの対話が有名である。スクリプトはユーザーの思考や感情を全く理解していないにもかかわらず、まるで人間を相手にしているかのような対話が見られた。以下にELIZAとの対話例を示す。
ユーザー:Men are all alike.(男の人ってみんな似ているわ)
ELIZA:IN WHAT WAY(どういうふうに?)
ユーザー:There are always bugging us about something or other.(いつも何かしら私たちを悩ませるのよ)
ELIZA:CAN YOU THINK OF A SPECIFIC EXAMPLE(具体的な事例を思い出せますか?)
ユーザー:Well, my boyfriend made me come here.(そうね、私のボーイフレンドが私をここに来させたのよ)
ELIZA:YOUR BOYFRIEND MADE YOU COME HERE(あなたのボーイフレンドがあなたをここに来させたんですね)
ユーザー:He says I'm depressed much of time.(彼は私が長い間うつ状態だと言うの)
ELIZA:I AM SORRY TO HEAR THAT YOU ARE DEPRESSED(あなたがうつ状態だと聞いて気の毒に思います)
ユーザー:It's true. I am unhappy.(本当よ。私は不幸なの)
ELIZA:DO YOU THINK COMING HERE WILL HELP YOU NOT TO BE UNHAPPY(ここに来ることは、不幸でなくなる助けになると思いますか?)
ユーザー:I need some help, that much seems certain.(何かしらの助けが私には必要なの。それは確かだわ)
ELIZA:WHAT WHOULD IT MEAN TO YOU IF YOU GOT SOME HELP(あなたが助けを得ると、それはあなたにとってどんな意味がありますか?)
ユーザー:Perhaps I could learn to get along with my mother.(おそらく私の母とうまくやることが学べるわ)
ELIZA:TELL ME MORE ABOUT YOUR FAMILY(もっとあなたの家族のことについて教えてください)
ユーザー:My mother takes care of me.(私の母は私の面倒を見てくれているわ)
ELIZA:WHO ELSE IN YOUR FAMILY TAKES CARE OF YOU(あなたの家族の中に、他にあなたの面倒を見てくれる人は誰かいますか?)
ユーザー:My father.(私の父よ)
ELIZA:YOUR FATHER(あなたのお父さまですね)
ユーザー:You are like my father in some ways.(あなたはどことなく私の父に似ているわ)
ELIZA:WHAT RESEMBLANCE DO YOU SEE(どんな類似点がありますか?)
ユーザー:You are not very aggressive but I think you don't want me to notice that.(あなたはあまり攻撃的ではないけれど、私にそれに気付かれたくないと思っているようね)
ELIZA:WHAT MAKES YOU THINK I AM NOT VERY AGGRESSIVE(私があまり攻撃的でないと思うのはどうしてなのでしょうか)
ユーザー:You don't argue with me.(あなたは私に反論しないわ)
ELIZA:WHY DO YOU THINK I DON'T ARGUE WITH YOU(あなたはなぜ私があなたに反論しないと思うのですか?)
ユーザー:You are afraid of me.(あなたは私が怖いのよ)
ELIZA:DOES IT PLEASE YOU TO BELIEVE I AM AFRAID OF YOU(私があなたを怖いと信じれば、あなたはうれしいですか?)
ユーザー:My father is afraid of everybody.(私の父はみんなを怖がっているの)
ELIZA:WHAT ELSE COMES TO MIND WHEN YOU THINK OF YOUR FATHER(あなたのお父さまについて、何か他に思い付くことはありますか?)
ユーザー:Bullies.(いじめっ子ね)
ELIZA:DOES THAT HAVE ANYTHING TO DO WITH THE FACT THAT YOUR BOYFRIEND MADE YOU COME HERE(それはあなたのボーイフレンドがあなたをここに来させたことと何か関係がありますか?)
ELIZAでは、テキスト入力によるユーザーの発話を理解するためにパターンマッチが用いられ、パターンマッチによるテンプレートにより応答文が作成される。入力されたパターンに照合したルールを適用して、パターンに照合するキーワードを抽出し、テンプレートにそのキーワードを当てはめて応答を作成する。
例えば、次のようなルールである。ルール1では、パターンは“I am”で"xxxxxx"に照合する文字列を取得する。出力文として取得した文字列をテンプレートに当てはめた文が生成される。
ルール1
入力文:"I am xxxxxx."
出力文:"HOW LONG HAVE YOU BEEN xxxxxx"
入力文の例とルール1から生成される出力文の例:
入力文:"I am very unhappy these days."
出力文:"HOW LONG HAVE YOU BEEN VERY UNHAPPY THESE DAYS"
ルール2では、パターンは"you"と”me"であり、”0”は不定の個数の単語が入ることを意味し、出力文の”3”は入力文の3番目の部分の単語を当てはめることを意味する。この例では、(1)It seems that (2)you (3)hate (4)me の3番目の"hate"が対応する。パターンが照合しない場合には、対話例に見られるように「CAN YOU THINK OF A SPECIFIC EXAMPLE」という知的に見える応答文を返す。
ルール2
入力文:(0 YOU 0 ME)
出力文:(WHAT MAKES YOU THINK I 3 YOU)
入力文の例とルール2から生成される出力文の例:
入力文:It seems that you hate me.
出力文:WHAT MAKES YOU THINK I HATE YOU
このように、表層的なパターンの照合によるルールが適用されるだけで、決してユーザーの発話内容を理解しているわけではないが、ここまで対話が継続するのは興味深い。
次に、パターンマッチを用いた対話システムの「A.L.I.C.E.」[2]と、その構築に用いられている「AIML」について解説する。
Copyright © ITmedia, Inc. All Rights Reserved.