AI時代系列(3) 機器學習三部曲: 🔹 第一部:《機器學習 —— AI 智慧的啟航》
67/100 第七週:機器學習專案實作
67. 產品推薦系統 🛒 讓 AI 推薦你喜歡的電影、音樂或商品!打造個人化體驗!
________________________________________
🔎 一、專案目標
• 建立一套推薦系統,根據用戶行為與特徵,預測可能喜歡的產品
• 學會業界最常見的推薦系統技術,理解如何做個人化推薦
• 實作商品、電影、音樂推薦系統,應用於電商、影音平台
________________________________________
🌟 二、推薦系統的應用場景
電商(Amazon、Shopee) : 根據瀏覽與購買行為推薦商品
影音(Netflix、YouTube、Spotify) : 推薦電影、影集、音樂
社群媒體(Facebook、IG) : 推薦朋友、社團、內容
新聞/知識平台 : 推薦新聞、文章或課程內容
________________________________________
🛠 三、推薦系統核心技術分類
方法 : 說明: 特點:
✅ 協同過濾(Collaborative Filtering) 基於「相似用戶或相似產品」 無需產品內容,冷啟動難
✅ 內容型推薦(Content-Based Filtering) 基於產品特徵(類型、關鍵字) 冷啟動友好,易過度推薦相似內容
✅ 混合型(Hybrid) 結合協同+內容,最佳解 Netflix、Spotify 皆採用
________________________________________
💻 四、Python 簡易實作 - 協同過濾(基於用戶)
python
import pandas as pd
from sklearn.metrics.pairwise import cosine_similarity
# 1️⃣ 模擬用戶-商品評分資料
data = {
'User': ['A', 'A', 'B', 'B', 'C', 'C'],
'Product': ['P1', 'P2', 'P2', 'P3', 'P1', 'P3'],
'Rating': [5, 3, 4, 5, 4, 2]
}
df = pd.DataFrame(data)
# 2️⃣ 建立用戶-商品評分矩陣
matrix = df.pivot_table(index='User', columns='Product', values='Rating').fillna(0)
# 3️⃣ 計算用戶之間的相似度
user_similarity = cosine_similarity(matrix)
user_similarity_df = pd.DataFrame(user_similarity, index=matrix.index, columns=matrix.index)
# 4️⃣ 定義推薦函數:對每位用戶推薦他沒評分過的產品
def recommend_products_for_user(target_user, top_k=2):
# 該用戶的相似度向量(對其他所有人)
sim_scores = user_similarity_df.loc[target_user]
# 該用戶的已評商品
rated_products = matrix.loc[target_user]
unrated_products = rated_products[rated_products == 0].index.tolist()
# 存放每個未評商品的加權預測分數
scores = {}
for product in unrated_products:
total_sim = 0
weighted_sum = 0
for other_user in matrix.index:
if other_user == target_user:
continue
rating = matrix.loc[other_user, product]
if rating > 0:
sim = sim_scores[other_user]
weighted_sum += sim * rating
total_sim += sim
if total_sim > 0:
scores[product] = weighted_sum / total_sim
# 排序推薦商品
sorted_scores = sorted(scores.items(), key=lambda x: x[1], reverse=True)
return sorted_scores[:top_k]
# 5️⃣ 對每位用戶進行推薦
print("🎯 推薦結果:")
for user in matrix.index:
recommendations = recommend_products_for_user(user)
print(f"👉 對用戶 {user} 的推薦:", recommendations)
✅ 可依照相似度推薦「跟你口味相近的用戶喜歡的商品」
這段程式碼實作了一套使用者相似度協同過濾推薦系統(User-based Collaborative Filtering),透過用戶對商品的評分資料建構出用戶 × 商品矩陣,並利用餘弦相似度計算用戶間的相似性。對於每位用戶尚未評分的商品,系統會參考與其最相似的其他用戶的評分,進行加權平均後預測其可能喜歡的商品,最終推薦排名前兩名的產品。例如,系統建議 A 嘗試 P3,B 嘗試 P1,C 嘗試 P2,展現出「人以群分、以相似者推薦」的邏輯,這類推薦演算法廣泛應用於電商、影音與社群平台,協助提升個人化體驗與轉換率。
________________________________________
📈 五、進階技術與模型
SVD / 矩陣分解: Netflix 經典算法,強化潛在特徵挖掘
Deep Learning(神經網路推薦模型): Wide & Deep、DeepFM 等強化效果
知識圖譜(Knowledge Graph): 理解產品間的關聯性,提升冷啟動效果
強化學習推薦(Reinforcement Learning): 隨用戶反饋不斷優化推薦策略
________________________________________
🎯 六、推薦系統評估指標
RMSE / MAE : 預測評分的準確度
Precision@K / Recall@K : 前K個推薦是否符合用戶喜好
MAP / NDCG : 排名質量評估,越高越好
________________________________________
📌 七、實務應用強化建議
✅ 加入「用戶行為序列」特徵(瀏覽、點擊、收藏、購買)
✅ 考慮「冷啟動問題」處理(新用戶、新商品)
✅ 搭配推薦理由生成(Explainable AI)提升用戶信任感
✅ 運用 A/B 測試驗證推薦效果
________________________________________
🛒 八、推薦系統產業價值
✅ 增加商品曝光與銷售機會(CTR、轉換率提升)
✅ 提升用戶黏著與體驗,形成良性循環
✅ 促進平台個人化運營,打造差異化優勢
________________________________________
✅ 九、總結金句:
🛒 「推薦系統」是 AI 最接近商業變現的應用,精準推薦,就是最強的銷售力!
________________________________________