レコメンダーシステムの概要 ========================== 過去10年で、インターネットは大規模なオンラインサービスのためのプラットフォームへと進化し、私たちのコミュニケーション、ニュースの閲覧、商品の購入、映画の視聴の仕方を大きく変えた。その一方で、オンラインで提供される前例のない数のアイテム(ここでは *item* という用語を、映画、ニュース、書籍、製品を指すために用いる)は、私たちが好むアイテムを見つけるのを助けるシステムを必要としている。したがって、レコメンダーシステムは、パーソナライズされたサービスを実現し、個々のユーザーに合わせた体験を提供できる強力な情報フィルタリングツールである。要するに、レコメンダーシステムは、利用可能な豊富なデータを活用して選択を扱いやすくするうえで中心的な役割を果たす。今日では、レコメンダーシステムは Amazon、Netflix、YouTube など多くのオンラインサービス提供者の中核を成している。:numref:`subsec_recommender_systems` における Amazon が推薦した Deep learning の書籍の例を思い出そう。レコメンダーシステムを用いる利点は二つある。第一に、ユーザーがアイテムを探す手間を大幅に減らし、情報過多の問題を緩和できる。第二に、オンラインサービス提供者にビジネス価値をもたらし、重要な収益源となる。本章では、レコメンダーシステム分野における基本概念、古典的モデル、そして深層学習による最近の進展を、実装例とともに紹介する。 .. figure:: ../img/rec-intro.svg 推薦プロセスの図解 協調フィルタリング ------------------ まず、レコメンダーシステムにおける重要な概念である協調フィルタリング (CF) から始める。これは Tapestry システム :cite:`Goldberg.Nichols.Oki.ea.1992` によって最初に提唱され、「大量の電子メールやニュースグループに投稿されたメッセージを扱うために、人々が互いに協力してフィルタリング作業を助け合うこと」を指す。この用語は、より多くの意味を持つようになった。広い意味では、複数のユーザー、エージェント、データソース間の協力を伴う技術を用いて、情報やパターンをフィルタリングするプロセスである。CF には多くの形態があり、その登場以来、数多くの CF 手法が提案されてきた。 全体として、CF 技術は、メモリベース CF、モデルベース CF、およびそのハイブリッドに分類できる :cite:`Su.Khoshgoftaar.2009`\ 。代表的なメモリベース CF 技術には、ユーザーベース CF やアイテムベース CF などの最近傍ベース CF がある :cite:`Sarwar.Karypis.Konstan.ea.2001`\ 。 行列分解のような潜在因子モデルは、モデルベース CF の例である。 メモリベース CF は、共通のアイテムに基づいて類似度を計算するため、疎で大規模なデータを扱う際に限界がある。 モデルベース手法は、疎性とスケーラビリティへの対応能力が高いため、より一般的になっている。 多くのモデルベース CF 手法はニューラルネットワークで拡張でき、深層学習による計算高速化とともに、より柔軟でスケーラブルなモデルにつながります :cite:`Zhang.Yao.Sun.ea.2019`\ 。 一般に、CF は予測や推薦を行うためにユーザー-アイテム相互作用データのみを使用する。CF に加えて、コンテンツベースおよびコンテキストベースのレコメンダーシステムも、アイテム/ユーザーの内容記述や、タイムスタンプや位置情報のような文脈信号を取り込むうえで有用である。 明らかに、利用可能な入力データが異なれば、モデルの種類や構造を調整する必要がある。 明示的フィードバックと暗黙的フィードバック ------------------------------------------ ユーザーの嗜好を学習するために、システムはユーザーからフィードバックを収集しなければならない。フィードバックは明示的なものにも暗黙的なものにもなりえる :cite:`Hu.Koren.Volinsky.2008`\ 。たとえば、\ `IMDb `__ は映画に対して1つ星から10つ星までの星評価を収集している。YouTube は、ユーザーが嗜好を示すための高評価・低評価ボタンを提供している。明示的フィードバックを集めるには、ユーザーが自ら進んで関心を示す必要があることは明らかである。とはいえ、多くのユーザーは製品を評価することに消極的であるため、明示的フィードバックが常に容易に得られるとは限らない。これに対して、暗黙的フィードバックは主としてユーザーのクリックのような暗黙的行動のモデリングに関係するため、しばしば容易に利用できる。そのため、多くのレコメンダーシステムは暗黙的フィードバックを中心に構築されており、ユーザーの行動を観察することで間接的に意見を反映する。暗黙的フィードバックには、購入履歴、閲覧履歴、視聴履歴、さらにはマウスの動きまで、さまざまな形がある。たとえば、同じ著者の本を何冊も購入したユーザーは、その著者が好きである可能性が高いだろう。暗黙的フィードバックは本質的にノイズが多いことに注意しよう。私たちにできるのは、彼らの嗜好や真の動機を *推測* することだけである。あるユーザーが映画を視聴したからといって、その映画を肯定的に評価しているとは限らない。 推薦タスク ---------- 過去数十年にわたり、多くの推薦タスクが研究されてきた。応用分野に基づけば、映画推薦、ニュース推薦、POI(Point-of-Interest)推薦 :cite:`Ye.Yin.Lee.ea.2011` などがある。また、フィードバックや入力データの種類に基づいてタスクを区別することもできる。たとえば、評価予測タスクは明示的な評価を予測することを目的とする。Top-:math:`n` 推薦(アイテムランキング)は、暗黙的フィードバックに基づいて、各ユーザーごとにすべてのアイテムを個別に順位付けする。タイムスタンプ情報も含まれる場合、系列を考慮した推薦を構築できる :cite:`Quadrana.Cremonesi.Jannach.2018`\ 。もう一つの人気のあるタスクはクリック率予測と呼ばれ、これも暗黙的フィードバックに基づくが、さまざまなカテゴリ特徴を利用できる。新規ユーザーへの推薦や、既存ユーザーへの新規アイテム推薦は、コールドスタート推薦と呼ばれる :cite:`Schein.Popescul.Ungar.ea.2002`\ 。 まとめ ------ - レコメンダーシステムは、個々のユーザーにとっても産業界にとっても重要である。協調フィルタリングは推薦における重要な概念である。 - フィードバックには、暗黙的フィードバックと明示的フィードバックの2種類がある。過去10年で、多くの推薦タスクが研究されてきた。 演習 ---- 1. レコメンダーシステムがあなたの日常生活にどのような影響を与えているか説明できるか? 2. どのような興味深い推薦タスクが研究できると思うか?