レコメンドとは?意味・仕組みと協調フィルタリング、評価の注意(2026年11月時点)

レコメンド(推薦システム)(れこめんど)

推薦システム / レコメンドエンジン / Recommender system / レコメンデーション

レコメンド(推薦システム)とは、利用者の過去の行動やアイテムの特徴をもとに、たくさんの候補から利用者が好みそうな商品、動画、記事などを選んで示す仕組みのこと。

要するに

  • 候補の生成、スコア付け、並べ替えの3段で、膨大な候補から10件ほどに絞る
  • 協調フィルタリングは似た利用者の反応を、コンテンツベースはアイテムの特徴を使う
  • 新しい商品のコールドスタート、何を最大にするか、評価の分け方に注意が要る

最終確認

白い台に並べた形の違う5つの置物(薄紫の円錐、すりガラスの丸い花びん、黒と銀の円柱、白い球)と、すりガラスの花びんから手前へ伸びる紫のリボン
目次7

ひとことで言うと

レコメンド(推薦システム、Recommender system)は、利用者が好みそうな商品、動画、記事などを、たくさんの候補から選んで示す仕組みだ。Google の機械学習の講座は、膨大な数の中から利用者が魅力を感じるものを見つける助けになると説明している。検索と違い、利用者が自分では探そうと思わなかったものも表示できる。

身近な例はアプリストアのトップページに並ぶおすすめのアプリだ。講座によると、トップページのおすすめは利用者の興味に合わせて変わるので、人によって違うものが並ぶ。数学のアプリのページを見ている人に、ほかの数学や理科のアプリを並べる「関連するアイテム」のおすすめもある。

仕組み

講座は推薦するもの(商品や動画)をアイテム、推薦に使う情報をクエリと呼ぶ。クエリには、利用者の ID、これまでに触れたアイテム、時刻、使っている端末などが入る。よくある構成は次の3段だ。

  1. 候補の生成:膨大なアイテムから候補を少数に絞る。講座の例では、数十億の動画を数百から数千にする。数が多いので、速く計算できる方法を使う。
  2. スコア付け:別のモデルが候補に点を付けて並べ、画面に出す10件ほどを選ぶ。候補が少ないので、より精密なモデルを使える。
  3. 並べ替え(再ランキング):利用者がはっきり嫌がったものを外す、新しいものの点を上げるといった条件を加える。多様さ、新しさ、公平さを保つのにも使う。

推薦のためのライブラリ TensorFlow Recommenders の解説も、実際の推薦システムは、候補を数百に絞る段と、少数に絞り込む段の2段で作ることが多いと書いている。

候補の選び方

候補の生成でよく使われる方法は2つある。コンテンツベースは、アイテムの特徴量(ジャンルや発行元など)を使い、利用者が好むものに似たアイテムを勧める。協調フィルタリングは、利用者どうしとアイテムどうしの似ている度合いを同時に使う。講座の例では、利用者 A と B が似ていて B が動画1を好むなら、A が動画1に似た動画を見ていなくても、動画1を A に勧められる。

どちらの方法も利用者(クエリ)とアイテムを同じ空間のエンベディング(数字の並び)に置き、近いものを探す。近さはコサイン類似度、内積、ユークリッド距離で測る。講座によると、内積はベクトルの長さの影響を受け、長いほど大きくなりやすい。学習データによく出る人気のアイテムはベクトルが長くなりやすい。人気を反映させたいなら内積を選ぶが、気を付けないと人気のアイテムがおすすめを占めてしまう。

行列分解

協調フィルタリングの基本の形が行列分解だ。行に利用者、列にアイテムを並べ、見た、評価したといった反応を入れた表(フィードバック行列)を用意する。モデルは利用者ごとのベクトルとアイテムごとのベクトルを学び、その内積が元の表の値に近くなるようにする。似た好みの利用者のベクトルは近くに集まり、似た利用者に好まれるアイテムのベクトルも近くに集まる。

反応には2種類ある。点数を付けるような明示的なもの(explicit)と、見たことから興味を推し量る暗黙のもの(implicit)だ。講座によると、実際の表はほとんどが空欄になる。空欄をすべて0として扱うと予測がほぼ0に近くなるので、記録のある組と空欄に別々の重みを付ける方法(重み付き行列分解)を使う。

ニューラルネットワークと2つの塔

行列分解は利用者の ID とアイテムの ID 以外の情報(国や年齢など)を入れにくい。講座はニューラルネットワークを使えばこうした情報を入力に加えられると説明している。クエリの情報からクエリのベクトルを作るネットワークと、アイテムの情報からアイテムのベクトルを作るネットワークを並べ、2つのベクトルの内積を出す形を、2つの塔のモデル(two-tower)と呼ぶ。

ベクトルができたら、クエリのベクトルに近いアイテムを探す。アイテムが多いと、すべてと比べる計算は重い。講座は、関連するアイテムのおすすめでは近いものの一覧を前もって計算しておくのがよくある方法だと書き、近似最近傍探索という手段も挙げている。

LLM を使う研究

推薦にLLMを使う研究も出ている。2022年3月に公開された P5 の論文は、利用者とアイテムのやりとり、アイテムの情報、レビューなどをすべて文章の形にそろえ、複数の推薦の課題を、同じ言語モデルの学習の目的で学ばせた。論文は、プロンプトによって、追加の例なしか少しの例で予測できると書いている。

2023年5月に公開された論文は、ほかの方法で生成した候補を、LLM に並べ替えさせた。論文によると、LLM は追加の学習なしでも有望な並べ替えの力を示した。一方で、過去の利用の順番をうまくつかめず、人気やプロンプトの中の並び順に引きずられることもあった。論文は、プロンプトの工夫などでこの問題を和らげられると報告している。

協調フィルタリングとコンテンツベースの違い

協調フィルタリング コンテンツベース
使う情報 多くの利用者の反応(見た、評価した) アイテムの特徴量と、その利用者の行動
ほかの利用者のデータ 必要 不要
特徴量の設計 ベクトルを自動で学ぶので、分野の知識がなくてもよい 手で作る部分が多く、分野の知識が要る
新しい興味 似た利用者の好みから、思いがけないものを勧められる 今の興味の範囲に留まりやすい
弱いところ 学習のときになかったアイテムは、そのままでは扱えない 結果は特徴量の出来で決まる

講座によると、コンテンツベースは、ほかにほとんど好む人のいないアイテムでも、その利用者の興味に合えば勧められる。協調フィルタリングは、ある程度はフィードバック行列だけで行列分解のモデルを学べるので、始める方法としてよく、複数の候補の生成の1つとして使える。

仕事でどう関係するか

EC サイトにおすすめの枠を作るとき

まず、トップページで人ごとに変えるおすすめか、商品ページで似た商品を並べるおすすめかを決める。講座によると、後者では近い商品の一覧を前もって計算しておく方法がよく使われる。

新しく入れた商品は、協調フィルタリングだけではおすすめに出にくい。講座はこれをコールドスタートの問題と呼ぶ。対策として、少しでも反応があれば、全体を学び直さずにその商品のベクトルを計算できる。反応がまだなければ、同じカテゴリの商品のベクトルの平均で代わりにする方法がある。新しい利用者には、「平均的な利用者」を作って当てはめる方法を講座は挙げている。EC の仕事全体での AI の使い方は、EC・ネットショップのAI活用にある。

プロンプト
EC サイトに「この商品を見た人へのおすすめ」の枠を作る計画を立てています。
手元にあるデータ(購入履歴、閲覧履歴、商品のカテゴリと説明文)を前提に、
協調フィルタリングとコンテンツベースのどちらで始めるかを、
新しい商品が多いという条件も踏まえて、理由とあわせて整理してください。

メディアで記事や動画を並べるとき

何を最大にするかで、並ぶものが変わる。講座によると、クリックを最大にすると、クリックを誘うだけの動画が勧められやすくなる。視聴時間を最大にすると、とても長い動画が勧められやすくなる。講座は短い視聴を何回か重ねることも、長い1回と同じくらいよい場合があると書いている。

似たものばかりが並ぶのも問題になる。講座は、違う情報源を使う候補の生成を複数用意する、ジャンルなどの情報で並べ替える、といった対策を挙げている。新しさを保つには、できるだけ頻繁に学び直し、アイテムの古さを特徴量に加える方法がある。

推薦の効果を確かめるとき

TensorFlow Recommenders の解説によると、実際の運用では、ある時点までのデータで学び、その後の反応を当てられるかで確かめることが多いという。正解のアイテムが上位の5件に入る割合のような指標を使う。上位5件の正解率が0.2なら、正解が上位5件に入るのは平均で20%の回数という意味だ。

解説の例では、学習に使ったデータより、確かめるためのデータで成績が大きく下がった。解説は理由の1つに過学習を、もう1つにすでに見た映画を勧め直して上位の枠が埋まることを挙げている。ただし、何度も見る番組や定期的に買う商品のように、同じアイテムを何度か勧めるのが適切な場合もある。

注意点と限界

新しい手法が単純な方法よりよいとは限らない。2019年7月に公開された論文は、それまでの数年に主要な学会で発表された、ニューラルネットワークを使う上位 n 件の推薦の手法18個を調べた。妥当な手間で再現できたのは7個だった。そのうち6個は、近傍やグラフに基づく比較的単純な方法に負けることが多かった。残る1個は比べた基準の方法をはっきり上回ったが、よく調整した、ニューラルネットワークを使わない線形の方法をいつも上回ったわけではない。

画面の位置にも偏りがある。講座によると、画面の下にあるものほどクリックされにくい。並べる時点では、どの位置に出るかが分からないことが多い。講座は、位置に関係のない並べ方を作るか、すべての候補を画面のいちばん上にあるものとして点を付ける方法を挙げている。

公平さにも気を付ける。講座は学習データから無意識の偏りを学んでいないかを確かめるために、利用者の属性ごとに精度などの指標を追うことを挙げている。

よくある質問

レコメンドと検索は何が違うのか

検索は、利用者が自分で探したいものを入力して見つける。Google の講座によると、レコメンドは、利用者が自分では探そうと思わなかったアイテムも表示できる。アイテムが多く、毎日増えていく場面で、魅力を感じるものを見つける助けになる。

協調フィルタリングとは何か

多くの利用者の反応から、似た利用者や似たアイテムを見つけて勧める方法だ。アイテムの中身を人が説明しなくても、反応の表からベクトルを学べる。その代わり、反応がまだない新しいアイテムは扱いにくい。

コールドスタートとは何か

学習のときに反応がなかった新しいアイテムや利用者を、うまく推薦できない問題だ。講座は、少しの反応からベクトルを計算する方法や、同じカテゴリのベクトルの平均を使う方法を挙げている。アイテムの特徴量からベクトルを作る2つの塔のモデルなら、学習になかったアイテムにも当てはめられる。

LLM で推薦はできるのか

研究の段階では試されている。2023年の論文では、ほかの方法で絞った候補を LLM が並べ替え、追加の学習なしでも有望な結果を示した。一方で、過去の利用の順番をつかみにくい、人気や並び順に引きずられるといった弱点も報告されている。

推薦の良し悪しは何で測るのか

正解のアイテムが上位 k 件に入る割合のような指標を、学習に使っていないデータで測る。実際の運用に近づけるには、時間で区切って、過去のデータで未来の反応を当てられるかを確かめる。講座によると、スコア付けで何を最大にするかによっても、並び方と推薦の質は大きく変わる。

関連する用語

出典

公開
執筆
TRAIL編集部(編集方針)