レコメンデーションシステムの驚くべき世界【後編】

最終更新日:

『レコメンデーションシステムの驚くべき世界』の著者であるParul Pandey氏は、インドの電力業界で働いているデータサイエンティストで、過去に停電に関する問題を機械学習を用いて解決した実績があります。同氏がMediumに投稿した記事では、機械学習を応用する代表的な分野であるレコメンデーションシステムに関するドメイン知識がまとめられています。

一般に優秀なデータサイエンティストは数学・統計学に関する専門知識、データを操作するエンジニア的なスキル、そして取り組む問題に関するドメイン知識を持っていると言われています。レコメンデーションシステムに機械学習を応用することを検討する場合にはそもそもこのシステムは何を解決しようとしているのか、そしてどのような仕組みで動作するのか、といったシステム原理を知っている必要があります。

同氏はレコメンデーションシステムについてその誕生した歴史的経緯、同システムに求められる要件、そして同システムに採用されているアルゴリズムを順を追って分かりやすく解説します。こうした解説からわかることは、機械学習はレコメンデーションシステムが対処すべき問題を解決する手法のひとつに過ぎず、もっとも優れた手法であるわけではない、ということです。また、レコメンデーションシステムに実装するアルゴリズムを選定する際には推奨するアイテムと処理できるデータを考慮すべき、とも述べられています。

以上のようなドメイン知識をふまえたうえで機械学習を解決手法のひとつとして検討する姿勢は、レコメンデーションシステムに限らず全ての機械学習の応用分野について当てはまるものでしょう。

後半に当たる以下の記事ではレコメンデーションシステムの動作原理、採用されているアルゴリズム、そして予測精度が唯一絶対な評価指標ではないことを解説します。

なお、以下の記事本文はParul Pandey氏に直接コンタクトをとり、翻訳許可を頂いたうえで翻訳したものです。

▼前編の記事はこちら

レコメンデーションシステムの概要とそれらがターゲットマーケティングの効率的な類型を提供する方法について

レコメンデーションシステムが動く仕組み

それではレコメンデーションシステムはどのように動くのであろうか。Amazonがユーザに書籍のカテゴリーにおいて10のおすすめ商品を見せたい場合を見てみよう。Amazonのレコメンデーションシステムは、まずはユーザの個人的な嗜好と関心を理解するためにユーザに関するいくつかの種類のデータを処理するところから始める。そして、ユーザが好きになりそうなモノを推奨するために、ユーザのデータとそのユーザに似たほかのユーザたちの振舞いを集めたデータを合体する。それにしても、ユーザの好き嫌いに関わるデータは一体どこから来るのだろうか。

ユーザの好みの関するデータは、以下のようなふたつの方法で集められる。

明示的データ

ユーザに星1個から5個の範囲で商品の評価をたずねる、あるいはユーザが見た商品に「いいね」あるいは低評価をくだしてもらうことは明示的なデータ収集の一例である。こうした場合においては、ユーザは特定の商品に関して好きか嫌いか明示的に尋ねられ、そうして集められたデータはユーザの関心についてのプロファイルを作成するために使われる。

しかし、この方法にはすべてのユーザが評価をフィードバックしてくれるわけではないという欠点があり、もし評価を残してくれても評価はヒトそれぞれである。例えば、あるユーザにとっては星3個はすばらしいことを意味しているかも知れないが、ほかのユーザにとっては平均的かも知れない。

暗黙的データ

暗黙的データとはユーザとサイトの相互作用から抽出され、その相互作用をユーザの関心あるいは無関心の表れとして解釈したものである。例えば、Amazonから商品を購入する、あるいはYouTubeの動画を最後まで視聴することは積極的な関心のサインと見なされる。暗黙的な相互作用はユーザにより多くの処理すべきデータを提供し、購買データの場合には、そうしたデータはユーザが相互作用し始めるより良いデータになるかも知れない。

・・・

レコメンデーションシステムの基本的な類型

今日の産業で使われているレコメンデーションシステムには多くの種類がある。しかしながら、こうしたなかで重要な意思決定とはどんなタイプのレコメンデーションシステムが自分たちのニーズに合致し、また利用できるデータにはどんな種類のものがあるのかを判断することである。まず最初の選択は、以下のような事項に依存する。

  • 何を特定したいのか、そして
  • 自分たちのデータとどんな種類の関係を築くのか

レコメンデーションに使われるいくつかの共通したアプローチがあり、以下の図で示すことができる。

レコメンデーションシステムに使われるアプローチ

以上のモデルのそれぞれについて、簡単に概要を見ていこう。

コンテンツベース・フィルタリング

コンテンツベース・フィルタリングはコンテンツそのものが持っている属性にもとづいて推奨アイテムを決める。コンテンツベースのフィルターから作られたレコメンデーションは、表示される選択肢を見せるために個人の履歴情報を使っている。こうしたレコメンデーションは未来における選択肢をすすめるにあたり、ある個人が過去に買ったり好きになった商品あるいは製品に認められる類似性を探す。

例えば、もしあるユーザが「文芸」カテゴリーの本が好きならば、そのユーザに同じカテゴリーの本をおすすめするのには意味がある。同様に出版年の同じ本や同じ著者の本をおすすめするのも素晴らしいアイデアだ。以上がコンテンツベース・フィルタリングの動き方だ。

コンテンツベース・フィルタリングの長所は、このモデルを構築するにあたっては大量のトランザクションを必要としないことにある。というのも、製品の情報だけが必要だからだ。しかし、このモデルはトランザクションから学習しないという短所もあり、それゆえコンテンツベースのシステムが長期にわたり動作しても進歩がない。

・・・

協調的フィルタリング

協調的フィルタリングは、おすすめを見せるために多くのユーザ/顧客によって提供された評価の結集したちからを活用する。つまり、ほかのヒトの協調的な振舞いにもとづいておすすめすることを意味している。

協調的フィルタリングにはふたつのアプローチがある。

1.協調的アルゴリズムの隣接性を参照するメモリーベースの方法。この方法においてはユーザと商品の結びつきは、そのユーザに隣接したユーザにもとづいて予測される。こうしたユーザの隣接性は、以下のふたつの方法のうちのひとつによって定義できる。

・ユーザベースの協調的フィルタリング

ユーザと似たヒトを探し出して、そのヒトが好きだった商品をおすすめする。

・アイテムベースの協調的フィルタリング

ユーザが好きだった商品を買ったほかのヒトが買った商品をおすすめする。

2.レコメンデーションの問題を通常の機械学習の問題として処理することによって、評価データに関する予測を抽出する機械学習の技法を使うモデルベースの方法。この方法では主成分分析、特異値分解、行列分解、クラスタ分析、ニューラルネット、そしてその他の技法が使われ得る(※訳注5)。

(※訳注5)主成分分析とは、機械学習等によって得られる特徴量の次元を削減する手法。特異値分解行列分解も特徴量の次元圧縮に用いられる手法。クラスタ分析とは、任意のデータをk個のグループに分けることによってデータの構造を理解する教師なし学習の手法。クラスタ分析を実行する演算としてk-meansが知られている。

・・・

ハイブリッドあるいはアンサンブルベース

ハイブリッド・フィルタリング

コンテンツベースと協調フィルタリングのアプローチはふたつともそれぞれの強みと弱点を持っている。そして、ハイブリッドアプローチと呼ばれる方法によって多数のアルゴリズムをひとつに結合させると、さらにより良いレコメンデーションとなる。ハイブリッドシステムは、おすすめを提供するためにアイテムデータとトランザクションデータの両方のちからを借りる。

ハイブリッドアプローチを使っている素晴らしい事例はNetflixである。Netflixにおいては、レコメンドシステムはユーザが見たものと検索習慣にもとづいている(協調的なシステム)だけではなく、似たような特徴を共有している(コンテンツベース)映画がおすすめされる。

ハイブリッド・システムの動作方法

・・・

レコメンデーションシステムの評価:精度をめぐる流行

ユーザはそれほど精度を気にしていない。

どんなレコメンデーションシステムがよいかを測定する簡単な方法はない。この分野における多くの研究が、ユーザがまだ評価したことのないすべてのものに関して、良いあるいは悪いと評価することを予測する問題に焦点をあてる傾向にある。しかし、この焦点は現実の世界でレコメンデーションシステムに求められることと非常に異なっている。精度を測定しても、実のところ、レコメンデーションシステムに実行してほしいにはつながらない。それではなぜレコメンデーションシステムの王国において、重要なものとして二乗平均平方根誤差(※訳注6)と精度が扱われているのか。

以上の疑問に答えるにあたり、Netflixがあの有名な100万ドルの賞金がかかったチャレンジを発表した2006年を振り返ると多くのことがわかる。この賞金レースではNetflixが記録していた二乗平均平方根誤差0.9525が、最終的には0.8572あるいはさらに小さい値によって打ち負かされた。チャレンジの焦点が二乗平均平方根誤差(※訳注6)だったのでヒトビトはそれだけに焦点を合わせ、チャレンジによる影響は今日に至るまで続いている。

(※訳注6)二乗平均平方根誤差とは、予測モデルの精度を算出する計算手法のひとつ。RMSE(Root Mean Squared Error)と略記されることもある。以下のような手順で誤差を算出する。

1.各データの実績値に対する予測値の誤差を計算し二乗する。
2.二乗した誤差を合計する。
3.二乗誤差の合計値をデータ件数で割って二乗誤差の平均値を算出する。
4.二乗誤差の平均値の平方根を算出する。

類似の誤差測定手法に平均絶対誤差(MAE:Mean Absolute Error)があり、この手法では誤差を二乗しないで誤差平均の平方根を算出する。RMSEは算出過程で誤差を二乗するので、MAEより誤差を大きく評価できる。

興味深いことに、3年間におよぶチャレンジから生まれたアルゴリズムの大部分は決してNetflixに統合されなかった。このことに関する議論は、以下のようなNetflixブログの一部を読むとわかる。

2年前のチャレンジで勝利した最優秀賞に輝いたアンサンブルモデルは一体どうなったか不思議に思うことだろう…わたしたちはオフライン状態でその新しい方法を評価したのだが、測定したことによって得られた精度の向上は、その新方法が製品の環境にもたらす結果のために必要とされる技術的努力に見合うものではないように思えるのだ。

わたしたちのビジネス上の目標は登録メンバーを最大化し、月額料金を維持することにある…映画に対するユーザの評価を予測する精度を競うNetflixプライズの目標は、メンバーの楽しみを最大化する効率的なレコメンデーションシステムの多くの部分のひとつに過ぎないことは明白なのである。

・・・

結論

この記事では、レコメンデーションシステムを概観し、そのシステムが顧客ひとりひとりにパーソラナイズされたショッピング体験を創出することによってターゲットマーケティングに関する効率的なフォームをいかに提供するかを見てきた。しかし、レコメンデーションの様々な手法をより深く探求することはなかった。深く探求しなかったのは、それぞれの手法を論じるには実に広範囲になってしまい、そのひとつひとつが記事として採りあげるのに値するからである。そのため次の記事では、レコメンデーションの手法がどのように動作し長所と短所があるかを詳しく論じたい。

次の記事へのリンクは、現実の世界におけるレコメンデーションシステムとなります。


原文
『The Remarkable world of Recommender Systems』

著者
Parul Pandey

翻訳
吉本幸記(フリーライター、JDLA Deep Learning for GENERAL 2019 #1取得)

編集
おざけん

無料メールマガジン登録

週1回、注目のAIニュースやイベント情報を
編集部がピックアップしてお届けしています。

こちらの規約にご同意のうえチェックしてください。

規約に同意する