LINE Bot を開発したのだぜ①(あとAIとMLとNLPの話)

  • HOME
  • AI
  • LINE Bot を開発したのだぜ①(あとAIとMLとNLPの話)

はじめに

こんにちは。いつも応援ありがとう。
「大坂か、それ以外か」でお馴染みの大坂さ。

最近はAIの開発もしつつ、LINEのBotを開発していたんだ。
そう。プライムキャスト、もとい大坂はLINE Botの開発ができるのさ!!
※本記事で伝えたいことの9割が書けたので、あとは補足です。

大坂のいつもに関してはこちらをご覧ください。
タイヤを識別するAIの開発に挑戦 ①
タイヤを識別するAIの開発に挑戦 ②
タイヤを識別するAIの開発に挑戦 ③

「LINE Botってなに?」

LINE Botってなに?
大坂
いい質問だね。
そもそもLINE Botとは、LINEを使ってプログラムが自動で応答してくれるチャットボットさ。
チャットボットってなに?
大坂
とてもいい質問だね。
「自動会話プログラム」なんて呼ばれたりするシステムで、要は「相手は機械だけど、まるで人を相手にしているみたい」な会話アプリケーションさ。
“人口無脳”なんて呼ばれたりしている。
人工知能ではなくて”人口無脳”?
大坂
なぜ”無脳”なのかって話かい?
それは、「プログラム通りに決められた返事しか返さない」から。
大坂みたいにアイアンジョークをかますことができないってことさ。

でも「気が利かない」ってわけじゃない。そこは「いかに会話の分岐を想定して制御するか」とか、「業務フローを理解して、ストーリーを緻密に作りこむ」ことで”演出”することができるんだ。

凝れば凝るほど、AI無しでも「本当に人を相手にしているようなBot」は作ることができる。

そして、今回作ったLINE Botは人口無脳だ。
大坂はAIが扱えるのに、人口無脳を作ったの?
大坂
HAHAHA。AIといってもいろいろあるんだよBOY。

確かに、人工知能、AIが搭載されたチャットボットは存在する。
それらが会話での「人間らしさ」を追及している場合、利用されているAIは”自然言語処理”系の技術(NLP/Natural Language Processing)なんだ。
そして大坂が得意としているAIの技術は”機械学習”(ML/Machine Learning)を利用した”画像処理”系(Image Processing)モデルの作成なのさ。
MLやらAIやら、なにがなにやら!!
大阪
おさらいも兼ねて、もう少し詳しく話そう。
今後、プライムキャストの記事にはそういう言葉が増えるだろうから。
ここで取り上げるのは
  1. AI/人工知能
  2. ML/機械学習
  3. NLP/自然言語処理
の3つだ。

先に結論から言っておこう。
AIを育てるためにML(とNLP)を使う。
そして、AIを実装していないチャットボットを人口無脳という。

①AI/人工知能

昨今のAIってのは知識、学習、認識、予測、とにかく広い領域で扱われている。
意味的にも広義で、猫も杓子もAIなのさ。まさに”AI搭載のペットロボット”とか、”AI搭載の炊飯器”とかさ。
”AI搭載の杓子”だって本当に出てくるかもね!!(これがアイアンジョークだッ)
”本当にAIが実装されているか?”っていうと実はそんなことはない。
ここら辺の話は長くなるからまた今度にしよう。

さて、AI/人工知能の話だ。

ヒトは、問題を解決する能力に長けている。
また、学習や経験を通して培われる知的な決定をすることができる。
AIとは、これらの能力を人工的に作り出して機械に組み込んだシステムだ。

「AIは、”ヒトの能力を模したシステム”」

そう。そして”本当のAI”はヒトのように考え、人のように応答する能力を持ち、さらに”成長”することができる。
その上、ヒトと違って眠らないし、学習をサボらない(いや、むしろ”うまくサボる”ことさえ知り得る)。
そういったAIは、ヒトにとって有効な問題解決策を提案してくれたり、見たこともないような芸術作品を作る。

②ML/機械学習

機械学習とは、「”観測”と”過去の経験”によりシステムを学習させるアルゴリズム」と定義されている。
”アルゴリズム”っていうのは、”計算方法”だ。

「機械学習は、”AIを育てるための計算方法”」

そう。機械学習ってのはあくまで、”計算方法”なのさ。
世界には今、この計算方法がたくさんある(マジで超たくさんある)。
その計算方法を利用して完成した”何かを予測する仕組み”を「モデル」っていう(これはかなり雑な説明で、誰かに怒られそうだ)。
モデルは学習させて育てる(育て方もいろいろある)。

大坂
A, B, C, と来た。次は?
モデル
N
大坂
Dッ!!

まあ、概ねこんな感じだ。
めちゃくちゃ根気がいるし、時間もすごくかかる。
でも、モデルは正しい鍛え方で正しく育てると精度の高い答えを返してくれるようになる。

大坂
1, 2, 3, と来て、次に来るのは?
モデル
4でしょーそれは笑
大坂
Good

こんな感じ。
そして、作成されたモデルは「過去から未来を予測する能力」が期待される。

大坂
マカロン、パンケーキ、タピオカ、 と来て、次に来るのは?
モデル
プオーン
大坂
???

時として、賢明なモデルはヒトの予想を超えた遥か先の未来を見越す可能性もあるのさ。
冒頭でも言ったように、機械学習ってのはあくまで”計算方法”だ。過去の経験からより良い解決策を導き出す為の式だ。ヒトが処理するのが難しい複雑で膨大なデータを効率よくさばくときや、問題を解決するため、そしてモデルを開発する際に利用される。機械学習それ自体はチャットボットに利用はされても実装されない。
(そして、大坂が得意なのはこの機械学習を用いて画像認識用のモデルを作ることなのさ。)

③NLP/自然言語処理

機械やシステムは、それらが理解できるフォーマット、つまりプログラミング言語は理解できるが、ヒトが普段、会話で利用しているような話し言葉をそのまま理解することはできない。

代名詞:「大坂は優秀なエンジニアです。彼の趣味は、ロボットを開発することです」
省略:「大坂はLINE Botの記事を書いています。しかし、いつの間にかAIの記事を書いていました」
外界:「ちょっと大坂くん、頼んでいた記事と違うじゃないか。書き直してください」
単語間の関係:「そこに怒っている人がいました。もちろん大坂くんの上司、藤野です」

上記のような文章、普通の機械や自然言語処理を施されていないAIには理解できない。
あと大坂は記事を書き直すつもりはない。

自然言語処理は、 機械に対して、上記のように、ヒトが使うような”自然な言語”、文脈を理解できるようにする技術 だ。

そして”理解できるようにする過程”で機械学習が登場する。
手法はこれまたすごくたくさんある(ので割愛する)。
自然言語処理の技術が実装されているシステムは、ヒトの話し言葉を理解できる。
AlexaやSiriなんかがそうだ。技術の進歩は目覚ましく、精度はグングン上がっている。

「NLPは、”機械に人間の言葉を理解させる”こと」

ヒトの言葉が理解できる機械を使って人工知能に機械学習を施す」ことで、気の利いたアイアンジョークのひとつやふたつ、パッと返せるようなチャットボットが作れるのさ。

最後に

長くなったけど大坂はまだ自然言語処理の知識はないけど、いずれは克服するさ(怒)ってこと。
次回は開発したLINE Botの詳細と、大坂が作った「LINE Botと連携して動作するロボット」のことを書くよ。

次回更新は12月18日を予定しています。

もっと詳しく知りたい方は
お気軽にお電話ください
03-5823-0088
大坂 2019年 入社
大坂

大阪からきた大坂です。