<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Recommendation on Tarragon</title><link>https://tarrragon.github.io/blog/tags/recommendation/</link><description>Recent content in Recommendation on Tarragon</description><generator>Hugo -- gohugo.io</generator><language>zh-TW</language><copyright>Tarragon (CC BY 4.0)</copyright><lastBuildDate>Fri, 19 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://tarrragon.github.io/blog/tags/recommendation/index.xml" rel="self" type="application/rss+xml"/><item><title>推薦系統概論</title><link>https://tarrragon.github.io/blog/monitoring/08-business-analytics/recommendation-overview/</link><pubDate>Fri, 19 Jun 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/monitoring/08-business-analytics/recommendation-overview/</guid><description>&lt;p>推薦系統從使用者的歷史行為或物品的內容特徵推斷使用者可能感興趣的物品。三種基本方法各自依賴不同的資料：collaborative filtering 依賴使用者行為矩陣，content-based 依賴物品特徵，混合方法結合兩者。&lt;/p>
&lt;h2 id="collaborative-filtering">Collaborative Filtering&lt;/h2>
&lt;p>Collaborative filtering 的核心假設是「和你行為相似的人喜歡的東西，你也可能喜歡」。它不分析物品的內容，只看使用者的行為模式。&lt;/p>
&lt;h3 id="user-based">User-based&lt;/h3>
&lt;p>找到和目標使用者行為最相似的一群人（neighbors），把 neighbors 互動過但目標使用者沒互動過的物品推薦給目標使用者。&lt;/p>
&lt;p>資料需求：使用者-物品互動矩陣（user × item matrix），每格是評分、點擊、購買等互動訊號。&lt;/p>
&lt;p>挑戰：使用者數量增加時，計算使用者相似度的成本呈平方增長。冷啟動問題 — 新使用者沒有足夠的互動歷史來找到 neighbors。&lt;/p>
&lt;h3 id="item-based">Item-based&lt;/h3>
&lt;p>計算物品之間的相似度（根據哪些使用者同時互動過這兩個物品），推薦和使用者已互動物品相似的物品。&lt;/p>
&lt;p>資料需求：同上，但相似度計算的維度是物品而非使用者。&lt;/p>
&lt;p>優勢：物品的相似度矩陣比使用者相似度穩定（物品不會突然改變行為，使用者會），可以離線計算和快取。Amazon 的「購買此商品的人也買了」就是 item-based collaborative filtering。&lt;/p>
&lt;h2 id="content-based-filtering">Content-based Filtering&lt;/h2>
&lt;p>Content-based filtering 分析物品的內容特徵，推薦和使用者過去喜歡的物品內容相似的物品。&lt;/p>
&lt;p>資料需求：每個物品的特徵向量（genre、author、price range、keywords）和使用者的偏好 profile（從歷史互動推斷）。&lt;/p>
&lt;p>優勢：不依賴其他使用者的行為 — 單一使用者就能產生推薦。新物品只要有特徵描述就能被推薦（解決 collaborative filtering 的新物品冷啟動）。&lt;/p>
&lt;p>挑戰：推薦結果傾向和使用者歷史行為相似，缺乏意外發現（serendipity）。特徵工程的品質直接影響推薦品質 — 物品的特徵描述不完整或不準確，推薦就不準確。&lt;/p>
&lt;h2 id="混合方法">混合方法&lt;/h2>
&lt;p>結合 collaborative filtering 和 content-based 的優勢，減少各自的弱點。&lt;/p>
&lt;h3 id="加權混合">加權混合&lt;/h3>
&lt;p>兩種方法各自產生推薦清單，用加權分數合併。權重可以固定，也可以根據情境動態調整（新使用者偏重 content-based，老使用者偏重 collaborative filtering）。&lt;/p>
&lt;h3 id="特徵增強">特徵增強&lt;/h3>
&lt;p>用 content-based 的特徵增強 collaborative filtering 的矩陣。使用者-物品互動矩陣加上物品的內容特徵，讓相似度計算同時考慮行為和內容。&lt;/p>
&lt;h3 id="級聯">級聯&lt;/h3>
&lt;p>先用一種方法粗篩，再用另一種方法排序。Collaborative filtering 產生候選清單，content-based 根據使用者的內容偏好排序。&lt;/p>
&lt;h2 id="行為事件在推薦系統的角色">行為事件在推薦系統的角色&lt;/h2>
&lt;p>推薦系統的輸入是使用者的互動行為 — 瀏覽、點擊、加入購物車、購買、評分。這些互動行為就是行為事件（&lt;a href="https://tarrragon.github.io/blog/monitoring/01-mental-model/" data-link-title="模組一：監控心智模型" data-link-desc="四類事件（event / error / metric / lifecycle）的分類與收集策略">模組一 心智模型&lt;/a>）的 event 類型。&lt;/p>
&lt;p>行為事件的設計直接影響推薦系統的資料品質。事件的粒度決定了推薦的精細度 — 只記錄「頁面瀏覽」比記錄「頁面瀏覽 + 停留時間 + 滾動深度」的推薦信號弱。&lt;/p>
&lt;h2 id="下一步路由">下一步路由&lt;/h2>
&lt;ul>
&lt;li>使用者分群的工程實作 → &lt;a href="https://tarrragon.github.io/blog/monitoring/08-business-analytics/rfm-segmentation/" data-link-title="RFM 分群" data-link-desc="Recency / Frequency / Monetary 三維度的使用者分群 — 從行為事件計算 RFM 分數、定義使用者群體、驅動差異化策略">RFM 分群&lt;/a>&lt;/li>
&lt;li>行為事件設計 → &lt;a href="https://tarrragon.github.io/blog/monitoring/08-business-analytics/behavior-event-design/" data-link-title="行為事件設計" data-link-desc="事件命名規範、屬性設計、funnel 定義 — 行為分析的品質取決於事件設計的品質">行為事件設計&lt;/a>&lt;/li>
&lt;li>自架方案的分析能力邊界 → &lt;a href="https://tarrragon.github.io/blog/monitoring/08-business-analytics/self-hosted-funnel/" data-link-title="從 collector 資料做基礎 funnel 分析" data-link-desc="SQLite 層能做什麼程度的 funnel、PostgreSQL 層提供什麼進階能力、JSONL 匯出後的臨時分析">從 collector 資料做基礎 funnel 分析&lt;/a>&lt;/li>
&lt;/ul></description><content:encoded><![CDATA[<p>推薦系統從使用者的歷史行為或物品的內容特徵推斷使用者可能感興趣的物品。三種基本方法各自依賴不同的資料：collaborative filtering 依賴使用者行為矩陣，content-based 依賴物品特徵，混合方法結合兩者。</p>
<h2 id="collaborative-filtering">Collaborative Filtering</h2>
<p>Collaborative filtering 的核心假設是「和你行為相似的人喜歡的東西，你也可能喜歡」。它不分析物品的內容，只看使用者的行為模式。</p>
<h3 id="user-based">User-based</h3>
<p>找到和目標使用者行為最相似的一群人（neighbors），把 neighbors 互動過但目標使用者沒互動過的物品推薦給目標使用者。</p>
<p>資料需求：使用者-物品互動矩陣（user × item matrix），每格是評分、點擊、購買等互動訊號。</p>
<p>挑戰：使用者數量增加時，計算使用者相似度的成本呈平方增長。冷啟動問題 — 新使用者沒有足夠的互動歷史來找到 neighbors。</p>
<h3 id="item-based">Item-based</h3>
<p>計算物品之間的相似度（根據哪些使用者同時互動過這兩個物品），推薦和使用者已互動物品相似的物品。</p>
<p>資料需求：同上，但相似度計算的維度是物品而非使用者。</p>
<p>優勢：物品的相似度矩陣比使用者相似度穩定（物品不會突然改變行為，使用者會），可以離線計算和快取。Amazon 的「購買此商品的人也買了」就是 item-based collaborative filtering。</p>
<h2 id="content-based-filtering">Content-based Filtering</h2>
<p>Content-based filtering 分析物品的內容特徵，推薦和使用者過去喜歡的物品內容相似的物品。</p>
<p>資料需求：每個物品的特徵向量（genre、author、price range、keywords）和使用者的偏好 profile（從歷史互動推斷）。</p>
<p>優勢：不依賴其他使用者的行為 — 單一使用者就能產生推薦。新物品只要有特徵描述就能被推薦（解決 collaborative filtering 的新物品冷啟動）。</p>
<p>挑戰：推薦結果傾向和使用者歷史行為相似，缺乏意外發現（serendipity）。特徵工程的品質直接影響推薦品質 — 物品的特徵描述不完整或不準確，推薦就不準確。</p>
<h2 id="混合方法">混合方法</h2>
<p>結合 collaborative filtering 和 content-based 的優勢，減少各自的弱點。</p>
<h3 id="加權混合">加權混合</h3>
<p>兩種方法各自產生推薦清單，用加權分數合併。權重可以固定，也可以根據情境動態調整（新使用者偏重 content-based，老使用者偏重 collaborative filtering）。</p>
<h3 id="特徵增強">特徵增強</h3>
<p>用 content-based 的特徵增強 collaborative filtering 的矩陣。使用者-物品互動矩陣加上物品的內容特徵，讓相似度計算同時考慮行為和內容。</p>
<h3 id="級聯">級聯</h3>
<p>先用一種方法粗篩，再用另一種方法排序。Collaborative filtering 產生候選清單，content-based 根據使用者的內容偏好排序。</p>
<h2 id="行為事件在推薦系統的角色">行為事件在推薦系統的角色</h2>
<p>推薦系統的輸入是使用者的互動行為 — 瀏覽、點擊、加入購物車、購買、評分。這些互動行為就是行為事件（<a href="/blog/monitoring/01-mental-model/" data-link-title="模組一：監控心智模型" data-link-desc="四類事件（event / error / metric / lifecycle）的分類與收集策略">模組一 心智模型</a>）的 event 類型。</p>
<p>行為事件的設計直接影響推薦系統的資料品質。事件的粒度決定了推薦的精細度 — 只記錄「頁面瀏覽」比記錄「頁面瀏覽 + 停留時間 + 滾動深度」的推薦信號弱。</p>
<h2 id="下一步路由">下一步路由</h2>
<ul>
<li>使用者分群的工程實作 → <a href="/blog/monitoring/08-business-analytics/rfm-segmentation/" data-link-title="RFM 分群" data-link-desc="Recency / Frequency / Monetary 三維度的使用者分群 — 從行為事件計算 RFM 分數、定義使用者群體、驅動差異化策略">RFM 分群</a></li>
<li>行為事件設計 → <a href="/blog/monitoring/08-business-analytics/behavior-event-design/" data-link-title="行為事件設計" data-link-desc="事件命名規範、屬性設計、funnel 定義 — 行為分析的品質取決於事件設計的品質">行為事件設計</a></li>
<li>自架方案的分析能力邊界 → <a href="/blog/monitoring/08-business-analytics/self-hosted-funnel/" data-link-title="從 collector 資料做基礎 funnel 分析" data-link-desc="SQLite 層能做什麼程度的 funnel、PostgreSQL 層提供什麼進階能力、JSONL 匯出後的臨時分析">從 collector 資料做基礎 funnel 分析</a></li>
</ul>
]]></content:encoded></item><item><title>模組八：行為資料的商業利用</title><link>https://tarrragon.github.io/blog/monitoring/08-business-analytics/</link><pubDate>Fri, 19 Jun 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/monitoring/08-business-analytics/</guid><description>&lt;p>回答「蒐集到的行為資料除了 debug，還能做什麼」。前提：&lt;a href="https://tarrragon.github.io/blog/monitoring/07-security-privacy/" data-link-title="模組七：資安與隱私" data-link-desc="SDK redaction / transport 加密 / collector access control / 去識別化 — 蒐集的資料本身就是風險資產">模組七&lt;/a> 的去識別化是本模組的入場條件。&lt;/p>
&lt;h2 id="待寫章節">待寫章節&lt;/h2>
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> 行為事件設計（事件命名規範 / 屬性設計 / funnel 定義）&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Funnel analysis（使用者在哪一步流失）&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Cohort analysis（不同族群的留存率差異）&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Attribution（使用者從哪來、哪個廣告帶來轉換）&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> A/B test 的統計基礎（假設檢定 / 樣本量 / 多重比較）&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> 推薦系統概論（collaborative filtering / content-based / 混合）&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> RFM 分群（Recency / Frequency / Monetary 的工程實作）&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> 從 collector 資料做基礎 funnel 分析（自架方案能做到哪裡）&lt;/li>
&lt;/ul>
&lt;h2 id="跨分類引用">跨分類引用&lt;/h2>
&lt;ul>
&lt;li>← &lt;a href="https://tarrragon.github.io/blog/monitoring/07-security-privacy/" data-link-title="模組七：資安與隱私" data-link-desc="SDK redaction / transport 加密 / collector access control / 去識別化 — 蒐集的資料本身就是風險資產">monitoring 模組七 資安&lt;/a>：去識別化是入場條件&lt;/li>
&lt;li>← &lt;a href="https://tarrragon.github.io/blog/monitoring/01-mental-model/" data-link-title="模組一：監控心智模型" data-link-desc="四類事件（event / error / metric / lifecycle）的分類與收集策略">monitoring 模組一 心智模型&lt;/a>：event 類事件是行為分析的原料&lt;/li>
&lt;li>← &lt;a href="https://tarrragon.github.io/blog/ux-design/01-screen-state-machine/" data-link-title="模組一：畫面狀態機設計" data-link-desc="畫面狀態矩陣（顯示 / 操作 / 進入 / 退出）— 退出路徑為空 = UX 死胡同">ux-design 模組一 畫面狀態機&lt;/a>：狀態轉換事件 → funnel 分析&lt;/li>
&lt;li>待建連結 → &lt;code>data-engineering/&lt;/code>（資料管線設計）&lt;/li>
&lt;li>待建連結 → &lt;code>statistics/&lt;/code>（A/B test 統計基礎）&lt;/li>
&lt;li>待建連結 → &lt;code>machine-learning/&lt;/code>（推薦系統架構）&lt;/li>
&lt;li>待建連結 → &lt;code>compliance/&lt;/code>（GDPR / CCPA / 個資法）&lt;/li>
&lt;/ul></description><content:encoded><![CDATA[<p>回答「蒐集到的行為資料除了 debug，還能做什麼」。前提：<a href="/blog/monitoring/07-security-privacy/" data-link-title="模組七：資安與隱私" data-link-desc="SDK redaction / transport 加密 / collector access control / 去識別化 — 蒐集的資料本身就是風險資產">模組七</a> 的去識別化是本模組的入場條件。</p>
<h2 id="待寫章節">待寫章節</h2>
<ul>
<li><input checked="" disabled="" type="checkbox"> 行為事件設計（事件命名規範 / 屬性設計 / funnel 定義）</li>
<li><input checked="" disabled="" type="checkbox"> Funnel analysis（使用者在哪一步流失）</li>
<li><input checked="" disabled="" type="checkbox"> Cohort analysis（不同族群的留存率差異）</li>
<li><input checked="" disabled="" type="checkbox"> Attribution（使用者從哪來、哪個廣告帶來轉換）</li>
<li><input checked="" disabled="" type="checkbox"> A/B test 的統計基礎（假設檢定 / 樣本量 / 多重比較）</li>
<li><input checked="" disabled="" type="checkbox"> 推薦系統概論（collaborative filtering / content-based / 混合）</li>
<li><input checked="" disabled="" type="checkbox"> RFM 分群（Recency / Frequency / Monetary 的工程實作）</li>
<li><input checked="" disabled="" type="checkbox"> 從 collector 資料做基礎 funnel 分析（自架方案能做到哪裡）</li>
</ul>
<h2 id="跨分類引用">跨分類引用</h2>
<ul>
<li>← <a href="/blog/monitoring/07-security-privacy/" data-link-title="模組七：資安與隱私" data-link-desc="SDK redaction / transport 加密 / collector access control / 去識別化 — 蒐集的資料本身就是風險資產">monitoring 模組七 資安</a>：去識別化是入場條件</li>
<li>← <a href="/blog/monitoring/01-mental-model/" data-link-title="模組一：監控心智模型" data-link-desc="四類事件（event / error / metric / lifecycle）的分類與收集策略">monitoring 模組一 心智模型</a>：event 類事件是行為分析的原料</li>
<li>← <a href="/blog/ux-design/01-screen-state-machine/" data-link-title="模組一：畫面狀態機設計" data-link-desc="畫面狀態矩陣（顯示 / 操作 / 進入 / 退出）— 退出路徑為空 = UX 死胡同">ux-design 模組一 畫面狀態機</a>：狀態轉換事件 → funnel 分析</li>
<li>待建連結 → <code>data-engineering/</code>（資料管線設計）</li>
<li>待建連結 → <code>statistics/</code>（A/B test 統計基礎）</li>
<li>待建連結 → <code>machine-learning/</code>（推薦系統架構）</li>
<li>待建連結 → <code>compliance/</code>（GDPR / CCPA / 個資法）</li>
</ul>
]]></content:encoded></item></channel></rss>