Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[最強DB講義]推薦システム | 基礎編

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

[最強DB講義]推薦システム | 基礎編

最強DB講義 #39-1 推薦システム | 基礎編での講義資料です。
https://dblectures.connpass.com/event/390208/

Avatar for RecSysLab

RecSysLab PRO

April 20, 2026

More Decks by RecSysLab

Other Decks in Technology

Transcript

  1. 膨大なコンテンツ 世界の本の数: ※2010年8月現在 129,864,880冊 http://booksearch.blogspot.com/2010/08/books-of-world-stand-up-and-be-counted.html(2026年4月参照) Spotifyでの配信楽曲数: ※2026年4月現在 100,000,000曲 https://www.businessofapps.com/data/spotify-statistics/#4(2026年4月参照) YouTube:

    ※2019年5月現在 毎分 500 時間以上もの動画投稿 https://www.tubefilter.com/2019/05/07/number-hours-video-uploaded-to-youtube-per-minute/(2026年4月参照) https://www.youtube.com/intl/ALL_jp/howyoutubeworks/product-features/search/(2026年4月参照) 5
  2. ユーザ(user) 推薦システムの利用者 ➢ 推薦を受けようとしているユーザを対象ユーザ(active user)とよぶ ユーザ集合 ユーザ ユーザ数 ユーザに関するデータ ユーザID

    ユーザ名 年齢 性別 1 Alice 20 女 2 Bruno 22 男 3 Chiara 21 女 4 Dhruv 21 男 5 Emi 20 女 デモグラフィック属性(demographic attribute) 10
  3. ➢ 評価値の予測対象となるアイテムを対象アイテム(target item)とよぶ アイテム(item) 推薦システムにおいて扱う商品やコンテンツ 推薦システムが保有するアイテムデータベース アイテム アイテム集合 アイテム数 アイテムID

    アイテム名 トッピング いちご ラズベリー バナナ チョコ ホイップ カスタード 1 いちごクレープ 1 0 0 0 1 0 2 ラズベリークレープ 0 1 0 0 1 0 : : : : : : : : 13 ラズベリーチョコバナナクレープ 0 1 1 1 1 0 11
  4. 特徴ベクトル(feature vector) アイテム i の特徴ベクトル(feature vector) アイテムID アイテム名 トッピング いちご

    ラズベリー バナナ チョコ ホイップ カスタード 1 いちごクレープ 1 0 0 0 1 0 2 ラズベリークレープ 0 1 0 0 1 0 : : : : : : : : 13 ラズベリーチョコバナナクレープ 0 1 1 1 1 0 12
  5. ユーザ u のアイテム i に対する 評価値(rating) 評価履歴(rating history) ユーザ アイテム

    評価値 1: Alice 2: マグロ 4 1: Alice 3: 中トロ 3 1: Alice 4: タイ 1 1: Alice 5: ヒラメ 2 2: Bruno 1: カツオ 5 : : : 5: Emi 6: スズキ 3 ユーザがこれまでに利用してきたアイテムに対する評価値の履歴 評価履歴 13
  6. 評価履歴から評価値行列へ ユーザ アイテム 評価値 1: Alice 2: マグロ 4 1:

    Alice 3: 中トロ 3 1: Alice 4: タイ 1 1: Alice 5: ヒラメ 2 2: Bruno 1: カツオ 5 : : : 5: Emi 6: スズキ 3 評価履歴 評価値行列 ユーザ u アイテム i 14
  7. 対象ユーザ u の対象アイテム i への予測評価値(predicted rating) (1) 嗜好予測問題(preference prediction problem)

    与えられたユーザ集合 U およびアイテム集合 I において、対象ユーザ u によって 未評価である対象アイテム i への評価値 ru,i を予測する問題 推薦問題(recommendation problem) (2) 上位 K 推薦問題(top-K recommendation problem) 上位 K 件の推薦リストを生成する問題 17
  8. 協調フィルタリング 推薦システムの歴史 [Amatriain2025] 行列因子分解 1997 MovieLens v0 1990 2000 2010

    2020 DLベース推薦 LLMベース推 薦 2006-2009 Netflix Prize 2017 Transformers [Amatriain2025] X. Amatriain, Recommending in the Age of AI: How We Got Here and What Comes Next, RecSys2025 - Keynote. 2026 2007 1st RecSys 20
  9. 協調フィルタリング 推薦システムの歴史 [Amatriain2025] 行列因子分解 1997 MovieLens v0 1990 2000 2010

    2020 DLベース推薦 LLMベース推 薦 2006-2009 Netflix Prize 2017 Transformers 2026 2007 1st RecSys 21 本講義(基礎編)の対象 [Amatriain2025] X. Amatriain, Recommending in the Age of AI: How We Got Here and What Comes Next, RecSys2025 - Keynote.
  10. 本講義(基礎編)で学ぶ主なトピック 内容ベース推薦 ❏ 類似度に基づく推薦 ❏ k 近傍法 ❏ モデルベース方式 協調ベース推薦

    ❏ 協調フィルタリング ❏ 行列因子分解 知識ベース推薦 ❏ 制約ベース推薦 ❏ 事例ベース推薦 ハイブリッド型推薦 ❏ 並列型 ❏ 直列型 ❏ Factorizatin Machine ❏ 混合型 22
  11. アイテムID アイテム名 辛さ 甘さ 評価値 1 5辛3甘 5 3 +1

    2 6辛2甘 6 2 +1 3 4辛1甘 4 1 +1 4 8辛5甘 8 5 -1 5 2辛4甘 2 4 -1 6 3辛6甘 3 6 -1 7 7辛6甘 7 6 -1 8 4辛2甘 4 2 ? 9 5辛1甘 5 1 ? 10 8辛6甘 8 6 ? 11 3辛4甘 3 4 ? 12 4辛7甘 4 7 ? 13 4辛4甘 4 4 ? 特徴空間(feature space) 特徴空間 Aliceの評価履歴 10 12 6 5 11 13 4 7 1 2 8 3 9 26
  12. ユーザプロファイルとの類似度に基づきアイテムを推薦 類似度に基づく推薦 コサイン類似度(cosine similarity) アイテムID アイテム名 辛さ 甘さ スコア 8

    4辛2甘 4 2 0.997 9 5辛1甘 5 1 0.983 10 8辛6甘 8 6 0.966 11 3辛4甘 3 4 0.854 12 4辛7甘 4 7 0.783 13 4辛4甘 4 4 0.919 12 8 30
  13. 10 12 6 5 11 13 4 7 1 2

    8 3 9 k 近傍法(k-nearest neighbor algorithm) 対象アイテムに近傍する k 個の評価済みのアイテムの情報を基に対象アイ テムの評価値を予測 好き1 嫌い2 < 好き3 嫌い0 > ユークリッド距離 (Euclidean distance) 31
  14. モデルベース方式の基本 「いちごが含まれている クレープは好き」 「バナナが含まれている クレープは嫌い」 ユーザプロファイル 学習 アイテム ID アイテム名

    トッピング 評価値 いちご ラズ ベリー バナナ チョコ ホイッ プ カス タード 1 いちごクレープ 1 0 0 0 1 0 +1 2 ラズベリークレープ 0 1 0 0 1 0 +1 3 ダブルベリークレープ 1 1 0 0 1 0 +1 4 いちごチョコクレープ 1 0 0 1 1 0 +1 5 いちごカスタード 1 0 0 0 0 1 +1 6 ラズベリーチョコカスタード 0 1 0 1 0 1 +1 7 バナナクレープ 0 0 1 0 1 0 -1 8 チョコバナナクレープ 0 0 1 1 1 0 -1 9 ラズベリーダブルクリーム 0 1 0 0 1 1 -1 10 バナナカスタード 0 0 1 0 0 1 -1 11 ダブルベリーチョコクレープ 1 1 0 1 1 0 ? 12 バナナダブルクリーム 0 0 1 0 1 1 ? 13 ラズベリーチョコバナナクレープ 0 1 1 1 1 0 ? 予測 33
  15. 訓練データからアイテムに対する好き嫌いに関するルールを発見し、その ルールを使って、未知のアイテムの好き嫌いを予測 i Xi r1,i 1 {いちご, ホイップ} +1 2

    {ラズベリー, ホイップ} +1 3 {いちご, ラズベリー, ホイップ} +1 4 {いちご, チョコ, ホイップ} +1 5 {いちご, カスタード} +1 6 {ラズベリー, チョコ, カスタード} +1 7 {バナナ, ホイップ} -1 8 {バナナ, チョコ, ホイップ} -1 9 {ラズベリー, ホイップ, カスタード} -1 10 {バナナ, カスタード} -1 ルールベース分類器(rule-based classifier) 学習モデル = ユーザプロファイル 学習 i Xi 11 {いちご, ラズベリー, チョコ, ホイップ} 12 {バナナ, ホイップ, カスタード} 13 {ラズベリー, バナナ, チョコ, ホイップ} 訓練データ 予測対象データ 予測 +1 -1 -1 34
  16. i xi,1 xi,2 xi,3 xi,4 xi,5 xi,6 r1,i 1 1

    0 0 0 1 0 +1 2 0 1 0 0 1 0 +1 3 1 1 0 0 1 0 +1 4 1 0 0 1 1 0 +1 5 1 0 0 0 0 1 +1 6 0 1 0 1 0 1 +1 7 0 0 1 0 1 0 -1 8 0 0 1 1 1 0 -1 9 0 1 0 0 1 1 -1 10 0 0 1 0 0 1 -1 予測対象データ 単純ベイズ分類器(naive Bayes classifier) i xi,1 xi,2 xi,3 xi,4 xi,5 xi,6 11 1 1 0 1 1 0 12 0 0 1 0 1 1 13 0 1 1 1 1 0 訓練データ 訓練データからアイテムに対する好き嫌いの確率を計算し、その確率を使 って、未知のアイテムの好き嫌いを予測 学習モデル = ユーザプロファイル 学習 +1 -1 -1 予測 35
  17. i xi,1 xi,2 xi,3 xi,4 xi,5 xi,6 r1,i 1 1

    0 0 0 1 0 +1 2 0 1 0 0 1 0 +1 3 1 1 0 0 1 0 +1 4 1 0 0 1 1 0 +1 5 1 0 0 0 0 1 +1 6 0 1 0 1 0 1 +1 7 0 0 1 0 1 0 -1 8 0 0 1 1 1 0 -1 9 0 1 0 0 1 1 -1 10 0 0 1 0 0 1 -1 決定木(decision tree) 訓練データ 訓練データから決定木を学習し、その決定木を使って、未知のアイテムの 好き嫌いを予測 学習モデル = ユーザプロファイル 学習 予測対象データ i xi,1 xi,2 xi,3 xi,4 xi,5 xi,6 11 1 1 0 1 1 0 12 0 0 1 0 1 1 13 0 1 1 1 1 0 +1 -1 -1 予測 36
  18. 協調ベース推薦システム 近傍ベースCF (neighborhood-based collaborative filtering) モデルベースCF (model-based collaborative filtering) 協調フィルタリング(collaborative

    filtering; CF) 好みが似ている他者の嗜好を手がかりに、対象ユーザの好き嫌いを予測し、アイ テムを推薦 38
  19. 行列補完問題(matrix completion problem) ? ? ? ? ? ? ?

    ? 不完全な評価値行列から欠損値に入るべき評価値を予測する問題 39
  20. 協調ベース推薦システム 近傍ベースCF (neighborhood-based collaborative filtering) モデルベースCF (model-based collaborative filtering) 協調フィルタリング(collaborative

    filtering; CF) 好みが似ている他者の嗜好を手がかりに、対象ユーザの好き嫌いを予測し、アイ テムを推薦 40
  21. 協調ベース推薦システム 近傍ベースCF (neighborhood-based collaborative filtering) モデルベースCF (model-based collaborative filtering) 協調フィルタリング(collaborative

    filtering; CF) 好みが似ている他者の嗜好を手がかりに、対象ユーザの好き嫌いを予測し、アイ テムを推薦 44
  22. 内容ベース推薦システム (モデルベース方式) 内容ベース推薦システムと モデルベースCFの学習と予測の違い ? ? ? ? ? ?

    ? ? 評価値行列 学習モデル 訓練データ 予測対象データ 学習 学習モデル 学習 予測 モデルベースCF 予測 45
  23. コールドスタート問題(cold-start problem) カルビ ハラミ ロース タン イチボ Alice +1 -1

    ? ? ? Bruno +1 -1 ? +1 ? Chiara +1 -1 -1 +1 ? Dhruv ? -1 -1 -1 ? Emi +1 ? -1 -1 ? Faye -1 -1 +1 -1 ? Gilles -1 +1 -1 ? ? Howard ? ? ? ? ? 評価値が与えられていない新規ユーザや新規アイテムに対して適切な推薦 が生成できないような問題 ユーザ-焼肉評価値行列 新規ユーザ問題(new user problem) 新規アイテム問題(new item problem) 50
  24. 疎な評価値行列 R に対して、特徴間の相互関係を潜在ベクトルの内積と して学習 Factorization Machines; FM [Rendle2010] A B

    C D E カ ツ オ マ グ ロ 中 ト ロ タ イ ブ リ ハ マ チ サ バ ア ジ イ ワ シ 赤 身 白 身 光 物 評 価 値 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 4 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 3 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 … … … … 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 5 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 5 … … … … 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 2 ユーザ アイテム 特徴 [Rendle2010] S. Rendle: Factorization Machines, ICDM2010, pp.995–1000, 2010. 66
  25. 本講義(基礎編)で学ぶ主なトピック 内容ベース推薦 ❏ 類似度に基づく推薦 ❏ k 近傍法 ❏ モデルベース方式 協調ベース推薦

    ❏ 協調フィルタリング ❏ 行列因子分解 知識ベース推薦 ❏ 制約ベース推薦 ❏ 事例ベース推薦 ハイブリッド型推薦 ❏ 並列型 ❏ 直列型 ❏ Factorizatin Machine ❏ 混合型 70
  26. 協調フィルタリング 推薦システムの歴史 [Amatriain2025] 行列因子分解 1997 MovieLens v0 1990 2000 2010

    2020 DLベース推薦 LLMベース推 薦 2006-2009 Netflix Prize 2017 Transformers 2026 2007 1st RecSys 71 本講義(基礎編)の対象 [Amatriain2025] X. Amatriain, Recommending in the Age of AI: How We Got Here and What Comes Next, RecSys2025 - Keynote.
  27. 本講義(基礎編)で学ぶ主なトピック 内容ベース推薦 ❏ 類似度に基づく推薦 ❏ k 近傍法 ❏ モデルベース方式 協調ベース推薦

    ❏ 協調フィルタリング ❏ 行列因子分解 知識ベース推薦 ❏ 制約ベース推薦 ❏ 事例ベース推薦 ハイブリッド型推薦 ❏ 並列型 ❏ 直列型 ❏ Factorizatin Machine ❏ 混合型 近似最近傍探索 DL、LLMによる特徴抽出 Neural CF LLMベース対話型推薦 Wide & Deep DL for YouTube DeepFM 72
  28. さらなる学習に向けて 推薦システムの基礎 ❏ 奥健太,『基礎から学ぶ推薦システム ~情報技術で嗜好を予測する~』,コロナ社,2022. ❏ 廣瀬英雄,『推薦システム ―マトリクス分解の多彩なすがた―』,共立出版,2022. ❏ Charu

    C. Aggarwal, “Recommender Systems: The Textbook”, Springer, 2016. ❏ Joseph A. Konstan et al, Recommender Systems | Coursera, https://www.coursera.org/specializations/recommender-systems. 推薦システムの実装 ❏ 風間正弘,飯塚洸二郎,松村優也,『推薦システム実践入門 ―仕事で使える導入ガイド』,オライリー・ジャパン, 2022. ❏ 与謝秀作,『特集3 最新レコメンドエンジン総実装 協調フィルタリングから深層学習まで』,WEB+DB PRESS Vol.129,pp.69-100,技術評論社,2022. ❏ Kim Falk, “Practical Recommender Systems”, MANNING, 2019. 推薦システムの先端的トピック ❏ Ricci, F. et al., “Recommender Systems Handbook”, 3rd ed., Springer, 2022. ❏ Zhang, S. et al., Deep Learning Based Recommender System: A Survey and New Perspectives. ACM Computing Surveys. 52, 1, pp.1–38, 2019. ❏ Wang, Q. et al., Towards Next-Generation LLM-based Recommender Systems: A Survey and Beyond. arXiv, 2024. 73