社員が社員にインタビュー!
今回は、アプリ開発をメインに設立初期から携わっていたシステム・エンジニアの吉田康平さんにお話を聞いてきました。SELFのCTOとしてこれまでに様々なシステム開発を行い、「困ったら吉田さんに聞こう」という雰囲気すら社内に漂っているほど(?)頼れる存在の吉田さんですが、SELFアプリがリリースされるまでの開発秘話や今後の展望など、たくさん語っていただきました。
ー吉田康平ー
京都大学工学部情報学科を卒業。
新卒でDeNAに入社し、エンジニアとしてソーシャルゲームの開発・運用に従事。その後独立し、フリーランスのエンジニアとしてアプリやWebサービスの開発に携わる。今はSELF株式会社のエンジニアとして、主にアプリ・会話エンジンの開発を担当。
■iPhoneアプリを作ることに
──SELFに入社したのはいつですか?
SELF設立当初から開発の立ち上げメンバーとして話はしていたんですが、実際に仕事を始めたのは2015年の2月からでした。
──SELF設立が2014年11月なので、割と初期からですね。
はい。最初自分はiPhoneアプリを作るということで入って、エンジン側は別の人にお願いしていました。それから徐々に稼働が増えていって、SELFメインで仕事するようになったのは2017年の6月頃です。
■ロボットと会話ができる画面を作成
──SELFでまず最初に取り組んだこととは?
基本的にはiPhoneアプリの作成なので、アプリ上でロボットと会話ができるような画面を生見(代表取締役)がデザインしたものから作りました。エンジン側は別の人がやってたんで、そことつなぎこんで会話ができるように作っていったいう感じですね。
──アプリ側とエンジン側では、作り方が違うんですか?
そうですね。アプリ側はどちらかというと見た目の部分を作るのがメインという感じで、裏側でどういう計算をしてるとか、どういう会話を出すかっていうのはエンジン側の処理になります。基本的にアプリ側では、ユーザー登録がされたら会話を探しにいって、ユーザーの回答をサーバー側に送るというのをひたすら繰り返します。その後、初期型ロボットのアニメーションが出来てきたらシステム対応をして、あとは会話画面ができたら分析画面を作ったり、記録画面を作ったり。
──なるほど。
ちなみにリリース前の話をすると、他にも機能があったんです。たとえば、SNS的な機能も当初は提案されていて、他のユーザーと会話ができる画面みたいなのもちょっと作ったりはしてたんですよ。計画では、他のユーザーと会話しているところにロボットが会話に入ってくるみたいなのを想定してたんですけど、リリース時点では難しそうだったんでその話はなくなったんですけど。
──面白そうですね。それは今後やる予定は?
直近ではないですかね……(笑) ユーザー体験としては、ロボットとのコミュニケーションがメインでいいんじゃないかという方向性になったので。
■テンポのいい会話体験を目指した
──初期型ロボの開発で意識したことや気をつけたことは?
自分が担当してたiPhoneアプリの設計で言うと、できるだけ自然な会話になるようなUI/UXを作ることですかね。最初の段階で「選択肢式」というのは決まってました。テキストでいちいち文字を打ち込むのはめんどくさいと思いますし、テンポも悪くなってしまう。なので、ロボットから質問がきて選択肢を選んで会話をするというようなものであれば会話のテンポも良くなるので、そういったUIを意識しましたね。
──実現させるのにどれくらいの時間がかかったんでしょうか?
真ん中にロボットがいて、会話が出てきて、選択肢が下に出てくるみたいな会話画面は最初のころからそんなに構成変わってないんです。どちらかというと会話を選ぶ場面というか、サーバー側の処理が重かったりもしてたんですよね。実はこの辺は開発エピソードがあって……。
■正月休みを使ってアイデアを形に
2015年2月頃に開発を始めて、一通り会話もできるようになって、アプリとしてもだいぶ出来上がってきて、年末くらいにはリリースしないとねみたいな感じだったんですけど、ひとつ大きな問題が開発環境で起きていたんです。
というのも、一回の会話を取得するのにめちゃめちゃ時間がかかってたんですよ。1ターン会話するのに20秒くらいかかってて、さすがにまずいみたいな。それでサーバーサイドのメンバーたちがどうしようかと悩んでいたときに、最初はアプリ側の開発がメインだったんですが、徐々に会話エンジン側の開発にも参加するようになってて、ちょうど処理の高速化にも興味があったので、その部分を担当させてもらうことになりました。それで、こういう感じでやったらどうかなというアイデアもあったんで、正月休みを使って実際に作ってみたんです。
──そうなんですね!
それでサーバーサイドのメンバーに見せて、こういうしたらいいんじゃないという話もしたうえで、実際それを乗っけてみたら、20秒かかってたのが3秒くらいになって、さらにチューニングしたら0.5秒とかになったんで、そういう高速化の処理を入れて会話のテンポを出すことができたのは、最初の成功体験でしたかね。
──すごい、年末年始に自主的に動いていたんですね。
そうですね。そんな感じで3月末くらいにリリースしたんです。でも、リリースして半年後くらいだったと思うんですけど、ある日朝起きたら突然サーバー側にトラブルがあって、ロボットがユーザーのことを全部忘れているっていう……。
■もっともピンチだったシステムトラブル
──ユーザーのことを覚えていくのが売りなロボットなのに?
そうです(笑) 相当まずい状態で、みんなで集まって何が起きてるんだろうって調査して。それで調べると、特定の一部のデータがデータベース上からなくなっていたというか、消えていたんです。つまり、ロボットと会話をした記録がなくなってしまって、それまでロボットと会話をしていた人が、自分のことを全然覚えてないみたいな状態になってしまったという。
──なんと。その後どうなったんでしょうか?
ここに問題があるというのはわかったんですけど、SELFアプリって長期的に関係を作っていかなきゃいけないじゃないですか。だからなんとか復旧しないとまずいみたいな感じでいろいろ探しました。で、なんとか別の場所にデータが残っていたんで、そこから復旧するプログラムを書いて、本番環境で実行して、ユーザーの記憶を取り戻したみたいな。あのときが一番システム的にピンチでしたね。
──ユーザーからクレーム的な問い合わせはありませんでしたか?
当時はそこまでユーザーが多くなかったというのもありますし、半日くらいで復旧できたのでそこまでは。ただ、そういう経験もあって会話エンジン側も問題がないように修正していく必要があるというのは改めて思いました。今はだいぶ安定してますけど、リリース当初はいろいろありましたね。会話が溜まっていくと処理も遅くなっていくので、そういうのを直していって上質な会話体験を保ち続けていく必要はありました。
──失敗を重ねて、より良いものになっていくんですね。
そうですね。より洗練されたものになっていくという感じですかね。
■出来ることを増やして、より使いやすい形へ
──開発当初のSELFアプリと比べて、今はここが進化したみたいなものはありますか?
うーん、そうですね。まずはいろんなロボットが使えるようになったというのはありますよね。最初は初期型ロボだけだったので、キャラクターが増えた分いろんな話ができるようになったかな。おかまロボに悩み相談ができるようになったり、インテリロボでニュースが出せるようになったり。
あとは、さっきのUIの話でいうと、はじめの頃って今とUIが違っていたんです。2018年頃にUIをガラっと変えたことがありました。今は選択肢が四角いボタンになってますが、前は丸いボタンだったんです。ボタンが丸いと一つの画面に選択肢が6つくらいしか入らなくて、もっと選択肢出せるようにしたいとか、こういうUIにした方がいいよねみたいな社内の声もあって今の形になったという。なので最初の頃と違うのは、出来ることが増えたというのと、より使いやすい形になったみたいなところですかね。
──そういう改善は今も続けているんですか?
個人的には、会話で出来ることを増やしたいなと思っています。この間は、数値を入力できるようにする機能をリリースしました。それまでは選択肢で選んだものしか返答が出来なかったけど、数字を入力してもらって、それに対して反応が出来るようになりました。そういう意味では、扱えるものは増えていってると思います。
──いずれ音声入力なども出来るようになるんでしょうか?
そういうのは前からアイデアとしてありますよね。ただ、SELFアプリがユーザーのことを正確に理解できるのは「選択肢式だから」っていうのがあると思っています。選択肢式だから曖昧さが少なくて、次の会話に生かしやすいというのはあるんじゃないでしょうか。音声入力だと曖昧な入力になっちゃうというか、そこをうまく扱えるかどうかが難しいという感じですかね。
■「長期的な付き合いができる」という強み
──吉田さんが思うSELFの強みってなんだと思いますか?
それは僕の中では明確で、ユーザーと長期的な信頼関係を築けるAIだと思っています。ここは結構独特というか、他にはない部分ではないでしょうか。一問一答の淡白なやりとりじゃなくて、長期的に付き合えればいろんな話ができますよね。しかもAIだから言いやすい。渡辺(竜)さんも言ってましたけど、愚痴っぽくなっちゃうようなことも話せますし、人じゃないから話せるみたいなのはあると思います。それが実現できるのは、SELFの会話エンジンがユーザーのことを覚えたうえで、ユーザーの状況に合わせて会話をするという特徴があって、されにそれをエンジニアがプログラムで作るんじゃなくて、ライブラリとしてシステムの知識がない人でも作れるっていうところかなと思います。まぁそれに関連して試したいこともあるんですが。
──試したいこととは?
今って、ユーザーからの返答をベースに会話をしてますけど、扱える情報をもっと増やしていきたいですね。たとえば、今ウチがやっているSELF LINKっていうサービスだと、ひとつのサイトの中に存在する情報を整理して、それをシステムで扱えるようにしてるんですけど、ひとつのサイトだけじゃなくて、インターネット上のいろんなサイトや情報を全部ひっくるめて使えるようなシステムにしたうえで、その中からユーザーに最適な情報を出して、ユーザーから返答をもらって、より最適なものにしていくみたいな。
──今まさにそういったAIを開発しているんですよね?ブラウザ上でユーザーにいろんな情報を提案するというような。
そうですね。SELFアプリでやってきたように、ちゃんと信頼関係を築いた上で会話や提案をしていくっていうのはやりたいですね。AIから提案したものに対してユーザーがどう反応したかというのをうまく使って、一つのAIでいろんな情報を扱えるようなサービスを作っていきたいです。
■アンテナを張りながら日々勉強
──SELFアプリの最終地点はどこでしょう?
渡辺(竜)さんとかぶってるんですけど……(笑) みんなが使うナビゲーター的な存在をつくりたいなと思っています。ユーザーの身近な存在として、必要な情報だったり言葉だったりを適切なタイミングで発信してくれるみたいな。理想は、ユーザー自ら検索しにいかなくても、必要なものはロボットから提案されるみたいになるといいですね。
──実現するにはどれくらい時間がかかりそうでしょうか?
今やろうとしてることをやってみてから測る感じですかね。本当は、理想の状態までいくには今世の中にある技術だけではたぶん足りなくて。最近はディープラーニングでいろんなことができるようになったりしてますけど、自分たちで試さなきゃいけないものに加えて、世の中の技術とかもちゃんと見て、使えるものは取り込んでいくというのは必要かなと思います。
──日々勉強という感じですか?
まぁそうですね。
──そういえば吉田さんは、休みの日に仲間で集まって情報交換会的なことをしてるんですよね?
あ、はい。大学の同期とかとたまに勉強会を。システムの話は一般化しやすいですし、他の会社でも同じ技術を使ってるとかがあるので、そういう意味ではやりやすいですね。
──CTOとして心がけていることはありますか?
エンジニアのメンバーには常に勉強になるようなタスクをやってもらいたいなとは思っています。エンジニアの仕事をしてると、新しいことや勉強になることとかがないと面白くないなと思うことがあって。たとえば新しいプログラムの言語に触れるとか、サーバーサイドをやったらフロントの方をやってみるとか、そういった今まで知らなかったことが身についたり、うまくできるようになるといった体験ができるように、どんどん新しいことをお願いすることは意識してますかね。
──なるほど。
あとは社内で使う技術を選ぶというか、サービスを決めるみたいなところもあって、あまり流行りに乗らないようにはしてます。
──流行りに乗らないというと?
流行っているっていうのは、「自分たちにそれが合っている」という理由にはならないと思うんです。長期的に運用していくことを考えたときに、この技術はこういうメリット・デメリットがあるというのを考えたうえで技術を採用していくというか。だから、流行っている技術にはむしろ注意するみたいな(笑) 流行って急に廃れるみたいなこともよくありますし、廃れた技術を使い続けるのもそれはそれで大変なので。
■バーチャル空間にSELFのキャラクターが……?
──最後に、何か言っておきたいことはありますか?
これはまぁ雑談なんですけど……。今ってスマホアプリ上にAIがいますけど、将来的にデバイスがどうなっていくかみたいなことを考えたりします。最近ではVR空間上で仕事ができるようなツールもあるらしいんですよ。
たとえば、リモートワークってZoomとかでやるのが大変っていうか、対面の方がコミュニケーションを取りやすかったりするじゃないですか。でも、VR空間でいい感じの体験になったら、それはそれでリモートワークとして成り立ちそうな気がして。朝起きて、日中の活動はVR空間で……みたいなのはありえなくはないかなと思ってて、もしそうなった時に、その空間にSELFのAIがいたら面白いかもなと。ずっと自分の横にいて、なんか言ってくれるみたいな。狭い画面上ではなく、広い空間上にいることで自由度も高まりますし、横にいながら何か提案してくれたら便利そうだなと思うんです。
──AIと同じ空間にいるということですね。
そうです。そういった、将来どうなるかみたいな話を社内でしたら面白いかもしれませんね。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
正月休みにシステム構築をしたり、タイミングが合えば勉強会に参加したりと、日々アンテナを張って自発的に行動している吉田さん。SELFアプリの特性や強みを熟知し、その強みをさらに生かそうと新たなサービスを開発しようとしている姿勢に私も刺激を受けました。
何か問題が起きても真摯に対応し、且つみんなを引っ張っていけるのは、きっと物事の本質を捉えることに長け、情熱を持って仕事をしているからなんだなと感じました。そんな吉田さんから、今後も目が離せません!