🗺️ AI 學習與考證地圖
AI 應用領域 · 機器學習應用

推薦系統:為什麼它知道你想看什麼

Netflix 猜中你今晚想看的片、蝦皮把你猶豫了三天的東西放在首頁——這不是讀心術,是把「誰買過什麼、評過幾分」排成一張大表,從表裡找出「跟你很像的人」或「跟你愛的東西很像的東西」。這一頁帶你親手跑一次推薦引擎。

協同過濾內容式推薦矩陣分解冷啟動Precision@K / NDCG同溫層

💡一句話定義

推薦系統(Recommender System)=從使用者過去的行為與回饋(評分、點擊、購買、停留時間…)學出偏好,預測他對「還沒接觸過的物品」會有多喜歡,然後把預測最高的那幾個排在前面給他看。本質上是一個「填空」問題:使用者 × 物品的大表上有一堆空格,系統要猜出空格裡的數字,再挑最大的推給你。

為什麼需要它?因為東西太多、注意力太少。Netflix 有上萬部片、蝦皮有上億件商品,沒有人逛得完;推薦系統把「找東西」的成本從使用者身上搬到系統身上,這就是電商、影音、社群平台的核心引擎。

🎮互動:迷你推薦引擎

下面是 6 位使用者 × 8 部電影的評分矩陣(1–5 分,虛線格=還沒看過)。點一位使用者的名字,系統會用餘弦相似度(Cosine Similarity)找出跟他最像的人(或最像的電影),預測空格的分數,並列出推薦清單。切換「使用者式/物品式」看看答案會不會一樣。

🎬 誰會喜歡哪部片?
① 點矩陣左側的名字選一位使用者 ② 選推薦方式
分數低 分數高 未評分 預測分數 ★=被選為鄰居

相似度排行

📣 推薦清單(預測分數高→低)

    👆 先點一位使用者的名字試試看。
    $\text{sim}(u,v)=\dfrac{\vec r_u\cdot\vec r_v}{\lVert\vec r_u\rVert\,\lVert\vec r_v\rVert}$  $\hat r_{u,i}=\dfrac{\sum_{v\in N(u)}\text{sim}(u,v)\,r_{v,i}}{\sum_{v\in N(u)}|\text{sim}(u,v)|}$ 左:兩位使用者的評分向量夾角越小、餘弦越接近 1 就越像(這裡為了簡化,空格當 0 算)。右:用「最像的鄰居 N(u) 給這部片的分數」做加權平均,就是對空格的預測。物品式把 u、v 換成兩部片即可。

    🧭三大路線:內容式、協同過濾、混合式

    推薦的核心問題只有一個:「憑什麼說你會喜歡這個?」依據不同,就分成三條路線。

    🏷️內容式(Content-based)
    看物品本身的特徵:你愛看科幻片 → 推其他科幻片。只需要「你」的紀錄+物品的標籤/描述,不需要別人。
    👥協同過濾(Collaborative Filtering, CF)
    看群眾的行為:「跟你品味很像的人也愛這部」。完全不看物品內容,只靠評分/點擊矩陣。
    🧪混合式(Hybrid)
    兩者合體:新品沒人評過用內容式頂著、資料夠了交給協同過濾,再加人氣、時間等特徵。實務上幾乎都是混合式。
    面向內容式協同過濾混合式
    推薦依據物品特徵相似(類型、導演、關鍵字、embedding)使用者 × 物品互動矩陣兩者+額外特徵
    需要的資料物品描述 + 該使用者歷史大量使用者的行為都要
    新物品(沒人評過)✅ 有描述就能推❌ 冷啟動✅ 用內容式補
    新使用者(沒歷史)❌ 不知道你愛什麼❌ 冷啟動用問卷/人氣榜補
    驚喜度(Serendipity)低:越推越像,容易「一直推科幻片」高:能推你沒想過但同好愛的東西可調
    可解釋性高:「因為你看過 X」中:「喜歡 X 的人也喜歡 Y」視設計
    代表例子新聞/文章推薦、Pandora 音樂基因Amazon「買了這個的人也買」、Netflix PrizeYouTube、Netflix、蝦皮首頁

    🔢協同過濾怎麼算:鄰居法與矩陣分解

    ① 鄰居法(Memory-based):使用者式 vs 物品式

    上面的互動就是鄰居法。使用者式(User-based)先找「跟你最像的 k 個人」,看他們怎麼評你沒看過的片;物品式(Item-based)先算「片與片之間的相似度」(看同一群人是否給相近評價),再用你看過的片去推相似的片。

    面向使用者式 User-based物品式 Item-based
    相似度算誰人跟人(比較兩列)物品跟物品(比較兩欄)
    直覺解釋「品味像你的人也喜歡」「看過這部的人也看了那部」
    穩定性人的口味常變、新使用者多,相似度要常重算物品關係相對穩定,可離線先算好
    適合使用者少、物品多使用者多、物品少(Amazon 2003 年論文的選擇)

    ② 矩陣分解(Matrix Factorization, MF)

    鄰居法有個痛點:矩陣太稀疏(Netflix 使用者平均只評過不到 1% 的片),很多人之間根本找不到共同評過的片。矩陣分解的想法是:把巨大的評分矩陣 $R$($m$ 個使用者 × $n$ 部片)拆成兩個瘦長的矩陣相乘——每位使用者一條 $k$ 維向量、每部片一條 $k$ 維向量,兩者內積就是預測評分。

    5?4? ?5?2 1?5? ?4?5 R(m × n) 使用者 × 物品,滿是空格 ≈ .9 .1.2 .8.7 .3.1 .9 P(m × k) 使用者向量 × .9 .3 .8 .1.2 .9 .1 .8 Qᵀ(k × n) 物品向量 k 維「隱因子」 例:k=2 科幻度/愛情度 r̂ᵤᵢ = pᵤ · qᵢ 內積=預測評分
    $\hat r_{u,i}=\vec p_u\cdot\vec q_i$  $\min_{P,Q}\sum_{(u,i)\in\text{已評分}}\big(r_{u,i}-\vec p_u\cdot\vec q_i\big)^2+\lambda\big(\lVert\vec p_u\rVert^2+\lVert\vec q_i\rVert^2\big)$ 只對「有評分的格子」算誤差,用梯度下降或 ALS 學出 P、Q;$\lambda$ 是正則化,避免過擬合。學完後任何空格都能用內積填上。這些 $k$ 維向量就是隱因子(latent factor),常常自然對應到「科幻度、浪漫度、藝術片程度」之類人類看得懂的軸——但它是自己學出來的,不是人工貼的標籤。
    矩陣分解的好處:①稀疏矩陣也能學(不需要兩人有共同評分)②把每個人、每部片都壓成一條向量,之後比相似度超快③Netflix Prize(2006–2009)證明它大勝鄰居法。它跟 降維、embedding 是同一家人:都是「把高維稀疏的東西壓成低維稠密向量」。

    🥶冷啟動,以及你以為沒給分其實一直在給分

    冷啟動問題(Cold Start)

    協同過濾全靠「別人怎麼評」,所以新使用者(沒有歷史)跟新物品(沒人評過)在矩陣裡是整條空白——鄰居找不到、向量學不出來,這叫冷啟動。常見解法:

    顯性回饋 vs 隱性回饋

    面向顯性回饋 Explicit隱性回饋 Implicit
    例子打星星、按讚/倒讚、寫評論點擊、觀看時長、加購物車、購買、跳過、搜尋
    數量很少(多數人懶得評)海量,每個動作都是訊號
    意義清楚嗎清楚:5 星就是喜歡模糊:點了不一定喜歡;沒點不代表不喜歡,可能只是沒看到
    負樣本有(1 星)幾乎沒有「明確不喜歡」,要靠抽樣假設
    實務主流早期(Netflix Prize 時代)現在的主流(YouTube、TikTok 看完成率、重播、停留)
    考題陷阱:「使用者沒有對商品評分,只有瀏覽與購買紀錄」→ 這是隱性回饋;處理時不能把「沒互動」當成「不喜歡」,常用信心加權或負採樣的方式建模。

    📏推薦好不好,怎麼量?

    推薦系統輸出的是「排好順序的前 K 名」,所以指標都在問:前 K 名裡命中幾個?命中的有沒有排前面?而不是整體分類的 Accuracy。點下面清單中的項目,把它標成「使用者真的喜歡」,看指標怎麼變。

    📐 Precision@K / Recall@K / NDCG@K 計算器(K = 5)
    系統推了這 5 部(由上到下=排名)。點一下=使用者真的喜歡(相關)
      使用者總共喜歡的片數(整個片庫裡)4
      0.00Precision@5
      推的 5 部裡有幾成命中
      0.00Recall@5
      他喜歡的全部,被我推到幾成
      0.00DCG@5
      命中且排越前面分越高
      0.00NDCG@5
      DCG ÷ 理想排序的 DCG
      $\text{Precision@K}=\dfrac{\#\{\text{前 K 名中相關}\}}{K}$  $\text{Recall@K}=\dfrac{\#\{\text{前 K 名中相關}\}}{\#\{\text{所有相關}\}}$  $\text{DCG@K}=\sum_{i=1}^{K}\dfrac{rel_i}{\log_2(i+1)}$  $\text{NDCG@K}=\dfrac{\text{DCG@K}}{\text{IDCG@K}}$ DCG 的分母 $\log_2(i+1)$ 讓「排第 1 名命中」比「排第 5 名命中」值錢,所以 NDCG 是考慮順序的指標;Precision/Recall 不管順序。
      🎯準確類
      Precision@K、Recall@K、NDCG、MAP、Hit Rate。離線用歷史資料算,線上用 CTR、轉換率、停留時間。
      🗺️覆蓋率(Coverage)
      整個片庫裡有多少比例的物品「曾被推薦出去」。只推熱門片的系統覆蓋率很低,長尾商品永遠出不了頭。
      🌈多樣性(Diversity)
      同一份推薦清單裡物品彼此有多不像。全推漫威片 Precision 可能很高,但使用者會膩。
      ✨新穎性/驚喜度
      Novelty:推的是不是使用者沒看過的;Serendipity:意料之外但喜歡。這兩個才是留住人的關鍵。
      為什麼不能只用 Accuracy?評分矩陣 99% 是空格,你把每格都猜「不會看」準確率也 99%;而且使用者只看得到前 K 名,第 500 名猜得多準都沒意義。這跟不平衡資料的邏輯一樣。

      ⚠️同溫層、公平性與其他風險

      同溫層/過濾泡泡(Filter Bubble):你點什麼就推更多那種,越推越窄,久了只看得到同一種觀點——社群平台的極化問題有一大半來自推薦系統的回饋迴圈(feedback loop):系統推 → 你點 → 系統更確信 → 推更多。
      對策:在排序階段加入多樣性/新穎性懲罰、探索(exploration,刻意混入一些不確定的物品)、給使用者「為什麼推這個」的解釋與「不感興趣」按鈕、對不同群體做公平性稽核。

      🤖LLM 時代的推薦:一切都是 embedding 檢索

      現代推薦系統的主流架構是兩階段:

      LLM 帶來的新玩法:①內容式推薦復活——商品描述、影片字幕、文章全文都能編成語意 embedding,新物品零冷啟動;②對話式推薦——「我想找一部像《星際效應》但不要太燒腦的片」,LLM 理解需求後去向量庫檢索,這跟 RAG 是同一套機制;③解釋推薦理由——用自然語言告訴使用者「因為你上週看了…」。核心沒變:相似度 + 排序,只是向量變得更聰明。

      ✅自我檢測

      🎯重點整理

      📝 iPAS 考點提醒

      推薦系統在 iPAS 初級「AI 應用領域」常以情境題出現:「電商依顧客購買紀錄推薦商品,屬於哪類應用/哪種學習?」——答協同過濾、屬機器學習(常歸非監督或半監督的「從互動矩陣學偏好」;若有評分標籤可視為監督式預測)。要能分辨內容式(看物品特徵)與協同過濾(看群眾行為),並說出「喜歡 A 的人也喜歡 B」是物品式 CF。中級科目二(機器學習技術與應用)會往下挖:矩陣分解把評分矩陣拆成使用者向量 × 物品向量;冷啟動(新使用者/新物品無互動資料)的成因與混合式對策;隱性回饋(點擊、購買)與顯性回饋(評分)的差異;評估指標 Precision@K、Recall@K、NDCG(考慮排序)、覆蓋率、多樣性,並懂得「為何不用 Accuracy」。易混點:矩陣分解 vs PCA(都是降維,但 MF 只對有評分的格子算誤差)、NDCG vs Precision(前者管順序)。風險題:同溫層/過濾泡泡的回饋迴圈、人氣偏差、公平性。

      想練情境題與詳解 → AI 學習與考證地圖

      ❓ 常見問題

      推薦系統屬於監督式還是非監督式學習?

      看設定。協同過濾從互動矩陣找相似結構,常被歸為非監督式;若把「預測評分」當回歸、「會不會點擊」當分類,就是監督式。考題多半只要求辨認「這是協同過濾/內容式推薦」。

      內容式推薦和協同過濾差在哪?

      內容式比較物品本身的特徵(類型、描述、embedding),只需要你的歷史;協同過濾完全不看內容,只看「誰對什麼做了什麼」的群眾行為矩陣。

      使用者式和物品式協同過濾怎麼分?

      使用者式找「跟你最像的人」看他們喜歡什麼;物品式找「跟你喜歡的東西最像的東西」。物品關係較穩定、可離線預算,Amazon 早期就選物品式。

      什麼是冷啟動?怎麼解?

      新使用者或新物品沒有互動資料,協同過濾找不到鄰居也學不出向量。解法:內容式推薦、熱門榜、註冊問卷、先曝光蒐集回饋,也就是混合式。

      矩陣分解在推薦系統裡做什麼?

      把稀疏的評分矩陣 R 近似成 P·Qᵀ,每位使用者與每個物品各得到一條 k 維隱因子向量,內積就是預測評分;只對有評分的格子算誤差來訓練。

      為什麼推薦系統不用 Accuracy 評估?

      矩陣絕大多數是空格、使用者只看得到前 K 名,所以用 Precision@K、Recall@K 看命中、NDCG 看命中有沒有排前面,再用覆蓋率與多樣性看生態是否健康。

      同溫層跟推薦系統有什麼關係?

      系統推你點過的類型、你點了它更確信、再推更多,形成回饋迴圈,視野越縮越窄。對策是加入探索、多樣性懲罰、推薦理由說明與「不感興趣」回饋。

      🧭 相關主題

      ← 返回 AI 學習與考證地圖