推薦系統算法:監督式學習、分群和相似度

更新於 發佈於 閱讀時間約 4 分鐘

在思考推薦名單應該用什麼樣的算法來進行會比較好,因此 survey 了幾個算法,包含監督式學習、分群、相似度,以下針對各算法進行討論。

Photo by Alesia Kaz on Unsplash

Photo by Alesia Kaz on Unsplash


1. 監督式學習

監督式學習需要有明確的輸入(特徵)和輸出(目標變量)的歷史數據。透過這種方法,可以基於過去的數據預測未來的行為或分類。例如,有關於用戶以往購買歷史的數據,可提取特徵(如購買頻率、平均消費金額、購買類別等),並使用這些特徵來預測哪些用戶最有可能對某個產品感興趣。

◾ 優點 直接目標導向,可以針對特定問題(如預測誰會購買某個產品)進行優化。 易於解釋,因為可以明確知道哪些特徵對預測結果有影響。

◾ 缺點 需要大量的歷史數據。 如果數據集中的模式隨時間變化,模型可能需要定期重新訓練。


2. 分群

分群是一種無監督學習方法,它將數據集分成若干個組或“群”,這些群體內的成員比其他群體內的成員更相似。這種方法不需要預先標注的數據,而是根據數據本身的特性進行分組。例如,可以根據用戶的購買行為、瀏覽習慣等特徵將用戶分成不同的群體,然後針對每個群體推薦適合它們的產品或服務。

◾ 優點不需要標注數據,適用於沒有明確目標變量的場景。 可以發現數據中未知的模式或結構,有助於更好地了解用戶群體。

◾ 缺點 結果的解釋性可能不如監督式學習,因為分群是根據數據本身的相似性進行的,而不是針對特定預測目標。群體的定義可能隨時間和數據的變化而變化,需要定期重新評估和調整群體。

3. 相似度

這其實是一種更細化的策略,可以視為一種特殊形式的分群,更加注重個體間的相似性而非將個體分配到廣泛的群組中。

  • 用戶基於相似度的推薦(User-Based Collaborative Filtering):這種方法首先計算用戶間的相似度,然後為一個用戶推薦他相似用戶喜歡的產品。相似度可以通過各種度量來計算,如餘弦相似度、皮爾森相關係數或傑卡德相似度等。
  • 物品基於相似度的推薦(Item-Based Collaborative Filtering):這方法首先計算物品之間的相似度。如果一個用戶喜歡某個產品,系統會推薦與該產品相似的其他產品。

關鍵點在於:

1) 特徵選擇與預處理:為了準確計算相似度,選擇能夠代表用戶或物品特性的特徵。

  • 對於 user 選擇包括他們的購買歷史、瀏覽行為、評分和偏好等。
  • 對於物品,可以是類別、品牌、價格等屬性。

2)相似度度量:選擇合適的相似度度量非常關鍵。餘弦相似度適用於度量基於向量空間的相似性,而傑卡德相似度適用於比較基於集合的相似性。

3)鄰居的選擇:在基於用戶或物品的方法中,你需要決定考慮多少個「鄰居」(即相似的用戶或物品)。選擇太少可能不夠代表性,太多則可能引入噪聲。

4)評估與優化:使用適當的評估指標(如精確度、召回率、F1分數等)來評估推薦系統的性能,並根據反饋進行優化。與廣義的分群方法相比,基於客戶樣貌相似度的推薦更注重於細粒度的個體級相似性,能夠提供更個性化的推薦。這種方法適用於希望深入挖掘用戶偏好和行為模式的場景,可以大大提高推薦的相關性和用戶滿意度。然而,它也要求有足夠的數據支持以計算相似度,以及合適的算法來處理這些數據。


小結

監督式學習提供了針對特定目標導向問題的直接解決方案,但它依賴於大量的標注數據和模型的定期更新以適應數據變化。分群方法作為一種無監督學習技術,能夠揭示數據中的隱含模式和結構,適合於沒有明確目標變量的場景,但其結果的解釋性可能不如監督式學習強。相似度方法,特別是在推薦系統中,通過計算用戶或物品間的相似度來提供個性化推薦,雖然可以提高推薦的準確度和相關性,但同樣需要注意特徵選擇、相似度度量以及鄰居選擇等關鍵因素。

因此,在選擇推薦系統算法時,應考慮算法的適用性、數據的可用性、系統的實現複雜度以及期望達到的推薦效果。透過綜合考慮這些因素,可以選擇最適合當前應用需求的推薦算法。後續將基於這幾個算法進行實驗與成效分析並且驗證!

avatar-img
33會員
43內容數
歡迎來到《桃花源記》專欄。這裡不僅是一個文字的集合,更是一個探索、夢想和自我發現的空間。在這個專欄中,我們將一同走進那些隱藏在日常生活中的"桃花源"——那些讓我們心動、讓我們反思、讓我們找到內心平靜的時刻和地方
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Karen的沙龍 的其他內容
Kafka是一個先進的分佈式流處理平臺,具有高吞吐量、可擴展性、容錯性和低延遲特性,提供瞭解耦、非同步和削峰特點。本文介紹了Kafka的通訊模式、適合的應用場景和未來發展趨勢,旨在幫助使用者更好地理解和應用Kafka。
本文探討了在使用 pandas 處理資料時應注意的幾個關鍵點,以及如何減少因資料型態問題而產生的錯誤,確保資料的原始意義得以保留。主要包括Pandas 資料處理深入解析,尋找CSV之外的數據儲存方案,以及優化資料處理策略。
上篇進一步認識基本的圖形架構與三大 Graph 算法,那首先從 shortest path 開始,我們會陸續去理解這些算法,以及可能的應用,如果還沒有看過上一篇的,可以點以下連結~那我們就開始吧! 【圖論Graph】Part1:初探圖形與圖形演算法之應用
本篇文章深入介紹了圖形的基本概念、組成和應用。從圖形的基本組成,到圖的類型與種類,再到圖形演算法的三大類型,本文將接續圖形領域的深入學習,並分享了對圖形的初步認識和學習方向的小心得。希望對正在學習圖形的人有所幫助。
0/5Graph
圖形演算法在資料處理上扮演重要角色。本文介紹圖形的歷史、定義、技術用途,以及為什麼我們要關心圖形演算法。文末還提及圖形演算法在機器學習領域的應用。下次將介紹更詳細的圖形演算法內容。
參加Leetcode的30 Days of Pandas挑戰,除了是學習的機會,更是練習熟悉pandas功能的機會。文章分享了挑戰簡介、題目描述、關鍵技術以及參加挑戰的心得。適合新手學習pandas,也可提升熟練度。
Kafka是一個先進的分佈式流處理平臺,具有高吞吐量、可擴展性、容錯性和低延遲特性,提供瞭解耦、非同步和削峰特點。本文介紹了Kafka的通訊模式、適合的應用場景和未來發展趨勢,旨在幫助使用者更好地理解和應用Kafka。
本文探討了在使用 pandas 處理資料時應注意的幾個關鍵點,以及如何減少因資料型態問題而產生的錯誤,確保資料的原始意義得以保留。主要包括Pandas 資料處理深入解析,尋找CSV之外的數據儲存方案,以及優化資料處理策略。
上篇進一步認識基本的圖形架構與三大 Graph 算法,那首先從 shortest path 開始,我們會陸續去理解這些算法,以及可能的應用,如果還沒有看過上一篇的,可以點以下連結~那我們就開始吧! 【圖論Graph】Part1:初探圖形與圖形演算法之應用
本篇文章深入介紹了圖形的基本概念、組成和應用。從圖形的基本組成,到圖的類型與種類,再到圖形演算法的三大類型,本文將接續圖形領域的深入學習,並分享了對圖形的初步認識和學習方向的小心得。希望對正在學習圖形的人有所幫助。
0/5Graph
圖形演算法在資料處理上扮演重要角色。本文介紹圖形的歷史、定義、技術用途,以及為什麼我們要關心圖形演算法。文末還提及圖形演算法在機器學習領域的應用。下次將介紹更詳細的圖形演算法內容。
參加Leetcode的30 Days of Pandas挑戰,除了是學習的機會,更是練習熟悉pandas功能的機會。文章分享了挑戰簡介、題目描述、關鍵技術以及參加挑戰的心得。適合新手學習pandas,也可提升熟練度。
你可能也想看
Google News 追蹤
Thumbnail
現代社會跟以前不同了,人人都有一支手機,只要打開就可以獲得各種資訊。過去想要辦卡或是開戶就要跑一趟銀行,然而如今科技快速發展之下,金融App無聲無息地進到你生活中。但同樣的,每一家銀行都有自己的App時,我們又該如何選擇呢?(本文係由國泰世華銀行邀約) 今天我會用不同角度帶大家看這款國泰世華CUB
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
在社群平臺上,一切的可見度都受到演算法控制,想要增加曝光就必須深入瞭解演算法的運作方式。本篇文章將透過說明演算法的運作方式以及狙擊演算法的第一步:HOOK來提供一些策略,協助創作者應對平臺演算法的變化。
我自己很喜歡同時讀多本書。 而且我會先比較每一本書的目錄, 來學習每個作者編排內容的方式。 例如機器學習就有很多的書都在教, 而且裡面的內容也可以差異很大。 有的書可能整本都是理論, 有的書整本都是程式碼, 而理論仔細去比較, 有的又更側重其計算複
Thumbnail
在機器學習領域中,監督學習、無監督學習和強化學習是三種核心方法,它們在解決不同類型的問題時發揮著重要作用。
Thumbnail
觀察者模式透過主題訂閱/訊息通知的機制,極度增強系統的可擴展性、靈活性以及降低組件間的耦合度。概念直觀簡單,是非常實用的設計模式。
Thumbnail
策略模式將多種演算法封裝於獨立的策略類別中,每個策略類別都實現了一個共同的介面。這種設計允許使用者在系統運行時動態選擇和切換演算法,以達成相同的目的。
Thumbnail
最近有新的訂閱者加入, 想趁這個機會再分享一次學習心法與建議給第一次練習的讀者、同學們。 如果你本身已經很熟練演算法,那隨機挑題目練習ok,可以測試觀念是否正確,並且驗證寫code的效率與正確程度。 如果是剛畢業或還在學,以前沒有打過程式競賽。 想開始有系統地增強演算法&資料結構的能力
Thumbnail
推薦《數學之前人人平等》這本書,在這篇文章會講到此書談到「對數學天分的看法」與「建構學習支架的教學方法」,最後分享對我教學上的一些影響。
Thumbnail
解決電腦上遇到的問題、證明正確性、探討效率 並且很著重溝通,說服別人你做的事是正確且有效率的。 內容: 計算模型、資料結構介紹、演算法介紹、時間複雜度介紹。
Thumbnail
我相信有更聰明好用的方法,不過目前我還是喜歡用這個一人群組。
Thumbnail
現代社會跟以前不同了,人人都有一支手機,只要打開就可以獲得各種資訊。過去想要辦卡或是開戶就要跑一趟銀行,然而如今科技快速發展之下,金融App無聲無息地進到你生活中。但同樣的,每一家銀行都有自己的App時,我們又該如何選擇呢?(本文係由國泰世華銀行邀約) 今天我會用不同角度帶大家看這款國泰世華CUB
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
在社群平臺上,一切的可見度都受到演算法控制,想要增加曝光就必須深入瞭解演算法的運作方式。本篇文章將透過說明演算法的運作方式以及狙擊演算法的第一步:HOOK來提供一些策略,協助創作者應對平臺演算法的變化。
我自己很喜歡同時讀多本書。 而且我會先比較每一本書的目錄, 來學習每個作者編排內容的方式。 例如機器學習就有很多的書都在教, 而且裡面的內容也可以差異很大。 有的書可能整本都是理論, 有的書整本都是程式碼, 而理論仔細去比較, 有的又更側重其計算複
Thumbnail
在機器學習領域中,監督學習、無監督學習和強化學習是三種核心方法,它們在解決不同類型的問題時發揮著重要作用。
Thumbnail
觀察者模式透過主題訂閱/訊息通知的機制,極度增強系統的可擴展性、靈活性以及降低組件間的耦合度。概念直觀簡單,是非常實用的設計模式。
Thumbnail
策略模式將多種演算法封裝於獨立的策略類別中,每個策略類別都實現了一個共同的介面。這種設計允許使用者在系統運行時動態選擇和切換演算法,以達成相同的目的。
Thumbnail
最近有新的訂閱者加入, 想趁這個機會再分享一次學習心法與建議給第一次練習的讀者、同學們。 如果你本身已經很熟練演算法,那隨機挑題目練習ok,可以測試觀念是否正確,並且驗證寫code的效率與正確程度。 如果是剛畢業或還在學,以前沒有打過程式競賽。 想開始有系統地增強演算法&資料結構的能力
Thumbnail
推薦《數學之前人人平等》這本書,在這篇文章會講到此書談到「對數學天分的看法」與「建構學習支架的教學方法」,最後分享對我教學上的一些影響。
Thumbnail
解決電腦上遇到的問題、證明正確性、探討效率 並且很著重溝通,說服別人你做的事是正確且有效率的。 內容: 計算模型、資料結構介紹、演算法介紹、時間複雜度介紹。
Thumbnail
我相信有更聰明好用的方法,不過目前我還是喜歡用這個一人群組。