あいさつ
初めまして!名古屋工業大学 修士1年生の西山達也です!(Twitter: @yama_nisshii )9/3から9/30まで株式会社AI ShiftさんにJOBインターンで参加させていただきました。今回は新型コロナウイルスの影響で愛知からフルリモートでのインターン参加です。その辺りの話にも触れて、この記事が誰かの参考になれば幸いです。研究室ではニューラルネットによる、自然言語処理、チャットボット、対話システムあたりの研究をしています。インターンでは電話による音声の自動応答に関して、ユーザーが沈黙した際に適切な発話誘導を行うことでシステムを改善するというテーマに取り組みました。普段と少し違って音声、インタラクションよりのテーマで少し不安でしたが人事の方、チームの方、その他ご協力いただいた方々の手厚いサポートのおかげでなんとか最後までやりきることができました!
インターンの流れ
テーマ選定 → 論文サーベイ → 方針決定 → 機能実装 → 実験 → 評価考察 → 発表
テーマ選定
チームの方からいくつかテーマの候補をいただき、それぞれについて少し調べてテーマを決定。
論文サーベイ
テーマ決定後、どんな手法で課題に取り組むかの参考にするため論文をサーベイしました。以下にその中からピックアップして紹介します。日本語の論文が中心となってしまいましたが、もし他にもこんな論文があるよ、こんなキーワードで調べてみたら?というものがあったら是非教えていただきたいです!
発話誘導について
発話誘導はどのようにして行われるのか?何を基準としているか?ということが知りたかった。
- 非言語音響情報を利用した聞き役対話システムに関する検討
非言語音響特徴量としてユーザー発話区間中の平均発話音量、発話長、有音率を使用。ユーザー入力である 3 種類の非言語音響情報と現在のシステム状態(話題転換、質問、傾聴、自己開示、共感)に対して、システムの次の状態を推定し、その状態にあった発話を行うといった研究。非言語音響特徴も対話を制御する上では考慮すべき情報であると考えられる。 - 自律型アンドロイド ERICA による傾聴対話、自律型アンドロイド ERICA による就職面接対話、実験の動画。
2つの研究ともユーザーの発話や反応に合わせてさまざまな対応が取られていたが、今回着目したいのは特にユーザーの沈黙に対しての部分で傾聴対話の研究ではユーザーの長い沈黙に関しては話題提供を行うといった対応をとっていた。
就職面接対話の研究では、沈黙が続く間は不自然にならないようにERICAのうなずきを表出する。ユーザーの回答の内容語(名詞)数が少ない場合には、「えっ」や「もう一度お願い します」などをERICA が言うことで、ユーザーが十分な回答を述べるまで待つようになっている。ただしどちらも評価実験は行っていないのでこれらの対応の有効性については不明。ERICA系の研究は扱っているタスクとしてはロボットとして実体が存在して、雑談を自然なものにすることが目的となっているので今回目指したいこととは若干方向性が違うがどのようにしてユーザーの発話を促すかという部分は参考になった。
他にも以下のような論文なども読みました。
- 非言語音響情報を利用した話題誘導を行う対話システムの検討
ユーザー満足度の高さについて発話欲求度と話題の距離の近さ、非言語音響的特徴との相関関係を調べたもの。 - 非言語情報を用いた対話システムにおける対話破綻の検出
雑談音声対話の動画に対し、音響情報と視線情報を用いて対話破綻検出を行った論文。
沈黙について
そもそも沈黙には分類があるのか?人間はどれくらいの沈黙が続くと不快だと感じるのか?システムの設計に活かせる情報がないか?などが知りたかった。
- 人間とロボットの会話における「間」のデザイン
人間とロボットが会話する際の「間」に対して人間はどのような「間」をロボットに対して取り、ロボットの「間」にはどのような意味を感じるかを実験して調べた論文。
人間はロボットの呼びかけに対し返答まで平均1930msかかる。ただし完全な沈黙のみではなく「えーっと」などのフィラー含む。簡単な質問には500msほどで返答した。 男女別の平均の返答時間は、男性は1600ms、2200msでやや女性の方が長い「間」をとるという結果になった。
この実験ではロボットは人に対して平均4900msの「間」をとって反応させた、人間はその「間」を以下のように解釈したという結果になった。- 意味論的な「間」36%(話す内容を考えていた)
- 機械的な「間」36% (ロボットの遅延や処理時間)
- 相互作用的な「間」19%(相手を意識したためのためらいや感情的な沈黙)
- 言語・文法的な「間」6%(言葉や言い方を探していた)
- 有効回答なし 3%
実験ではロボットの「間」に対して、ロボットが何か考えている間だと評価する人もいたというのが面白い点だが、今回私が扱うテーマではロボットの実体がないためこの評価は少なくなる気がする。むしろ機械的な間だと思ってしまう点に注目したい。
この論文から考察すると、今回テーマで扱う音声の自動応答は簡単な質問であり、人間同士の会話に寄せるなら自然な沈黙は2秒までと予想できる。機械的な間は人間が不自然、不快だと感じる要因になると考えられる。そのことから2〜4秒の沈黙があったらシステム側から何かアクションがあったほうが良いのではないかと推察しました。
他にも様々な論文を読み、自分なりにまとめましたが長くなってしまうのでここでは省略します。
課題設定
発話誘導を適切に行うことができれば会話がスムーズに進行する。ERICAの例のように雑談対話における発話誘導の実験はあるが、雑談ではないカスタマーサービス等の自動応答について発話誘導を実験したものはあまりない。そこでこういったシステムにおいて適切にユーザーの発話を誘導することを考える。その際にユーザーが沈黙してしまう場合に注目する。
そこで私はユーザーの沈黙にも以下のようにいくつか種類があると考え、種類分けをしました。
- 聞き取れなかった(聞き取り不能の沈黙)
- 聞き取れたが返答に困った、システムの言ったことが理解できていない(理解不足の沈黙)
- 何を言うか考えている(思考中の沈黙)
- 会話の間としての沈黙
沈黙が続くと対話が進まなくなってしまい、適切にサービスを遂行することができない。
それぞれの沈黙に対して様々な対応が考えられる。
- 同じ質問を聞き返す。
- ユーザーが理解したかの確認を入れる。
- 違う表現で聞き返す、要求項目のみを簡潔に伝える。
- 逆にシステム側から聞き返しで急かされてるみたいでマイナス印象を与える可能性もあり
今回のインターンでは聞き取り不能の沈黙に注目して、どのような対応を取ればユーザーにとって良いものとなるかを検討するため実験を行いました。
実験したシステム
沈黙時の発話誘導として以下のシステムを比較しました
- 発話誘導なし
発話誘導あり(同じ内容を聞き返す)時間の都合もありますが、今回は聞き返しあるなしで比較し検証したいためこれは試さない- 発話誘導あり(短く必要な情報を聞き返す)
紹介した論文なども参考に今回の実験ではシステム発話終了後、ユーザーの無音区間が4秒続いたら、ユーザーが沈黙したと判断することにしました。
実験の流れ
被験者はサイバーエジェント社員の方々から協力していただける方を募集しました。
被験者を大きく2つのグループに分けて実験を行いました。
自動応答に慣れてるグループ
- 発話誘導なしのシステムは実験しない(普段から試しているから)
- システムがどんな機能かは伏せた状態でシステムからの要求に対して迷って黙ってしまう体で受け答えをしてくださいと伝えて、今回実装した聞き返しの機能について試してもらって今後のシステムの機能改善にいかすことが狙い。
自動応答に慣れていないグループ
- 実際に使われる場面でのユーザーだと想定して、よくわかんないなって思ったら途中で切ってもらうようにする。これにより自動応答の完遂率を見る。こんな感じで受け答えしてくださいとかはの説明はなしで純粋に自動応答をおこなってもらう。これにより、最初の発話で喋っていいのか迷ったりするのか、困ったときは沈黙するのかそれともいろいろ喋って聞き返してくるのか?などの考察を行う。
かけた電話番号に応じて発話誘導機能の有無がわかれるように実装、説明資料を配布しその指示に従い被験者に電話をかけてもらい、その後アンケートに答えてもらうという形で実験を実施しました。
2つのシステムについて実験し終わったあとにアンケートを実施しました。(アンケートの際の説明がバイアスになってしまうのを防ぐため)
アンケートの設計
google formでアンケートを作成し、集計しました。アンケートの設問は以下のような感じで作成。
- 自動応答の達成度合いについて → 完了/途中で終了、途中で止まった理由について聞く
- 対話の進行具合に関してどう感じましたか? → スムーズ/どちらでもない/不自然だと感じた、自由にコメント
- 途中で沈黙してシステムに聞き返された場合
- 聞き返されることをどのように感じましたか? → 親切/どちらでも/不快、自由にコメント
- 聞き返されるまで時間は適切だったか? → 早い/適切/遅い/どれでもない、自由にコメント
- 聞き返しの文章が長さは適切でしたか? → 短い/適切/長い/どれでもない、自由にコメント
結構コメントの部分でいろいろ書いていただけたので被験者の感じたことなどが詳細にわかり、考察の際に参考になった。
実験結果まとめ
アンケート結果、コメントなどを全てまとめようとすると長くなってしまうのでまとめると。
- 発話誘導の効果はありそうか?
- 初めて自動応答に触れるユーザーの中には最初の質問で発話していいか迷う場合あり
- これに対しては効果あり
- ただもっと明確に発話タイミングを示すという方法も(例:ピー音)
- 思ったよりは沈黙による発話誘導が行われた印象
- 初めて自動応答に触れるユーザーの中には最初の質問で発話していいか迷う場合あり
- 不快な要素になるか?
- 不快と親切で意見がわかれた
- 聞き返しの口調がキツかった
- ユーザーが発話しようとしたタイミングに被った
- 聞き取れず困っていたり、話して良いのか迷っていた人は親切だと感じた
- 不快と親切で意見がわかれた
- 沈黙だと判断する秒数は適切か?
- 適切であると答える人もいるが、4秒は早いと感じる人も多い
- ユーザーによっては急かされてると感じる
- 聞き返しの文章の長さは?
- ほとんどの人が適切と答えた
という感じの結果になりました。この結果を踏まえてシステムの改善ポイントを考えました。
今後のシステムの改善
私が考えた今後のシステムの改善ポイントは以下のようになった。
- トリガーとなる沈黙の秒数はもう少し長めにする
- 急かしてる感じも出にくい
- ユーザーの発話タイミングに被りにくくなる
- 発話誘導の文章についても再検討が必要
- 文の表現の指摘あり
- 今後は直前のシステムの質問によって沈黙に対する対応を変えていく必要ありそう
今回の実験の狙いとは少し外れる部分だが、アンケートの最後に自由にコメントや感想を書いてもらった部分でシステム改善に参考になりそうな意見もあり、その辺りから考えられる改善ポイントは以下のようになる。
- 自動応答が認識した内容の確認、復唱が欲しいという意見が多い...
- フィラー等にも対応できるような仕組みがうまく考えられるといい
実験における反省点
- 実装の問題で実験がうまくいかない部分があった
- 事前に自動応答ですと伝えていたことがバイアスになったかも?
- システムとして悪いことではないが、発話誘導なしの時点で自動応答の完遂率が高かった
- 事前にアンケートに答えてもらうよと被験者に伝えたことで意識的に話を聞くようになった?
- アンケートの設問に関しても詰めれた部分があったかも
- 発話誘導なしのシステムに関する質問が少なかった
- 状況やシステムの説明などもう少ししっかり
- 被験者によって回答の意味のブレが出にくいように
その他インターンでやったことなど
- 論文読み会
テーマ選定や手法検討の際にまとめた内容についてAI事業本部の方々にむけて発表させていただく機会をいただきました。緊張しましたが、サーベイした内容について議論ができてよかったです。 - CA BASE CAMP
サイバーエージェント全社でのテックカンファレンス。例年はリアルで大きな会場でやっているらしいのですが、今回はバーチャル空間での開催でめっちゃ未来を感じました。かなりオープニングトークや映像とかも気合が入ってる感じで凄かったです。ポスターセッションを主に見てました。ちょうどインターンの時期と被ったのはラッキーで貴重な体験ができました。 - 同時期にJOBインターンで参加していた方とのオンライン懇親会
- NLP若手の会 (YANS) 2020への参加
AIチームの方々は発表側で参加していました。他のブログの方にもチームの方々の参加報告の記事があると思うので、ぜひそちらもご覧ください!私は聴講で参加させていただきました。
インターン前の目標
人事の方とも相談させていただき、私個人がインターンに参加する前に立てた目標として
- サイバーエージェント、AI Shiftはどんな雰囲気?
- サービスとしての対話システムの実情は?
- 普段やっている研究とのギャップがある部分が知りたいなと思っていたため、研究と違う点、難しい点などを知ること
- インターン、実務経験がないので経験を積みたい
- インターンで私はこれをやりました!といえるような何かしらわかりやすい結果を出したい
といったようなことを掲げていました。今回私が選んだテーマが被験者を集めて実験して考察というものだったので最後の何%改善!みたいなわかりやすい結果を出せたかと言われると少し微妙かなとは思っているのですが、これらの目標は概ね達成できたのではないかと個人的には思います!
インターンの感想
とにかくサポートが手厚いなという印象でした。人事の方やトレーナーの方と定期的な面談の機会が設けられており、困っていることや不満点がないかなどインターンに関しての相談や、就活についても相談に乗っていただいたりアドバイスを頂いたりしました。
普段はリアルでランチという形らしいのですが今回はリモートだったのでzoomでのオンラインランチという形で、チームの方だったり、AI Shiftのビジネス側の方、さらにはAI事業本部の中で他の事業に所属している方ともお話しさえていただく機会があり、幅広くサイバーエージェントではどんな事業を行っているかの話が聞けたり、なぜサイバーエージェントに就職しようと決めたのかといったお話が聞けました!
インターンとして取り組むテーマも受け入れ先との相談にはなりますが、受け入れ先の事業がやりたい方向とマッチしていれば割と自由なことがやれそうだなという印象はありました。
9月は連休などもあり実際にインターンとして働いたのは18日間でしたが、約一ヶ月が本当にあっという間に過ぎてしまいました。率直な感想で言えばとにかく楽しかったしためになりました!
サイバーエージェント、AI Shiftの雰囲気
- 社員はもちろん、インターン生や内定者バイトの方もやっぱり優秀な方が多い。
- esaなどをしっかり活用した情報、技術の共有への意識が高いなと感じたり。
- 何事も計画して実行し何かしら結果を出すといったサイクルのスピード感が早いなととても感じました。
- 社員の方のお話を聞いていると若手の裁量の部分が大きかったり挑戦する環境、雰囲気が整っているなと感じました。
しっかりと根拠のある意見なら通るし、とりあえずやってみたらと言われるような印象でした!ただし、自分で主体的に動くといったことはとても大事で、新卒から仕事をどんどん見つけてチャレンジしていくことは意識した方が良いと社員の方がおっしゃっていました。 - AI Shiftでは働いている社員の雰囲気がとてもいいなと感じました。社員の方がやっている朝会コンテンツというものがあり、朝から楽しそうな雰囲気で業務がスタートしていました笑。この辺の雰囲気は事業ごとに結構違うらしいので、様々な部署の方にお話を伺えると面白そうです。
フルリモートでのインターン
最初はうまくいくか不安でしたが、意外となんとかなったというのが正直な感想です!slackのtimesチャンネルを使った細かい情報共有だったり、より密に相談をしたい場合はトレーナーの方、チームの方とzoomをつないでという形で進めていきました。感じたメリットとかデメリットとかを挙げるとすると、
メリット
- 遠方からのインターンでも参加が容易
- 朝に余裕のある生活
- ランチがオンラインなので部署を跨いで様々な方と気軽にお話しできた
- 結局家で作業なので変に緊張しないくて済む
デメリット
- 社員の方にもインターン生が今どんな様子かがわかりにくい
- 雑談の機会とかはやはり出社した時に比べて少なそう
- 働く雰囲気を生で感じにくい
- オフィスの様子が伝わりにくい
などが挙げられるかなと思います。最初の部分はslackのtimesチャンネルを作って状況や困ったことを報告したり、他の部分もzoomでオフィスツアーなどしていただいたり、社員の方々も朝会、夕会のzoomでも僕のことを気にかけてくれたりと、すごいその辺りのサポートや気遣いがかなりあって特別不便には感じませんでした。
最後に
インターンを通じて本当に様々な方にお世話になりました!最初は長いなと思っていた約1ヶ月があっという間に感じました。得られるものもかなり多く、貴重な体験ができました。この記事がサイバーエージェントやAI Shiftでのインターンに参加したい方や迷っている方、インターンを探している方などの参考になれば幸いです。長くなってしまいましたがここまで読んでいただきありがとうございます!