2019-01-16

チャットボットは意図した通りにお話しするか

らいか

前記事はこちら
AIの民主化進む
チャットボット作成=キャラクター作成

前々回記事では、作成するチャットボットを、「就活生が気軽に質問出来る、先輩に質問コーナー」のようなコンテンツにすること。前回記事では、「チャットボットのキャラクターイメージ」を作成する所まで書きました。

今回記事では「IBM Watson Assistant」を使用し、実際にチャットボットを作成する所を書いていきたいと思います。

ワトソンの参考URLはこちら
IBM Cloud 資料 Watson Assistant 概説チュートリアル

Watson Assistantの使い方を知るには上記のチュートリアルを見るのがわかりやすく、且つ詳しく載っています。

こちらの記事では詳しい操作方法などは省き、実際に私が作ってみた部分をざっくり説明していきます。ちなみに前回記事に書きましたが、私が作成するチャットボットの名前は「らいか」といいますので、こちらの記事でも「らいか」で話を進めようと思います。

インテントで質問に対する答えの種類を大枠で設定する

インテント


前提として今から紹介するのは私のオリジナルな作り方なので、作成するコンテンツによって最適解は当然変わります。

タイトルが少し分かりにくいかと思いますが、らいかに何を答えさせたいかによってインテントを設定します。

私はこのように設定しました。

[#greeting]
こんにちは等のあいさつです。
ユーザー側のコメント例は「こんにちは」「元気?」などです。

[#question_work_company]
会社や業務のことに関する問い合わせへ返答する用です。
質問例は「仕事内容を教えて」「配属先は希望出来る?」などです。

[#resolve_anxiety]
学生さんの漠然とした不安に対して励ましのメッセージをコメントする用です。
質問例は「仕事を続けていけるかな?」「私にも出来るかな?」などです。

[#idletalk]
雑談用です。
コメント例は「なまえおしえて」「今日の朝なに食べた?」などです。

[#angry]
らいかが上手にしゃべれずにユーザーが苛立った時に謝る用です。
ユーザー側のコメント例は「もう!」「ちゃんとしゃべって!」などです。

インテント中身

ここに出来るだけたくさんの質問例を入れて、ユーザーがコメントを入力した際に、らいかが何について返答するべきなのか、AIが判断出来るようにします。

エンティティを必要に応じて設定する

エンティティ

エンティティ中身

エンティティでは特別にトリガーさせたい単語や語句を設定します。
トリガーというのはシステム(Watson Assistant)が返答を選択する際のきっかけです。

一部を載せます

[@greeting]
・こんにちは
  →(シノニム)
    こんちは
    やっほー
    ハロー
・元気ですか
  →(シノニム)
    元気?
    元気ですか?
    調子はどうですか?

[@labor]
・介護休暇
  →(シノニム)
    介護
    親の介護
・勤務地
  →(シノニム)
    配属先
    所属場所

 [@topics_chat]
・音楽
・食べ物
・恋愛

シノニムというのは同じ意味の言葉で、これを入れておかないと語句が似ていてもちょっと違うとトリガーしません。

ダイアログで返答を入力する

ダイアログ

ダイアログ中身

ダイアログにトリガーの条件と、トリガーした際の返答を入力します。

条件はインテントそのままでもOK。特定の単語に反応させたい時にはエンティティを使います。

全てを載せるとすごい量になるので一部のみ載せます。

条件:@greeting=こんにちは
返答:「こんにちは!」

条件:@greeting=元気ですか
返答:「元気だよ!」

条件:#resolve_anxiety
返答:「やってみたらきっと楽しいよ!」

システム側であらかじめ「ようこそ」ノードと「その他」ノードが用意されています。
「ようこそ」ノードは、ユーザーがページを開いた時にこちらから話しかける言葉を入力します。「こんにちは!」や「質問を入力してね!」などです。

「その他」ノードはダイアログの一番下にあり、他にトリガーされるノード(条件)がなかった時にトリガーされます。「表現を変えるか、他の質問をお願いします!」などです。

ダイアログでは、ノード(条件と返答のセット)を並べる順番が重要で、ユーザーがコメントを送信した際、システムはダイアログの上から順に検証し、条件に一致するノードがあると即座に返答を返します。トリガーされたノードより下にあったノードは検証されていません。

つまり重要な返答ほど上に配置する、ということです。

(それから私が地味につまずいてしまった部分ですが、ノード名に「?」が付くとトリガーしません。)

テスト&修正

ある程度データを入力したら「Try it」でテストします。


右下の欄にコメントを入力すると、システムがインテントやエンティティを認識して、ダイアログを検証、トリガーしたノードの返答をコメントで返してきます。


「仕事を続けていけるかな?」に対して「#question_work_company」が認識されています。これを「#resolve_anxiety」に変えて、「やってみたらきっと楽しいよ!」と返答させたいです。


これで修整できました。

このようにテスト→修整を繰り返して、らいかがユーザーの質問を正しく認識できるようにします。返答のパターンが足りないところはダイアログでノードを足していきます。

(もう一点地味につまずいた部分ですが、slackなどの他アプリと連携させるのは有料サービスのようです。)

まとめ

実際に自分でチャットボットを作成する前は、AIというのはAIが考えて導き出した答えをリターンしてくるものかと思っていましたが、「IBM Watson Assistant」に関して言えば、ダイアログのノードに私が入力した返答以外の言葉はしゃべりません。

2019年1月現在、企業向けに提供されているほとんど全てのチャットボットシステムは、企業の意図に反した言葉を話さないように、このようなシステムを取っているようです。

他国の話ですが、ユーザーと会話をすることで言葉を覚え、自分の意志で発話することができるAIがいたようなのですが、悪意のあるユーザーなども多く、あまり上手くいかなかったようです。

ダイアログに入力した言葉しか話さないのならば、普通のプログラムとどう違うのか?AIとは?と思うでしょうか。

実は一番最初に記述している「インテント」、この部分がAIなのです。
ユーザーの入力したコメントは何についての質問なのか。喜んでいるのか。怒っているのか。つまり「認知」の部分です。

現在流通しているAIの技術において、この「認知」に関してはかなり発達していて、

・人でいう目の役割
Googleなどの写真解析の発達
自動運転車に必要となる道路標識や、道を渡ろうとする人間の認知

・人でいう耳の役割
スマートスピーカーやスマホなど、声で操作できる端末の登場

・人でいう鼻の役割
あんまり聞かないですね。

と、すでに現実世界で活躍していますね。

自分で考えて何か新しい仕事のようなことを始めてみたり、自分の意志で何か人の役にたつような行動をしてみたり、という所謂「強いAI」と呼ばれる、ドラえもんのような、アンドロイドのような存在が生まれるのは、もう少し先の話になるでしょう。

らいか


Read More

2018-11-12

DTM作業環境レポート【2018年11月版】


前回【2017年2月版】の記事はこちらから

さて、今回新たに加わった仲間を紹介します。


PLAYTECHのTL250くんです!サウンドハウスさんでなんと約8000円で購入!!
驚きの値段です。8万円じゃないですよ!

ギターはほぼ初心者なので、とりあえずPCに入力できて、練習するのに不都合がなければOKです。使ってみてちょっとノイズが気になるかなー。ハンダ系は不得手分野なので今度知り合いの元リペアマンに見てもらおう。


もう一点、前回の記事から大きく変わった所!
macのOSを「High Sierra」にアップデートしたら「32lives」が使えなくなってしまいました_| ̄|○
mac自体、32bitのソフトをそろそろ64bitにアップグレードしてねってことらしいです。
「AKAI ARIA」は32bitのソフトなので、警告を受けつつもソフト自体はまだ立ち上がります。がしかし、これまではLogicにプラグインさせたかったので、わざわざ「32lives」を使ってプラグインさせていたのですが、その方法が使えなくなったということです。

ただそれでなくとも、LogicにプラグインさせてMIDI形式で演奏するのに、ちょっとPCの処理能力が追いつかないのか(設定の問題もあるでしょうが)ブツブツノイズが乗りがちだったので、もうMIDI形式で入力するのを諦めて、「ARIA」からの音をオーディオ形式で録音することにしました。「Soundflower」というソフトを使います。

一つづつ細かく見ていきましょう。

MacBook Pro

「High Sierra」にアップデート。
PCの電源投入後の立ち上がりが大分遅くなった。許容範囲。
macはそろそろ32bitソフトを読まなくなるらしい。

参考
https://support.apple.com/ja-jp/HT208436

Logic Ⅹ

変更なし。大分やり方が分かってきました。
ミックスダウンのやり方とかを今度まとめよう。

AKAI ARIA

EWI(イーウィー)に付いてくる音源。
32bitのソフトなので、macのOSアップデート時に一回だけ警告を受けた。
(32bitはそろそろ対応しなくなりますよ的なやつ)

32lives

32bitのプラグインを読まないLogic Xの為に使用していたが、macのアップデート時に使えなくなってしまった。
使えるようにする方法が調べればあるのかもしれないが、そもそもmac自体が32bitに対応しなくなると宣言しているので、しがみ付くのをやめた。

AKAI EWI USB

相変わらず相棒くん。
なんだか頼もしい感じがするくらい。

Soundflower

最近よく使います。
これをインストールするとPCの中で音声をループさせることが出来る。
例えば前途の通り、「AKAI ARIA」で鳴らした音の出先をSoundflowerに設定し、Logic側の入力にSoundflowerを設定すると、「AKAI ARIA」の音を録音することが出来る。

UTAU(UTAU-Synth)

キャラクターに歌を歌わせる為のソフト。
ボーカロイドは現在使用していないので、歌声の入力はもっぱらこちら。
キャラクターごとに入力のコツみたいな物があるので、今度それもまとめようかな。


はい。ここまでつらつらと文字ばっかりになってしまったので、最後にこちらの動画をどうぞ!


フルートの音がEWI、声はUTAU-Synthを使用し、ライブラリ(キャラクタ)は雪歌ユフさん。ギターの音は残念ながらPLAYTECHではなく、Logicのアコギ音源です。

ではまた!

Read More

2018-11-11

夢見るひよこが踊れたか⁉︎


更新がしばらく滞ってしまいました。申し訳ない。
最近blenderというソフトにハマっております。
3DCGを扱うことの出来るソフトですね。フリーのソフトなんですが大変高機能で3Dモデリングからボーン(骨)入れ、キーフレーム入力、動画編集まで一連の流れを全てこのソフトだけで賄うことが出来ます。
blenderのカテゴリを作って詳しい部分はまた更新するかも⁉︎

最近はVtuberやVRなども流行っており、3Dモデリングの技術があると色々応用が利いて楽しいですね!

ひとまずblenderで作成した動画をyoutubeにアップしたので良ければご覧ください。
ひよこがダンスを踊るという脱力系ですが・・・!!

Read More

2018-09-01

チャットボット作成=キャラクター作成

先輩AIらいか


チャットボット作成イコールキャラクター作成。
・・・と、私が考えている、という話です。あしからず。

前回記事はこちらから
AIの民主化進む

女子高生AIりんなローソンクルーあきこちゃんのように、SNSを通じてユーザーとコミュニケーションを取ることが出来るチャットボットをはじめ、最近では企業のホームページにも問い合わせ対応などのチャットボットが実装されているのをよく見かけるようになってきました。チャットボットとはユーザーの問いかけに対して自動応答してくれるシステムのことです。

このようなAI技術が発達する以前では、ユーザーの問い合わせに対してはメールなり電話なり人が対応していた訳です。これらの人件費を削減出来るだけでなく、「メール打つ程ではないしなー」というユーザーのちょっとした質問に応じることが出来たり、LINEなどを通じて会話することで企業ファンと密なコミュニケーションを取ることが出来たりと、前向きなメリットを挙げることが出来ます。

そこで私が提案したいこと。ボットにキャラクターを与えてほしい!

これからの時代、人に代わり企業の顔となり得るチャットボットさん。なんとなく作成して他社と似たり寄ったりの問い合わせボットになってしまい、「所詮ボットだし」とか言われたらかわいそう。おんなじ質問をされても企業それぞれのカラーでもって答えは変わるはず。

ユーザー:アールグレイ一つ
A社:かしこまりました。大変お熱くなっておりますのでお気をつけ下さいませ。(椿屋風)
B社:よろこんで!(居酒屋風)
C社:はい、どんどん♪(わんこそば風)

みたいな感じ。(ちょっと違うか)


問い合わせボットだから、当然カスタマーサービスのイメージで、と言われたらまあその通りなんですけどね。

それではプロフィールを考えていきましょう。(ディテールにこだわるたちですよ。)
今回は新卒学生が就職活動をする際に気軽に質問出来る、先輩AIを作成します。

名前:先輩AIのらいかくん
年齢:24歳くらい(大卒の勤務3年目)
性別:男性
職種:舞台裏方
勤務地:都内
口癖:「一緒に頑張ろうぜ」「仕事楽しいよ!」
技能レベル:技術の経験値は高くないが現場好きで力持ち。わからないことがあった時にちゃんと聞かずに力技で辻褄を合わせようとするのがたまにきず
心の内:「先輩の指示がわかりづらい時があるよなー。」「仕事を任せてもらえたら自分はもっと出来るのに」

てな感じにしておきましょう。キャラクターの性別を男性にしたのは男子学生に、より共感して欲しいから。女子はこちらが特別気を遣わなくてもしっかりしていて勢いがあるし・・


学生:仕事が辛くて続けられなかったらどうしよう?
らいか:仕事は辛くても楽しいこともあるよ。一緒に頑張ろう!


みたいな感じでしょうか。時々先輩風を吹かせるおちゃめな所がセリフに出てくるとなお良し。

次回からは実際にワトソンを使ってチャットボットを構築して行きたいと思います。
次回お楽しみに!

次記事:チャットボットは意図した通りにお話しするか

Read More

2018-06-29

AIの民主化進む

AIの民主化

「AIの民主化」勢いがすごいね。
この間連休の予定があったからなんとなく旅館のサイトをサイト(sight)していたら、こちらの旅館について詳しくはAIに聞いてねっていうチャットボットが出てきた。
チャットボット=質問を入力するとAIが自動返信してくれるやつ
AIってもうこんなに普及してるんだとか感心して、ちょっと調べてみたら、すでにフリーのチャットボット用ツールが結構色々出ていた。面白そう!
ってなわけで早速自分でもチャットボットを作ることにしてみた。

まずは良さげなツール探しから。

Repl-AI
NTTドコモ × インターメディアプランニング

Watson Assistant
IBM

Azure Bot Service
Microsoft

Dialogflow(英語)
Google

Amazon Lex
Amazon

上記はどれも作成するだけであれば無料で出来そうです。
Repl-AI以外はクラウドサービスを使用しているので、公開して運用するには従量課金になるようです。
今回実用化の予定はないので、極力お金をかけずに構築しますよ。自由研究(笑)


悩みました!3日間くらい。
特にWatsonとAzureで悩みました。

ちなみにWatsonはアメリカのクイズ番組で人間に勝利したことや、白血病患者の病名を見抜いたことなどで有名。AI分野の中心的存在かと思いきや、IBM自体はWatsonのことをAIではなく、コグニティブコンピューティング(人間を支援する存在の意)と呼ぶのだそう。
AIというと人間のように振舞うことを期待されると思われるが、そうではなく、人間の活動を支援するための技術である、という思想には賛成出来る。

対してAzureは女子高生AIりんなのエンジンであることで知られています。

AzureにはQnA MakerというAPIがあって、質問と回答のセットをサイトの「よくある質問コーナー」などから読み取って自動でデータベース化してくれたり、そのデータベースに手動で追加したり編集したりが簡単に出来る。これが使いやすそうで良いんだけど、質問の回答にさらに質問が被さって来た時にどう対応させることが出来るか、とか、雑談にどの程度対応することが出来るのかなかなかイメージが湧かず。

ユーザー:仕事って面白い?
こちら:面白いよ!
ユーザー:どうしてそう思う?

↑みたいなパターンの時に「質問の意味がわかりません」って機械的なメッセージが流れるとつまらないよなーと。

Watsonはデモやチュートリアルがかなり詳しくわかりやすく載っていたので、この辺りの疑問にある程度答えをくれて、具体的に開発する際のやり方や完成までの道のりを想像することが出来ました。

よって開発ツールはWatson Assistantに決定!

学生が就職活動をする際に会社の業務のことなどを先輩社員に質問することが出来る、会社説明会などでよく見かける「先輩に質問コーナー」のAI版を作ることにしました。

次回へつづく!
Next:チャットボット作成=キャラクター作成

Read More

2018-05-25

Lenovo YOGAを外部ディスプレイに繋いだらWordの文字がぼやけた

ぼやけた表示のアプリを修正しますか?


これまでの経緯はこちらから
届きました!プリンストンPTFBDE-22W

さて、ディスプレイを拡張で繋いだは良いものの、早速作業しようと思ったらなんだ?Wordの文字が激しくぼやけるぞ。

ちょっと読めないくらい。Excelもダメですね、office系全滅。
読めない図の写真を載っけようと思ったんですが、静止画で止まっちゃうとぼやけた感じが出ないのか、違いがわからないので写真はやめ。
つまり、chromeとか他のアプリの文字はくっきりなのに、officeの文字は読めない。
おかしい。そんなはずがない、と色々調べてみたら、どうやら解像度の違いが問題らしいです。

LenovoのYOGAは12.5インチのため、表示を175%にしていました。
拡大縮小175%

それに対し21.5インチのディスプレイは100%
このような違い、というかPC側が100%でないことが駄目だったみたい。

高 DPI デバイスでの Windows のスケーリングの問題

上記マイクロソフトのサポートページを参照しながら、色々試してみたのですが、効果があったのはPC側を100%にするということだけでした。

Windowsのアップデートというのもやってみて、そしたら「ぼやけた表示のアプリを修正しますか?」というメッセージが出てきたので、「はい」にして設定を変更しましたが、やはりPC側が175%だと拡張側はにじむ。

ぼやけた表示のアプリを修正しますか?

表示スケールの詳細設定
アップデートしたらこのような設定が出てきた


PCの表示を100%にすればすむ話ですが、100%だとアイコンが小さすぎてとても使用に耐えない。というわけで、結果拡張にするのを諦め、外部ディスプレイのみで運用。


YOGAを折りたたんで使おうと思ったら、

YOGAは360度折り返せる
YOGAは360度折り返せる

キーボードが反応しなくなった(汗)
ので、180度開いて寝かせた状態。

外部ディスプレイのみに出力
これで完成。快適。


Read More

届きました!プリンストンPTFBDE-22W

PTFBDE-22W

ノートパソコン(Lenovo YOGA720)の拡張用としてディスプレイを購入。
YOGAは家用に購入したのに、結局職場用としても使っちゃってるので、家には最終的にデスクトップのパソコンを置こうかなーとか思いますが、現在予算に余裕がないので、一旦拡張仕様で。

ディスプレイは悩みました。
そもそもデスクトップPCを買っちゃうかディスプレイ単体にするかから悩んでいたため買うべき物が定まらない。ビックカメラでディスプレイのディスプレイ(商品がたくさん並んでいる所)を眺め、その後デスクトップのコーナーを眺めていたら店員さんにつかまる。
デスクトップとセットで買った方がお得ですよ、と勧められた。うーん。
私Lenovoが好きなので、ディスプレイもLenovoで買えないかなと思ってLenovoコーナーを見ていたんだけど、LenovoデスクトップPCをディスプレイとセットで購入した時の見積もりを出してくれた。i3のメモリ8Gで確か8万くらいだったかな。いいんだけど、この間ノートパソコン買ったばっかしだしな。

ディスプレイはスクエアかワイドかも悩みながら、結局部屋に置けるサイズでなるべく画面の作業領域を確保するため、21,5インチのワイドにすることに決定。プリンストンのPTFBDE-22WかI-O DATAのLCD-MF224ED-Fの2択に絞る。値段が安くて軽いのがプリンストン、スタンドが上下出来てがっしりしてるのがアイ・オー・データ(のフリースタンドのやつ)。
色々他の方のディスプレイの選び方のブログとかを見るとスタンドは上下出来て自分の目線に合わせられるやつがいいと書いてあるのですが、やはり少しお高くなってしまう。
上記のアイ・オー・データの型番ので18,000円くらい。上記のプリンストンで12,000円。
保証の違いなども当然ありましたが、今回はなるべく低予算で購入したかったため、プリンストンに決めました。

スタンドは合わなかったら、別途アームを購入すればいいんだよ、とアドバイスを下さった方が職場にいました。おお!目から鱗。

↑【アームってこういうやつ】


拡張設置後
【拡張設置後】
追記:Lenovo YOGAを外部ディスプレイに繋いだらWordの文字がぼやけた

Read More