常見推薦演算法學習

2021-09-27 03:45:01 字數 2287 閱讀 7345

協同過濾演算法

基於使用者的協同過濾演算法(推薦和你類似的人喜歡的商品)

基於商品的協同過濾演算法(推薦喜歡這個商品的人也喜歡的商品)

基於內容的過濾演算法(詞權、word2vec、聚類)

基於模型的推薦演算法(多種機器學習演算法)

基於矩陣分解的推薦演算法(lfm隱語義模型)

混合演算法(結合多種推薦演算法)

1.item-based cf演算法

與item-based cf比較相似的演算法還有乙個是user-based cf,這兩者的區別在於前者是計算商品的相似度,後者是計算使用者的相似度;

user-based cf是對所有使用者計算相似度,如果使用者a喜歡物品a,使用者b喜歡物品a、b、c,使用者c喜歡a和c,那麼認為使用者a與使用者b和c相似,因為他們都喜歡a,而喜歡a的使用者同時也喜歡c,所以把c推薦給使用者a。

至於為什麼不採用user-based cf呢?在本專案中是針對使用者的召回,而採用使用者的相似性可能存在的問題是:與使用者最相似的使用者可能沒有相關的遊戲記錄,即:存在使用者只玩1款遊戲,而與最相似的使用者數量可能很大,但是基於遊戲使用者的特性,每個玩家一般不會同時玩超過5款遊戲,且由於玩家的流失比例的問題,可能採用這種方式對使用者的召回可能存在問題。

item-based cf則是遊戲相關的。而item-based cf在進行商品相似度計算時,是基於所有使用者對商品的評分(偏好),而我們在這裡採用遊戲本身的屬性計算遊戲之間的相似度,而且因為我們的資料量比較少,採用使用者評分的方式,可能會導致最終計算結果發現所有遊戲都具有一定的相似度,差異化並不明顯,使用者量少資料少,就可能存在每個遊戲都有使用者喜歡,遊戲之間都有一定數量的共同使用者,

注意事項:

在選擇相似性度量時,可根據以下幾點進行選擇:

• 當您的資料受使用者偏好/使用者的不同評分尺度影響時,請使用皮爾遜相似度

• 如果資料稀疏,則使用余弦(許多額定值未定義)

• 如果您的資料不稀疏並且屬性值的大小很重要,請使用歐幾里得(euclidean)。

• 建議使用調整後的余弦(adjusted cosine similarity)進行基於商品的方法來調整使用者偏好。

詳細介紹了協同過濾演算法,利於理解不同協同過濾演算法:

協同過濾演算法的詳解,描述了協同過濾演算法的各種相似度計算方程和應用場景:

基於協同過濾的電影推薦演算法,採用了不同的相似度計算方法(knn、svd矩陣分解、皮爾僧關聯度):

詳細介紹基於內容的協同過濾的步驟,每乙個步驟十分詳細,有利於理解和實現協同過濾:

learning to rank,應用與排序場景下,可應用與協同過濾中的排序中,後續需認真研讀:

learning to rank,應用與排序場景下,可應用與協同過濾中的排序中,後續需認真研讀:

採用tensorflow實現協同過濾:

兩種協同過濾實現對比:

加入使用者活躍度的item—cf的實現

2.隱語義模型:

2.1lfm模型

lfm隱語義模型的核心思想是通過隱含特徵(latent factor)聯絡使用者興趣和物品,採取基於使用者行為統計的自動聚類。

隱含語義分析技術的分類來自對使用者行為的統計,代表了使用者對物品分類的看法。隱含語義分析技術和itemcf在物品分類方面的思想類似,如果兩個物品被很多使用者同時喜歡,那麼這兩個物品就很有可能屬於同乙個類。

隱含語義分析技術給出的每個分類都不是同乙個維度的,它是基於使用者的共同興趣計算出來的,如果使用者的共同興趣是某乙個維度,那麼lfm給出的類也是相同的維度。

lfm通過如下公式計算使用者u對物品i的興趣:

簡介:實現模型:

2.2knn模型

要評價乙個未知的東西u,只需找k個與u相似的已知的東西,並通過k個已知的,對u進行評價。假如要**使用者1對一部電影m的評分,根據knn的思想,我們可以先找出k個與使用者1相似的,並且對m進行過評分的使用者,然後再用這k個使用者的評分**使用者1對m的評分。又或者先找出k個與m相似的,並且使用者1評價過的電影,然後再用這k部電影的評分**使用者1對m的評分。在這個例子中,找相似使用者的方法叫做user-based knn,找相似物品的方法叫做item-based knn。這兩種方法的思想和實現都大同小異,因此下文只討論item-based knn,並且將其簡稱為knn。

實現步驟:

3.word2vec

其基本思想是 通過訓練將每個詞對映成 k 維實數向量(k 一般為模型中的超引數),通過詞之間的距離(比如 cosine 相似度、歐氏距離等)來判斷它們之間的語義相似度.其採用乙個 三層的神經網路 ,輸入層-隱層-輸出層。有個核心的技術是 根據詞頻用huffman編碼 ,使得所有詞頻相似的詞隱藏層啟用的內容基本一致,出現頻率越高的詞語,他們啟用的隱藏層數目越少,這樣有效的降低了計算的複雜度

推薦演算法學習(1)

說明 資料都來至網路,收集起來方便自己看 1 推薦演算法就是利用使用者的一些行為,通過一些數學演算法,推測出使用者可能喜歡的東西。1 基於內容的推薦 基於內容的資訊推薦方法的理論依據主要來自於資訊檢索和資訊過濾 即根據使用者過去的瀏覽記錄來向使用者推薦其沒有接觸過的推薦項。啟發式的方法就是使用者憑藉...

智慧型推薦演算法學習總括

智慧型推薦演算法總的來說分為兩種 基於內容的推薦演算法和協同過濾推薦演算法。根據內容的相似度 靜態的東西 進行推薦,內容不好提取的可以採取貼標籤的形式來區分計算內容的相似程度。然後根據使用者的喜好設定,關注等進行相似內容推薦。根據動態資訊來進行推薦,即推薦的過程是自動的,推薦結果的產生是系統從使用者...

常用聚類演算法學習推薦

作為機器學習或者深度學習的研究者和工程師,很多時候在研究過程中或者做專案的時候都會用到聚類的演算法,所以這篇關於主要的聚類演算法還是很值得一看的!聚類是一種機器學習技術,涉及對資料點進行分組。給定一組資料點,我們可以使用clusteringalgorithm將每個資料點劃分為乙個特定的組。理論上,同...