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

 

AIを進化させる「強化学習」とは? 自動運転の観点から解説!

 

(画像:a-image/Shutterstock.com

周囲を見渡すと瞬時に状況を察知し、重要な情報だけに目を留め、必要とされるタスクを遂行する。ほんの数年前まで、この技術SFの世界の話でした。

ところが今日、この技術のいくつかはすでに私たちの生活の一部になっています。人間の言葉の微妙なニュアンスにも対応できる音声アシスタント、画像を使って人間の医師より正確に癌発症予測する医療アプリケーション、時々刻々と変化する環境の中を走行する自動運転車。これらは、今、注目されているテクノロジーのほんの一例です。

このような技術革新の進歩に貢献しているのが、機械学習の3つの手法の1つである「強化学習」です。強化学習によって、コンピュータは環境の重要な特徴を認識し、最適な判断を行えるようになったのですが、これはつい最近生まれた技術この記事では、強化学習(RL)、人工ニューラルネットワーク(ANN)、深層学習(DL)について詳しく見ていくことによって、人間と同レベルのAIを目指す人工知能アプリケーションの新たな可能性と今後の課題を明らかにしたいと思います。

 

機械学習の手法

機械学習(ML)は、人工知能(AI)の分野の1つで、コンピュータに経験や例から学習させることを可能にします。機械学習の3つの手法のうち、「教師あり学習」と「教師なし学習」はよく知られていると思いますが、この2つは明確に定義された問題や比較的予測可能な問題に用いられます。

 

教師あり学習

教師あり学習(SL)は、注釈付きデータがある場合、問題の解決に使用されます。アルゴリズムは、既知の例からパターンや関連性を学習することによって、未知の例を処理します。その代表的な例が画像認識です。画像認識では、手動で注釈を付けた画像に基づき、撮った画像を正確に分類できるようモデルに学習させます。

 

教師なし学習

教師なし学習(UL)は、注釈なしデータの背後にある構造や関係性を推測するために用いられます。この手法はあまり準備せずに適用できますが、通常、より記述的で探索的になります。一般的に、教師あり学習を使用するための準備段階に使用されます。代表的な活用例は、取引データから顧客グループ識別することですがこれは各顧客層をターゲットとしたマーケティング活動に活かすことができます。

 

強化学習

機械学習の3番目の手法である強化学習(RL)は、今日話題になっている中でも最も複雑で人間らしいアプリケーションの1つです。強化学習は、報酬と罰によって個々の行動を評価して変数を入力し、取るべき行動を決定させる機械学習の手法です。問題の解決方法をそのまま教えるのではなく、報酬を最大化し、罰を最小化するように学習していきます。ある特定の問題や環境だけでなく、動的環境からの複雑な入力情報に基づいて最適な判断を行わせることに焦点を当てています。

強化学習の基本的な考え方は、人間が学習するのと同じようにAIに学習させることです。つまり、報酬によってある目的の達成を目指すのですが、スキルとツールは与えられていても、問題の解決方法は明確に教えられていません。分かりやすい例として、手を開閉してボールを箱に入れる単純なロボットを想像してみてください。ロボットはボールをつかみ、腕を正しい方向に伸ばし、ボールを箱に入れられるよう学習しなければなりません。これには通常、何度も実験を繰り返し、やり直すことが必要になります。ロボットは自分の動作が成功したか否かのフィードバックを受けると、目的が達成されるまで、動きを調整していきます。

ここが教師あり学習とは大きく異なる点です。教師あり学習では良い結果を得るためには、対象を3次元で表現できるよう、大量の注釈付きCAT画像など、多くの例が必要になります。これが、形や色など、どの特徴が正しい判断に関連しているのかをアルゴリズムが学習できるただ1つの方法です。先ほどのロボットの例の場合、教師あり学習では、どこで手を動かし、どれぐらい力を入れたのかなど、プロセスの各ステップを正確かつ詳細に記述していきます。変数の少ないこの例では、細かく記述することは可能かもしれませんが、変数が変われば、学習し直さなければなりません。ボールが大きくなれば、ロボットはどう動けばいいのかわからくなるでしょう。

現実世界のアプリケーションでは、入力、出力、学習データのバランスは驚異的なまでに複雑化します。例えば、自動運転車は大量のセンサデータをほとんどリアルタイムで処理します。環境の微妙な違いを見逃せば、深刻な事態を招くので、常に大きな危険が伴っています。そこで、強化学習が、学習例や指示を作成するのが困難な環境で採用されるようになったのです。

 

強化学習の種類

強化学習には、他の機械学習の手法と同様、下位分野があり、いずれもイノベーションに貢献しています。特に特徴学習(FL)によって、システムは入力データの差異情報を認識できるようになりました。人工ニューラルネットワーク(ANN)と深層学習(DL)は、高度な構文解析、処理、学習に必要なフレームワークを提供し、さらに深層強化学習(DRL)という下位分野が生まれています

 

特徴学習

特徴学習とは、表現学習とも呼ばれ、アルゴリズムでは表現できない入力データの特徴的な個々の構成要素を認識させる機械学習技術です。例えば、自動運転車は、周囲状況を多くのカメラやレーダー、センサで認識しています。つまり多くの情報がありますが、次の行動を決定する上で重要な情報はほんの一部です。例えば、空の色は通常、重要ではありませんが、信号の色は極めて重要です。飛び去って行く鳥の速度は、歩行者がカーブに近づいてくる速度に比べれば、ほとんど重要ではありません。

なぜこのレベルの入力データを表現できることがそんなに重要なのでしょうか。学習に使用されるデータセットは、モデルの精度に大きな影響を与えるからです。学習データは多ければ多いほどよく、 特に、特徴がはっきりしていて、多様性のある例がデータセットに含まれていればいるほどいいといえます。言い換えれば、入力データのはっきりとした個々の特徴は、コンピュータがすでに学習した内容とこれから学習すべき内容との間のギャップを埋め、どのような状況でも100%の精度と一貫性を保ちます。また、特徴を認識することにより、無視してよい特性や外れ値を識別できるため、時間の経過とともにデータ量の大幅な削減につながるのです。


人工ニューラルネットワークと深層学習

このようにデータに大きなばらつきのあるアプリケーションには、堅牢で柔軟性のあるフレームワークが求められています。特に教師あり学習で大きな注目を集めている手法が深層学習です。また、強化学習の原理と組み合わせた手法、深層強化学習と呼んでいます

 

人工ニューラルネットワーク(ANN)の基本的な概念は1960年代に生まれ、人間の脳のネットワーク状をした神経回路構造をほぼ基本としています。人工ニューラルネットワークは、パーセプトロンと呼ばれる人工ニューロンの巨大ネットワークで構成されています。パーセプトロンは、入力信号を受け取り、入力された多様な特徴を評価すると、出力信号に到達するまでネットワークに信号を伝達していきます。

ネットワークはニューロンの数、ニューロン間の結合の強さと数、ニューロンの活性化閾値で定義されます。活性化閾値とは、入力信号を伝達するのに必要な強さです。人工ニューラルネットワークは、柔軟性のある構造をしており、複数の入力層と出力層を持ち、その間にある隠れ層を使って、入力信号を出力レベルで使用できる形に変換します。深層学習という用語は、ニューロンの層が何層にも連なり、それだけ深層のネットワークであることに由来しています。

人工ニューラルネットワークは、誤差逆伝搬法という学習方法により、特に複雑な入力データ動的環境から最適な答えを導き出すのに適しています。例えば、画像の座標や色の値を示すベクトルなどの学習信号が与えられると、ネットワークは生成された出力信号が正しいかどうかを確認し、求めている結果が得られるまでネットワークの重みを少しずつ調整します。何回も学習を繰返した後に、ネットワークは安定し、以前は知らなかった状況が認識できるようになります。

 

人工ニューラルネットワーク、深層学習、強化学習の限界

人工ニューラルネットワークと深層学習は、動的環境で特性を表現し、最適な応答が得られるため、大きな可能性を秘めています。しかし、その能力には、多くの課題があり、人間の知能のある側面に関してはまだ模倣するまでに至っていません。

 

膨大な数のノード、結合、学習の反復が必要

関連性のある問題をモデル化するには、人工ニューラルネットワークが十分な数のノードと結合を持ち、数百万の異なる変数を処理して、分析し、記憶できなければなりません。最新のコンピュータによってやっとこれが可能になりました。同様に、必要な学習の繰り返し回数も数十億にも達する可能性があり、さらにこの数は環境変数の数によって指数関数的に増大するかもしれません。今では囲碁AIの「AlphaGo」が人間の最強の囲碁棋士を破るようになりましたが、強化学習の最初の画期的な進歩が、囲碁のようなゲームであったのは決して偶然ではありません。起こりうるアクションと結果というゲームのルールが、その目的と共に明確に定義されており、AIは自己対局することで数多くのシュミレーションゲームを素早く実行できるからです。もう1つの進歩は、アクションと結果の関係性がさらに複雑な「スーパーマリオ 」や「スタークラフト」のようなビデオゲームです。まだ環境は制限されていますが、多くのシュミレーションを素早く繰り返すことが可能です。

ところが、自動運転のような実世界の話になると、状況は一変します。目的地に安全に到達するという最大の課題は、それでも比較的簡単に定義できるかもしれません。しかし、環境は圧倒的に多様化しており、実際の問題について学習させるためには極めて高度なシュミレーションが必要になります。それでも究極的には、モデル化できない要因を取り込むために、シュミレーションではなく、実際の運転に移行しなければならず、人間の運転レベルに到達するまで注意深くモニタリングを続ける必要があります。自動運転車メーカのウェイモ社は、2020年のプレスリリースで、同社の車が人間のドライバーに匹敵するには、1,400年分の運転経験が必要であると述べています。人間ならほんの数週間練習すれば安全に運転できるようになるのですから、これは驚くべきことです。では、なぜ自動運転車にはそれができないのでしょうか。

 

抽象化と推論

人間がゲームの遊び方や車の運転をすぐに覚えるのは、人間の脳が抽象化と推論によって学習できるからです。人間は本来持っている空間認識能力によって、信号機が異なる視点や状況によってどのように見えるのかを想像できます。また、道路を走っている車が以前に見た車とは色が違うことに気づき、見たことや経験したことから結論を出すこともできます。

このような機能が人工ニューラルネットワークで研究されるようになったのはごく最近のことです。ネットワークは各層で形や色といった入力データの異なる側面を捉えることができるのですが、学習データに明示的に含まれている特性しか処理することができません。日中にトレーニングされたAIは、夜間の状況に対応できない可能性があります。深層学習でも、学習データのそのような違いを考慮しなければならず、学習データからの逸脱の許容度は極めて小さいことに注意する必要があります。

現在、抽象化と推論による学習の様々な技法が研究されていますが多くの課題や限界が明らかになってきました。人工ニューラルネットワークの失敗例としてよく挙げられるのは、シベリアンハスキー犬を他の品種の犬よりも極めて高い精度で検出できるコンピュータビジョンシステムです。よく調べてみると、ネットワークはハスキー犬のほぼすべての画像に写っている雪に注目しており、肝心の犬そのものを無視していたことがわかりました。つまり、システムは、人間にとっては些細なことにすぎない地面の色を犬の固有特性だと思い込んでいたのです。

この例は人為的なもので大した問題にはなりませんが、これが現実世界であったなら悲惨な結果を生んでいたかもしれません。自動運転車の例をもう一度考えてみましょう。事故はまれとはいえ、曖昧な状況が思わぬ問題を引き起こすことがあります。2018年に起きた歩行者の死亡事故では、犠牲者は四車線の高速道路で自転車を押していました。人間であれば難なく歩行者をよけていたはずですが、人工ニューラルネットワークが正しく情報を処理しなかったため、歩行者を跳ねて死亡せるという事故が起きてしまいました。学習には多大な時間をかけていても、この状況について学習していなかったため、「わからないときは、とにかく止まれ」という失敗回避が実行されなかったのです。その結果、システムは人工知能の根幹となる部分が欠けていたために、一見、非合理的に見える反応を起こしたのです。

さらに悪いことに、そのようなAIの盲点は故意に悪用される可能性があります。例えば、画像分類は、意図的に操作された画像が学習時に混入していれば、全く誤った結果を生みます。画像のわずかな変更は人間の目にはほとんどわからないものであっても、人工ニューラルネットワークでは違うものとして認識され、解釈されます。ある事例では、よくあるスティッカーが貼られた一時停止の標識が、誤って全く別の標識として認識されてしまいました。もしこの学習モデルが実際の車に使用されていたら、事故につながっていたかもしれません。当然のことながら、人間のドライバーであれば、その一時停止の標識を見逃すことはないでしょう。

 

課題と限界を克服するには?

このような問題と限界を見ていると、人工ニューラルネットワークが最適な決定を行えるようになるには今後どうすればいいのかという疑問が生まれます。答えは単純です。もっと学習させることです。学習データの多様性と品質が十分になれば、エラー率も下がり、モデルの精度も許容範囲に到達するようになるでしょう。自動運転車の事故率は人間のドライバーの事故率よりもすでに低いと言われていますが、「奇妙な事故」の可能性があるため、普及が伸び悩んでいます。

また、必要な背景知識を明示的にデータ化し、機械学習のプロセスで利用できるようにするという体系的なアプローチがあります。例えばCycorp社は知識データベースを構築し、先ほど述べた一時停止の標識の意味を含む、数百万にもおよぶ概念や関係性を長年にわたりデータ化しています。その目的は、機械が読み取れる形式で人間の知識を手作業でデータ化し、それによってAIが学習データを活用して、少なくともある程度、人間の直感に近い形で未知の状況を判断し、結論を出せるようにすることです。

 

まとめ

周囲の状況を察知し、重要な情報捉え、最適な判断を行う技術は、もはやSFの世界の話ではありません。機械学習の3つ手法の1つである強化学習は、高次元の変数と動的環境に対応できるツールとフレームワークを提供します。しかし、これらのソリューションは新しい課題に直面しており、特に、未知の状況に対応するには、さらに広大なニューラルネットワーク、徹底的な学習、抽象化や推論による人間の学習能力の模倣が必要です。AIは目覚ましい功績をもたらし、現実世界でもますます不可欠なものになりつつありますが、人間レベルの学習能力に到達するまでにはまだ長い道のりが残っています。そこに到達するまでの道を経験することは、もしかしたらSFよりもはるかに面白いことなのかもしれません。

 

 

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



著者

 

 

Michael Matuschek 

 

ドイツ・デュッセルドルフのシニアデータサイエンティスト。コンピュータサイエンスで修士号、数理言語学で博士号を取得。各種産業界および学術界にて様々な自然言語処理プロジェクトに参画。専門テーマはレビューの感情分析、顧客メール分類、オントロジーエンリッチ メントなど。

 

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

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