2021年5月20日木曜日

「おすすめ」がおすすめじゃない時。レコメンド機能をうまく設計するコツ

 

(画像:Matej Kastelic/Shutterstock.com

 

レコメンド機能による「おすすめ」にがっかりすることはありませんか。映画評論サイト「ロッテントマト(Rotten Tomatoes)」では、評論家やユーザーの評価をまとめて掲載していますが、ここで90%以上の高評価を獲得した映画が必ずしも私の好みに合うとは限りません。むしろ30%未満の作品のほうがよっぽど面白かったこともあります。このおかしな現象を人工知能(AI)は解消できるのでしょうか。

 

AIシステムを育てるには、質の高い入力データが必要です。米国音楽配信のPandoraのレコメンドエンジンには、各楽曲のジャンル、リズム、コード進行に関する人間による注釈と、ユーザーからの何千億ものフィードバックが統合されています。次に、これを70以上ものアルゴリズムにかけるのです。気の遠くなる作業ですよね。その割には、なかなか好きな曲が表示されず、残念な気もします。そこで、自分の好みの映画が見つかる、もっとシンプルなAIシステムを紹介したいと思います(画像1)。私がいつも行っているデザインプロセスを順を追って説明していきます。

 

画像1:シンプルなステップでもっと賢いAIレコメンドエンジンを構築する(画像:マウザー・エレクトロニクス)

 

まずは質問から

まず、要点を1つの質問にしてみます。「より賢く、より精度の高い映画レコメンドエンジンとはどんなものか」。次に、ユーザーが求める利点(目的)を書いてみます。「自分の好みの映画をシステムが正確に予測してくれること」。もちろん、この2つ文の間には大きな空白があるのですが、この利点は最初の質問の答えとなっていなければなりません。もし答えとならない場合、あるいはこの質問の答えとなる利点が他にも考えられるなら、最初に戻り、質問と利点が一致するまで、そのいずれかを単純化していかなければなりません。

出発点とゴールが明確になったら、ゴールから出発点に向かって、どの地点でも最初の質問の答えになるよう単純化してゆきます。既存のソリューションの不満点を言わせてもらえば、 例えば、ロッテントマトには多くのレビューが掲載されていますが、ユーザーはどの映画がいいかレビューを読んで分析しなければなりません。こちらが頭を使わなくてはならないのです。私がその映画を気にいるかどうかはシステムに判断させるべきではないでしょうか。あるいはもっと単純に、システム私が好きそうな映画だけを表示するべきです

機械が機械らしく機能するためには、データから感情を取り除き、人間性が排除されなければなりません。この意味で、映画評論家は意見を持ちすぎています。ここで必要なのはただ2つ、「いいね(好き)」か「やだね(嫌い)」です。つまり「1」か「0」という2進法の世界になるので、問題はこの上なく単純化されます。

システムの概要を考えるにあたり、私はよく一般化して考えてみます。「映画評論家の意見は、私とは考え方が違うため信頼できない。システムは私と同じ考え方の人たちと私をマッチングさせる必要がある」。ここで極めて重要な質問は、「なぜその人の意見が信頼できるのか」です。既存のシステムの多くは「1」(好きな映画)にばかり依存し、「0」(嫌いな映画)を無視していますが、そこに間違いがあると私は思います。というのも、この「0」こそ機械の精度を飛躍的に改善してくれるからです。

例えば、シカゴ出身のジェレミーというユーザーが、映画『ゴッドファーザーPart III が好きで、『トップガン マーヴェリック』が嫌いだったとします。私も両作品については同じ意見です。次にジェレミーが私のまだ見ていない映画『リズム・セクション』を見て、 「いいね」をつけたとします。この情報に基づき、システムは私に『リズム・セクション』画像2)を勧めます。この映画を見た後、私も「いいね」をつければ、ジェレミーのレコメンドの重みが上がり、彼のコメントの信頼度も上がります。

 

画像2:意見が増えるほど、レコメンドの精度は上がります。(画像:マウザー・エレクトロニクス)

 

つまり、とても単純なのです。システムが適切に設計されていれば、ほんの僅かなデータポイントで目的に到達し、しかもそこからシステムを構築していくことができます。このケースでは、ユーザー数が増えれば増えるほど、映画の「いいね」と「やだね」が蓄積され、精度は向上していきます。

 

よりシンプルに

システムの構造を設計したら、次に「システムをシンプルにできないか」を考えます。

まず、シカゴ出身のジェレミーが誰なのかを知る必要はありません。彼のプロフィール写真もその他のおすすめ映画も要りませんし、 名前すら知る必要はありません。むしろ匿名性の高いシステムの方がいいと思います。私の見るべき映画を推薦してほしいだけなので、ソーシャルメディアの情報はすべてシステムから削除して構いません。つまりユーザー画面には、私が好きそうな映画のポスター1枚だけが表示されることになります。

 

私はこれまで、単純化を怠ったためシステムが失敗した例をいくつも見てきました。目的を達成できるのであれば、ソリューションはシンプルであればあるほど洗練されるということをいつも忘れないようにしています。

 

拡張性

今回紹介したこの映画レコメンドエンジンは、各作品のデータポイントを1つ集めるたびに賢くなってゆきます。10,000人の各ユーザーから50作品についての評価が集まれば、十分な精度に到達すると思います。もちろん、データが実証され、私へのおすすめ映画が正確に予測できるようになるまで、あくまで推測の域を出ません。でもこれは非常に重要です。この極めてシンプルなシステムでは、このモデルをより大きなユーザーセットに拡張していくことにより、精度を簡単にテストし、高めていくことが可能になります。

システムには美しさが必要です。シンプルで賢いAIシステムの設計を目指すのなら、まずは簡単な質問から始めてみてください。それから、シンプルであること、 拡張性を忘れずに。

 

 

★★★★★★★★★★★★★★★★★★★★
★★★★★★★★★★★★★★★★★★★★



著者

Stephen Cassar

 

ワークフロー管理、eコマース、人工知能に関連する製品戦略とアーキテクチャ設計全般についてFortune 100企業から助言を求められ、現行プロセスに対し長期的な成果と投資対効果もたらす改善点などを提案している。

同氏はCTO/チーフシステムアーキテクトとして、SaaS(サービス型ソフトウェア)プラットフォームの構築に関する深い知識を有しており、複数のレガシーシステムを統合し、スケーラブルなクラウド型アーキテクチャにより複雑なデータセットの安全な統一表示を実現している。

 

0 件のコメント:

コメントを投稿

デジタル治療でヘルスケアの未来が変わる

  医療ヘルスケアの未来   「あのう、先生、こうすると痛むんですが」。「その症状に関するアプリは、もうダウンロードしてみましたか」。医師と患者との間で こ んな会話が、不整脈、うつ病、パーキンソン病など、多くの病気について交わされるようになるのは、もうそんなに遠い先...