導航:首頁 > 源碼編譯 > 主流的推薦演算法

主流的推薦演算法

發布時間:2023-06-26 01:33:24

㈠ 常見的推薦演算法

根據用戶興趣和行為,向用戶推薦所需要的信息,幫助用戶在海量的信息中快速發現自己真正需要的東西。 所以推薦系統要解決的問題用戶沒用明確的需求以及信息存在過載 。推薦系統一般要基於以下來搭建:
1、根據業務來定義自身產品的熱門標准
2、用戶信息:比如性別、年齡、職業、收入等
3、用戶行為
4、社會化關系

1、非個性化推薦
在冷啟動方面我們精彩用非個性化推薦來解決問題。常見的有:熱門推薦,編輯推薦,最新推薦等。下面是3個場景下的排序介紹:
熱門推薦:根據業務類型確定排名核心指標,比如閱讀數,其次要考慮避免馬太效應,所以增加1個維度:時間。一般情況一個內容的熱度是隨著時間不斷下降的,所以需要設定重力因子G,它決定熱度隨著時間流逝下降的速度。熱度初始值由閱讀數決定,我們假設R為閱讀書,距離發帖時間的時間為T,重力因子為G,熱度為rank。 根據熱度隨著時間而不斷下降,且是非線性的,所以我們用指數函數來表達時間和熱度的關系:rank=R/(T)^G,下圖為熱度的基本曲線:

通過該函數,我們可以隨意調整參數來控制曲線的平坦和陡峭,如果G越大,曲線越陡峭說明熱度下降越快。如果我們要調整熱度初始值,可對R進行調整,比如R1=R^0.8,來縮短每篇文章的初始熱度值
編輯推薦:一般由編輯在後台進行設置
最新推薦:如果無其他規則,一般按內容更新時間/創建時間來倒序

2、基於用戶基本信息推薦(人口統計學)
根據系統用戶的基本信息如:領域、職位、工作年齡、性別和所在地等。根據這些信息給用戶推薦感興趣或者相關的內容。
常見的用戶基本信息有:性別,年齡,工作、收入、領域、職位、所在地,手機型號、網路條件、安裝渠道、操作系統等等。根據這些信息來關聯我們數據源,比如年齡-關聯電影表、收入-關聯商品類型表,性別-文章關聯表等等。然後設定權重,給予個性化的推薦。
步驟1:用戶建模,收集用戶基本信息,建立興趣圖譜,標簽體系樹狀結構然後配上權重
步驟2:內容建模,細分內容的元數據,將步驟1的用戶標簽和元數據連接,然後進行推薦

2、基於內容基本的推薦
根據推薦物品或者信息的元數據,發現物品或者信息的相關性, 然後基於用戶以往的喜好記錄 ,推薦給用戶相似的物品。
內容的一些基本屬性:tag、領域、主題、類型、關鍵字、來源等

3、基於協同過濾的推薦
這種演算法基於一種物以類聚人以群分的假設, 喜歡相同物品的用戶更有可能具有相同的興趣 。基於協同過濾推薦系統一般應用於有用戶評分的系統中,通過分數去刻畫用戶對於物品的喜好。根據維度可分為2種:
1、基於用戶:找到和你相似的人推薦他們看過而你沒有看過的內容
比如下面,系統判斷甲乙2個用戶是相似的,那麼會給甲推薦短視頻相關內容,會給乙推薦數據分析相關內容
甲:產品經理、運營、數據分析
乙:產品經理、運營、短視頻
丙:比特幣、創業、矽谷
步驟1:找到和目標用戶興趣相似的用戶集合
步驟2:找到集合中用戶喜歡的且目標用戶沒有被推薦過的內容

2、基於物品:以物為本建立各商品之間相似度關系矩陣,用戶看了x也會看y
比如下面,甲和乙分別不約而同看了產品經理和數據分析,說明喜歡產品經理和數據分析的用戶重合度高,說明兩個內容相似。所以給喜歡產品經理的人推薦數據分析,給喜歡數據分析的人推薦產品經理。
這么理解:喜歡產品經理的人有m人,喜歡數據分析有n人,其中m中有80%用戶與n中80%的用戶是一樣的,就意味著喜歡產品經理的用戶也會喜歡數據分析。
產品經理:甲、乙,丁
數據分析:甲、乙,戊
增長黑客:甲、丙
喜歡物品A的用戶,可能也會喜歡與物品A相似的物品B,通過歷史行為計算出2個物品的相似度(比如m人喜歡A,n人喜歡B,有k人喜歡A又喜歡B,那麼A和B的相似度可計算為k/m或者n,因為k屬於m和n),這個推薦和內容推薦演算法區別是內容推薦演算法是根據內容的屬性來關聯, 而基於物品的協同過濾則是根據用戶的行為對內容進行關聯

4、基於用戶社交關系推薦
用戶與誰交朋友或者關系好,在一定程度上朋友的需求和自身的需求是相似的。所以向用戶推薦好友喜歡的東西。本質上是好友關系鏈版的基於用戶的協調過濾

5、推薦思路的拓展
根據不同使用場景進行不同的推薦,可細分的場景包括用戶使用的:時間、地點、心情、網路環境、興趣、上下文信息以及使用場景。每個場景的推薦內容都不一樣,所以往往一個系統都是由多種推薦方式組成,比如加權混合。
加權混合:用線性公式將幾種不同的推薦按照一定權重組合起來,具體權重值需要反復測試調整。例子:加權混合=推薦1結果*a+推薦2結果*b+...+推薦n結果*n,其中abn為權重,和為1

下面分享一張來自知乎的圖,供學習,侵刪:

基於用戶信息的推薦 與 基於用戶的協同過濾:
兩者都是計算用戶的相似度, 但基於用戶信息的推薦只考慮用戶本身信息來計算相似度,而基於用戶的協同過濾是基於用戶歷史偏好來計算相似度

基於內容的信息推薦 與 基於物品的協同過濾:
兩者都是計算物品的相似度, 但是基於內容的信息推薦只考慮物品本身的屬性特徵來計算相似度,而基於物品的協同過濾是基於用戶歷史偏好來計算相似度

基於用戶信息的推薦特點:
1、不需要歷史數據,對用戶基本信息建模
2、不依賴於物品,所以其他領域可無縫接入
3、因為用戶基本信息一般變化不大,所以推薦效果一般

基於內容信息的推薦特點:
1、物品屬性有限,很難獲得有效又全的數據
2、需要獲取用戶喜歡的歷史內容,再來推薦與內容相似的東西,所以有冷啟動問題

基於用戶/基於物品的協同過濾推薦特點:
1、需要獲取用戶的歷史偏好,所以有冷啟動問題
2、推薦效果依賴於大數據,數據越多,推薦效果就越好

㈡ 推薦演算法綜述

推薦系統的目的是通過推薦計算幫助用戶從海量的數據對象中選擇出用戶最有可能感興趣的對象。涉及三個基本內容:目標用戶、待推薦項目以及推薦演算法,基本流程為:描述為用戶模型構建、項目模型建立以及推薦演算法處理三個基本流程;

為了能夠為用戶提供准確的推薦服務,推薦系統需要為用戶構建用戶模型,該模型能夠反映用戶動態變化的多層次興趣偏好,有助於推薦系統更好的理解用戶的特徵和需求。構建用戶模型通常需要經歷三個流程:用戶數據收集,用戶模型表示以及用戶模型更新。

(1)用戶數據收集:用戶數據是用戶模型構建的基礎,用戶數據收集的方式一般有顯示方式獲取和隱式方式獲取兩種。
顯示方式獲取的數據是用戶特徵屬性和興趣偏好的直接反映,所獲得的信息數據是較為客觀全面的,比如用戶在注冊時包含的性別、年齡等信息可以直接表示出用戶的基本人口學信息和興趣信息,用戶對項目的評分可以反映出用戶的偏好。但顯示獲取的方式最大的缺陷是其實時性較差,並且具有很強的侵襲性。
隱式方式獲取用戶數據是在不幹擾用戶的前提下,採集用戶的操作行為數據,並從中挖掘出用戶的興趣偏好。用戶的很多操作行為都能反映出用戶的喜好,比如用戶瀏覽網頁的速度、用戶查詢的關鍵字等,推薦系統在不影響用戶使用系統的情況下,通過行為日誌挖掘出用戶的偏好。隱式獲取方式由於具有較好的實時性和靈活性和較弱的侵襲性,己經成為推薦系統中主要的用戶數據採集方式。

(2)用戶模型表示:用戶模型是從用戶數據中歸納出的推薦系統所理解的用戶興趣偏好的結構化形式。
a 基於內容關鍵詞表示;
b 基於評分矩陣表示;
(3)用戶模型更新:推薦系統面臨的問題之一是興趣漂移,興趣漂移的根本原因在於用戶的興趣會隨時間發生改變。為了使用戶模型夠准確的代表用戶的興趣,推薦系統需要根據最新的用戶數據對用戶模型進行更新。

目前項目模型主要通過基於內容和基於分類這兩類方式來建立。基於內容的方式是以項目本身內容為基礎,向量空間模型表示是目前御用最為廣泛的基於內容的方式。

基於分類的方式是根據項目的內容或者屬性,將項目劃分到一個或者幾個類別中,利用類別信息來表示項目,這種方法可以很方便地將項目推薦給對某一類別感興趣的用戶。常見的分類演算法有樸素貝葉斯演算法和KNN分類演算法等。

推薦系統實現的核心是其使用的推薦演算法。針對不同的使用環境及其系統的數據特徵,選取不同的推薦演算法,可以在本質上提高推薦系統的推薦效果。根據不同的分類標准,推薦演算法出現了有很多不同的分類方法,本文採用了比較普遍的分類方法。

推薦系統通常被分為基於內容的推薦演算法、協同過濾推薦演算法以及混合模型推薦演算法三大類。

基於內容的推薦演算法,其本質是對物品或用戶的內容進行分析建立屬性特徵。系統根據其屬性特徵,為用戶推薦與其感興趣的屬性特徵相似的信息。演算法的主要思想是將與用戶之前感興趣的項目的內容相似的其他項目推薦給用戶。

CBF(Content-based Filter Recommendations)演算法的主要思想是將與用戶之前感興趣的項目的內容相似的其他項目推薦給用戶,比如用戶喜歡Java開發的書籍,則基於內容過濾演算法將用戶尚未看過的其他Java開發方面的書籍推薦給用戶。因此,該推薦演算法的關鍵部分是計算用戶模型和項目模型之間的內容相似度,相似度的計算通常採用餘弦相似性度量。

基於內容的推薦過程一般分為以下三個模塊:
(1)特徵提取模塊:由於大多數物品信息是非結構化的,需要為每個物品(如產品、網頁、新聞、文檔等)抽取出一些特徵屬性,用某一恰當的格式表示,以便下一階段的處理。如將新聞信息表示成關鍵詞向量,此種表示形式將作為下一模塊(屬性特徵學習模塊)的輸入。

(2)特徵學習模塊:通過用戶的歷史行為數據特徵,機器學習出用戶的興趣特徵模型。本模塊負責收集代表用戶喜好的數據信息,並泛化這些數據,用於構建用戶特徵模型。通常使用機器學習的泛化策略,來將用戶喜好表示為興趣模型。

(3)推薦模塊:該模塊利用上一階段得到的用戶特徵模型,通過對比用戶興趣模型與帶推薦物品的特徵相似度,為用戶推薦與其興趣相似度較高的物品,從而達到個性化推薦的目的。該模塊一般採用計算用戶興趣向量與待推薦物品特徵向量的相似度來進行排序,將相似度較高的物品推薦給相應用戶。計算相似度有多種方法,如皮爾遜相關系數法、夾角餘弦法、Jaccard相關系數法等。

協同過濾演算法(Collaborative Filtering)是於內容無關的,即不需要額外獲取分析用戶或物品的內容屬性特徵。是基於用戶歷史行為數據進行推薦的演算法。其通過分析用戶與物品間的聯系來尋找新的用戶與物品間的相關性。

該演算法演算法通常有兩個過程,一個過程是預測,另一個過程是推薦。主流的協同過濾演算法包括三種:基於用戶的協同過濾(User-Based Collaborative Filtering,UBCF)、基於項目的協同過濾(Item-Based Collaborative Filtering, IBCF)和基於模型的協同過濾(Model-Based Collaborative Filtering, MBCF)

(1)基於用戶的協同過濾演算法
基於用戶的協同過濾推薦演算法,先通過用戶歷史行為數據找到和用戶u相似的用戶,將這些用戶感興趣的且u沒有點擊過的物品推薦給用戶。
演算法主要包括以下兩個步驟:
(1)找到與目標用戶喜好相似的鄰居用戶集合。
(2)在鄰居用戶集合中,為用戶推薦其感興趣的物品。

UBCF的基本思想是將與當前用戶有相同偏好的其他用戶所喜歡的項目推薦給當前用戶。一個最典型的例子就是電影推薦,當我們不知道哪一部電影是我們比較喜歡的時候,通常會詢問身邊的朋友是否有好的電影推薦,詢問的時候我們習慣於尋找和我們品味相同或相似的朋友。

(2)基於物品的協同過濾演算法
基於物品的協同過濾演算法(Item-based Collaborative Filtering)其主要思想是,為用戶推薦那些與他們之前喜歡或點擊過的物品相似的物品。不過基於物品的協同過濾演算法並不是利用物品的內容屬性特徵來計算物品之間的相似度的。該類演算法是利用用戶的歷史行為數據計算待推薦物品之間的相似度。在該類演算法中,如果喜歡物品A的用戶大都也喜歡物品B,那麼就可以認為物品A和物品B之間的相似度很高。
演算法分為以下兩個步驟:
(1)根據用戶歷史行為數據,計算物品間的相似度。
(2)利用用戶行為和物品間的相似度為用戶生成推薦列表。

IBCF演算法是亞馬遜在2003年發表的論文中首次提出,該演算法的基本思想是根據所有用戶的歷史偏好數據計算項目之間的相似性,然後把和用戶喜歡的項目相類似的並且用戶還未選擇的其他項目推薦給用戶,例如,假設用戶喜歡項目a,則用戶喜歡與項目a高度相似且還未被用戶選擇的項目b的可能性非常大,因此將項目b推薦給用戶。

UBCF和IBCF都屬於基於內存的協同過濾演算法,這類演算法由於充分發揮了用戶的評分數據,形成全局推薦,因此具有較高的推薦質量。但隨著用戶和項目的規模增長,這類演算法的計算時間大幅上升,使得系統的性能下降。針對該問題,研究人員提出將數據挖掘中的模型和CF演算法結合,提出了基於模型的協同過濾演算法(MBCF) 。

MBCF演算法利用用戶歷史評分數據建立模型,模型建立的演算法通常有奇異值分解、聚類演算法、貝葉斯網路、關聯規則挖掘等,且通常是離線完成。由於MBCF通常會對原始評分值做近似計算,通過犧牲一定的准確性來換取系統性能,因此MBCF的推薦質量略差於UBCF和IBCF。

由於基於內容的推薦演算法和協同過濾推薦演算法都有其各自的局限性,混合推薦演算法應運而生。混合推薦演算法根據不同的應用場景,有多
種不同的結合方式,如加權、分層和分區等。

目前使用的混合推薦演算法的思想主要可以分成以下幾類:
(1)多個推薦演算法獨立運行,獲取的多個推薦結果以一定的策略進行混合,例如為每一個推薦結果都賦予一個權值的加權型混合推薦演算法和將各個推薦結果取TOP-N的交叉混合推薦演算法。

(2)將前一個推薦方法產出的中間結果或者最終結果輸出給後一個推薦方法,層層遞進,推薦結果在此過程中會被逐步優選,最終得到一個精確度比較高的結果。

(3)使用多種推薦演算法,將每種推薦演算法計算過程中產生的相似度值通過權重相加,調整每個推薦演算法相似度值的權重,以該混合相似度值為基礎,選擇出鄰域集合,並結合鄰域集合中的評估信息,得出最優的推薦結果。

BP (Back Propagation)神經網路是目前應用最廣泛的神經網路模型之一,是一種按誤差逆傳播演算法訓練的多層前饋網路。

BP神經網路模型包括輸入層、隱藏層和輸出層,每一層由一個或多個神經元組成,其結構圖如圖2-3所示。BP神經網路擁有很強的非線性映射能力和自學習、自適應能力,網路本身結構的可變性,也使其十分靈活,一個三層的BP神經網路能夠實現對任意非線性函數進行逼近。

BP神經網路的訓練過程通常分為3個過程,依次分別為數據初始化過程、正向推演計算過程以及反向權重調整過程。數據初始化是BP神經網路能夠進行有效訓練的前提,該過程通常包括輸入數據進行歸一化處理和初始權重的設置;正向推演計算是數據沿著網路方向進行推演計算;反向權重調整則是將期望輸出和網路的實際輸出進行對比,從輸出層開始,向著輸入層的方向逐層計算各層中各神經元的校正差值,調整神經元的權重。正向推演計算和反向權重調整為對單個訓練樣本一次完整的網路訓練過程,經過不斷的訓練調整,網路的實際輸出越來越趨近於期望輸出,當網路輸出到達預期目標,整個訓練過程結束。

TF-IDF(Term Frequency-Inverse Document Frequency,詞頻一逆文檔)是文本處理中常用的加權技術,廣泛應用於信息檢索、搜索引擎等領域。
TF-IDF的主要思想是:如果一個關鍵詞在文檔中出現的頻率很高,而在其他文檔中出現次數較少,則該關鍵詞被認為具有較強的代表性,即該關鍵詞通過TF-IDF計算後有較高的權重。

TextRank演算法,是一種用於文本關鍵詞排序的演算法,頁排序演算法PageRank。
PageRank基本思想是將每個網頁看成一個節點,網頁中的鏈接指向看成一條有向邊,一個網頁節點的重要程度取決於鏈接指向該網頁節點的其他節點的數量和重要權值,該過程描述如下:讓每一個網頁對其所包含的鏈接指向的網頁進行迭代投票,每次迭代投票過程中票的權重取決於網頁當前擁有的票數,當投票結果收斂或者達到指定的迭代次數時,每個網頁所獲得票數即為網頁重要程度權值。

TextRank演算法相比於TF-IDF最大的優點是TextRank是一種無監督的學習,因此不會受限於文本的主題,並且無需大規模的訓練集,可以針對單一文本進行快速的關鍵詞的權重計算。

㈢ 社交網路核心,推薦演算法有哪些


對好友推薦演算法非常熟悉,有些積累。好友推薦演算法一般可以分為下面幾類:
1、基於關系的推薦
基於關系的推薦,最近寫了一個專欄文章,具體介紹了常用演算法,可以看下有沒有幫助,傳送門:http://zhuanlan.hu.com/gongwenjia/20533434
簡介:
a.社會網路中,三元閉包理論,以及常用推薦演算法
b.Facebook中的推薦演算法是如何做的
2、基於用戶資料的推薦
3、基於興趣的推薦
剩下兩個方面有時間再寫。
近來學習聚類,發現聚類中有一個非常有趣的方向—社交網路分析,分享一下我的大致了解。這篇只是一篇概況,並沒有太多的公式推導和代碼,基本是用人話解釋社交網路分析中的常用的幾種演算法。詳細到每個演算法的以後有空再把詳細的公式和代碼補上。
社區發現演算法,GN演算法,Louvain演算法,LPA與SLPA
Louvain演算法思想
1.不斷遍歷網路中的節點,嘗試把單個節點加入能使模塊度提升最大的社區,直到所有節點不再改變
2.將第一階段形成的一個個小的社區並為一個節點,重新構造網路。這時邊的權重為兩個節點內所有原始節點的邊權重之和。
3.重復以上兩步
LPA演算法思想:
1.初始化每個節點,並賦予唯一標簽
2.根據鄰居節點最常見的標簽更新每個節點的標簽
3.最終收斂後標簽一致的節點屬於同一社區
SLPA演算法思想:
SLPA是LPA的擴展。
1.給每個節點設置一個list存儲歷史標簽
2.每個speaker節點帶概率選擇自己標簽列表中標簽傳播給listener節點。(兩個節點互為鄰居節點)
3.節點將最熱門的標簽更新到標簽列表中
4.使用閥值去除低頻標簽,產出標簽一致的節點為社區。

㈣ 推薦演算法中有哪些常用排序演算法

外排序、內排序、插入類排序、直接插入排序、希爾排序、選擇類排序。

推薦演算法是計算機專業中的一種演算法,通過一些數學演算法,推測出用戶可能喜歡的東西,應用推薦演算法比較好的地方主要是網路。所謂推薦演算法就是利用用戶的一些行為,通過一些數學演算法,推測出用戶可能喜歡的東西。

在基於內容的推薦系統中,項目或對象是通過相關特徵的屬性來定義的,系統基於用戶評價對象的特徵、學慣用戶的興趣,考察用戶資料與待預測項目的匹配程度。用戶的資料模型取決於所用的學習方法,常用的有決策樹、神經網路和基於向量的表示方法等。基於內容的用戶資料需要有用戶的歷史數據,用戶資料模型可能隨著用戶的偏好改變而發生變化。

基於內容的推薦與基於人口統計學的推薦有類似的地方,只不過系統評估的中心轉到了物品本身,使用物品本身的相似度而不是用戶的相似度來進行推薦。



㈤ 推薦演算法有哪些

推薦演算法是計算機專業中的一種演算法,通過一些數學演算法,推測出用戶可能喜歡的東西。
基於協同過濾的推薦
基於用戶的協同過濾演算法: 基於一個這樣的假設「跟你喜好相似的人喜歡的東西你也很有可能喜歡。」所以基於用戶的協同過濾主要的任務就是找出用戶的最近鄰居,從而根據最近鄰 居的喜好做出未知項的評分預測。這種演算法主要分為3個步驟:
1、用戶評分。可以分為顯性評分和隱形評分兩種。顯性評分就是直接給項目評分(例如給網路里的用戶評分),隱形評分就是通過評價或是購買的行為給項目評分 (例如在有啊購買了什麼東西)。
2、尋找最近鄰居。這一步就是尋找與你距離最近的用戶,測算距離一般採用以下三種演算法:1.皮爾森相關系數。2.餘弦相似性。3調整餘弦相似性。調整餘弦 相似性似乎效果會好一些。
3、推薦。產生了最近鄰居集合後,就根據這個集合對未知項進行評分預測。把評分最高的N個項推薦給用戶。 這種演算法存在性能上的瓶頸,當用戶數越來越多的時候,尋找最近鄰居的復雜度也會大幅度的增長。
組合推薦
在組合方式上,有研究人員提出了七種組合思路:
1、加權(Weight):加權多種推薦技術結果。
2、變換(Switch):根據問題背景和實際情況或要求決定變換採用不同的推薦技術。
3、混合(Mixed):同時採用多種推薦技術給出多種推薦結果為用戶提供參考。
4、特徵組合(Feature combination):組合來自不同推薦數據源的特徵被另一種推薦演算法所採用。
5、層疊(Cascade):先用一種推薦技術產生一種粗糙的推薦結果,第二種推薦技術在此推薦結果的基礎上進一步作出更精確的推薦。
6、特徵擴充(Feature augmentation):一種技術產生附加的特徵信息嵌入到另一種推薦技術的特徵輸入中。
7、元級別(Meta-level):用一種推薦方法產生的模型作為另一種推薦方法的輸入。

㈥ 3分鍾輕鬆了解個性化推薦演算法

推薦這種體驗除了電商網站,還有新聞推薦、電台音樂推薦、搜索相關內容及廣告推薦,基於數據的個性化推薦也越來越普遍了。今天就針對場景來說說這些不同的個性化推薦演算法吧。
說個性化之前,先提一下非個性化。 非個性化的推薦也是很常見的,畢竟人嘛都有從眾心理,總想知道大家都在看什麼。非個性化推薦的方式主要就是以比較單一的維度加上半衰期去看全局排名,比如,30天內點擊排名,一周熱門排名。

但是只靠非個性化推薦有個弊端,就是馬太效應,點的人越多的,經過推薦點得人有更多。。。強者越強,弱者機會越少就越弱,可能導致兩級分化嚴重,一些比較優質素材就被埋沒了。

所以,為了解決一部分馬太效應的問題,也主要是順應數據化和自動化的模式,就需要增加個性化的推薦(可算說到正題了。。。)個性化的優點是不僅體驗好,而且也大大增加了效率,讓你更快找到你感興趣的東西。YouTube也曾做過實驗測試個性化和非個性化的效果,最終結果顯示個性化推薦的點擊率是同期熱門視頻的兩倍。

1.新聞、視頻、資訊和電台(基於內容推薦)

一般來說,如果是推薦資訊類的都會採用基於內容的推薦,甚至早期的郵件過濾也採用這種方式。

基於內容的推薦方法就是根據用戶過去的行為記錄來向用戶推薦相似額推薦品。簡單來說就是你常常瀏覽科技新聞,那就更多的給你推薦科技類的新聞。

復雜來說,根據行為設計權重,根據不同維度屬性區分推薦品都是麻煩的事,常用的判斷用戶可能會喜歡推薦品程度的餘弦向量公式長這樣,我就不解釋了(已經勾起了我關於高數不好的回憶)。。。

但是,這種演算法缺點是由於內容高度匹配,導致推薦結果的驚喜度較差,而且有冷啟動的問題,對新用戶不能提供可靠的推薦結果。並且,只有維度增加才能增加推薦的精度,但是維度一旦增加計算量也成指數型增長。如果是非實體的推薦品,定義風格也不是一件容易的事,同一個作者的文風和曲風也會發生改變。

2.電商零售類(協同過濾推薦和關聯規則推薦)

說電商推薦那不可能不講到亞馬遜,傳言亞馬遜有三成的銷售額都來自個性化的商品推薦系統。實際上,我自己也常常在這里找到喜歡的書,也願意主動的去看他到底給我推薦了什麼。

一般,電商主流推薦演算法是基於一個這樣的假設,「跟你喜好相似的人喜歡的東西你也很有可能喜歡。」即協同過濾過濾演算法。主要的任務就是找出和你品味最相近的用戶,從而根據最近他的喜好預測你也可能喜歡什麼。

這種方法可以推薦一些內容上差異較大但是又是用戶感興趣的物品,很好的支持用戶發現潛在的興趣偏好。也不需要領域知識,並且隨著時間推移性能提高。但是也存在無法向新用戶推薦的問題,系統剛剛開始時推薦質可能較量差。

電商行業也常常會使用到基於關聯規則的推薦。即以關聯規則為基礎,把已購商品作為規則頭,規則體為推薦對象。比如,你購買了羽毛球拍,那我相應的會向你推薦羽毛球周邊用品。關聯規則挖掘可以發現不同商品在銷售過程中的相關性,在零售業中已經得到了成功的應用。

3.廣告行業(基於知識推薦)

自從可以瀏覽器讀取cookies,甚至獲得年齡屬性等信息,廣告的個性化投放就也可以根據不同場景使用了。

當用戶的行為數據較少時,基於知識的推薦可以幫助我們解決這類問題。用戶必須指定需求,然後系統設法給出解決方式。假設,你的廣告需要指定某地區某年齡段的投放,系統就根據這條規則進行計算。基於知識的推薦在某種程度是可以看成是一種推理技術。這種方法不需要用戶行為數據就能推薦,所以不存在冷啟動問題。推薦結果主要依賴兩種形式,基於約束推薦和基於實例推薦。

4.組合推薦

由於各種推薦方法都有優缺點,所以在實際中,並不像上文講的那樣採用單一的方法進行建模和推薦(我真的只是為了解釋清楚演算法)。。。

在組合方式上,也有多種思路:加權、變換、混合、特徵組合、層疊、特徵擴充、元級別。 並且,為了解決冷啟動的問題,還會相應的增加補足策略,比如根據用戶模型的數據,結合挖掘的各種榜單進行補足,如全局熱門、分類熱門等。 還有一些開放性的問題,比如,需不需要幫助用戶有品味的提升,引導人去更好的生活。

最後,我總想,最好的推薦效果是像一個了解你的朋友一樣跟你推薦,因為他知道你喜歡什麼,最近對什麼感興趣,也總能發現一些有趣的新東西。這讓我想到有一些朋友總會興致勃勃的過來說,嘿,給你推薦個東西,你肯定喜歡,光是聽到這句話我好像就開心起來,也許這就是我喜歡這個功能的原因。

㈦ 信息流的那點事:3 推薦演算法是如何實現的

講完信息流流行的原因( 信息流的那點事:2 為什麼信息流如此流行 ),這一篇,我們來從產品的視角,來看看推薦演算法在技術上是如何實現的。

根據需要的技術和運營成本,可以將主流的推薦演算法分為三類:基於內容元數據的推薦、基於用戶畫像的推薦、基於協同過濾演算法的推薦。

基於元數據的推薦是比較基礎的推薦演算法,基本原理是給內容打標簽,具體元數據的選取根據的內容有所不同,比較通用的角度有內容的關鍵詞、類型、作者、來源等,打開一款頭條類app,選擇屏蔽一條內容,就可以看到一些該內容的元數據顫差舉。

有了內容的元數據,就可以根據內容間的關聯,可以進行相關內容的推薦,喜歡看奇葩說的用戶,可能也會喜歡看同是米未傳媒出品的飯局的誘惑。根據內容的元數據,也可以記錄並逐漸明確用戶的內容偏好,進行數據積累,便於結合用戶的喜好進行對應的精準推薦,這也就是下面要說的基於用戶畫像的推薦的內容。

用戶畫像,類比一下就是給用戶打標簽,主要由三部分組成:用戶的基礎數據(年齡、性別等)、應用使用數據(應用使用頻率、時長等)和內容偏好數據(喜好的內容分類、種類等)。

對於基礎數據,不同年齡的用戶的內容偏好有很大差異,年輕人可能更喜歡新歌熱歌,而中年人可能更愛聽懷舊一些的歌曲;根據應用使用數據,可以進行用戶分層,活躍用戶可以多推薦內容促進使用,快要流失用戶可以推送一些打開率較高的內容來挽回,運營活動也可以更有針對性;基於內容偏好數據,可以記錄並逐漸明確用戶的內容偏好,從而進行更精準的推薦,從愛看娛樂新聞,到愛看國內明星,再到愛看某個小鮮肉,隨著內容偏好數據的逐步積累,頭條類產品的推薦也就越精確。

協同過濾演算法,簡單來說,茄碧就是尋找相近的用戶或內容來進行推薦,主要有基於用戶的協同過濾推薦和基於項目的協同過濾推薦兩種。

(1)基於用戶的協同過濾推薦

基於用戶的協同過濾推薦演算法,就是通過演算法分析出與你內容偏好相近的用戶,將他喜歡的內容推薦給你,這種推薦給你志同道合的人愛看的內容的思路,更相近於生活中的朋友作為同道中人的推薦。舉例來說,如果你喜歡ABC,而其他用戶在和你一樣喜歡ABC的同時,還都喜歡D,那麼就會把D推薦給你。

(2).基於內容的協同過濾推薦

基於內容的協同過濾推薦演算法,就是通過演算法分析出內容和內容之間的關聯度,根據你喜歡的內容推薦最相關慶跡的內容,常見的看了這個內容的用戶85%也喜歡xxx,就是這種思路。舉例來說,如果你喜歡A,而喜歡A的用戶都喜歡B,那麼就會把B推薦給你。

相比於純粹的基於內容元數據的推薦,基於內容的協同過濾推薦更能發現一些內容間深層次的聯系,比如羅輯思維經常推薦各種內容,僅僅根據內容元數據來推薦,一集羅輯思維最相關的應該是另外一集,並不能推薦內容元數據相關性不太大的節目里推薦的內容;但由於可能很多用戶看完後都會搜索查看節目里推薦的內容,基於內容的協同過濾推薦就會發現兩者的相關性,進行推薦。

介紹推薦演算法的思路時,我們一直談到一個詞「內容偏好」,這也就是實現推薦演算法時一個核心的問題——需要通過怎樣的數據,才能判定用戶的內容偏好?主流的思路有一下三種:

讓用戶手動選擇,顯然是最簡單的思路,然而由於選擇的空間必然有限,只能讓用戶從幾個大類中間挑選,無法涵蓋全部內容的同時,粒度過大推薦也就很難精準。而且剛打開應用就讓用戶選擇,或者是讓用戶使用一段時間後在去補充選擇,這樣的操作都太重可能造成用戶流失。

既然手動選擇很難實現,我們就需要從用戶的使用數據中挖掘,主流的思路就是根據用戶一些主動操作來判斷,點擊閱讀了就說明喜歡,點了贊或者回復分享就是特別喜歡,如果跳過了內容就減少推薦,點擊了不感興趣,就不再推薦。

根據用戶使用的操作來判斷內容偏好,在不斷地使用中積累與細化數據,對內容偏好的判斷也就越來越准確,這就是頭條系應用的主要策略,這樣的策略對於下沉市場的不願做出主動選擇的沉默用戶,是一個非常適合的策略,但這樣只看點擊與操作,不關注內容實際質量的策略也會造成標題黨、內容低俗等問題,在後文會進一步介紹。

既然選擇不能完全代表用戶的內容偏好,如何使判斷更加精準呢?就要從一些更加隱性的數據入手了,比如對於文章,除了點擊,閱讀時間,閱讀完成度,是否查看文章的相關推薦內容,都是可以考慮的角度,相比純粹的點擊判斷,可以一定程度上解決標題黨的問題。再比如看視頻,如果快進次數過多,雖然看完了,可能也不是特別感興趣,而值得反復回看的內容,命中內容偏好的幾率就相對較高。

介紹完了推薦演算法的原理與數據來源,讓我們來試著還原一下一條內容的完整分發流程。

首先,是內容的初始化與冷啟動。可以通過演算法對內容進行分析提取或者人工處理,提取內容的來源、分類、關鍵詞等元數據,再根據用戶畫像計算內容興趣匹配度,分發給有對應內容偏好的用戶,,也可以通過內容原匹配度,向關系鏈分發,完成內容的冷啟動。

然後,可以根據用戶閱讀時間,閱讀完成度,互動數等數據,對該內容的質量進行分析,相應的增加或者減少推薦,實現內容動態分發調節。

最後,就是協同過濾演算法發揮作用的時間,對於優質內容,可以通過基於用戶的協同過濾推薦,推薦給與該內容受眾有類似愛好的用戶,也可以基於項目的協同過濾推薦,推薦給愛觀看同類內容的用戶,讓優質內容的傳播不在局限於關系鏈。

在真正的推薦演算法實現過程中,除了基礎的內容原匹配度,內容匹配度和內容質量,還有很多值得考慮的問題,比如新聞通知等時效性內容就要短時間加權,超時則不推薦;對於用戶的內容偏好也不能永遠維持,隨著時間用戶可能會喜歡新的內容,如果一定時間內用戶對以前喜歡的內容不感興趣,就要減少該種類推薦;還有為了不陷入越喜歡越推薦,最後全部是一種內容,讓用戶厭煩的境地,對於用戶的偏好也要設定一個上限;為了保持新鮮度,需要幫助用戶發現他可能喜歡的新內容.....

最後,通過數據可以了解我們如何閱讀這篇文章,但任何數據都無法准確描述我們閱讀後的感受與收獲;再高級的演算法也只是演算法,它雖然可能比我們更了解我們實際的的內容偏好,但無法了解到我們對於內容的追求。

這可能也就是頭條系產品雖然收獲了巨大成功,但也收到了標題黨、低俗化、迴音室效應等指責的原因,下一篇,讓我們來聊聊,信息流產品的面臨的問題與可能的解決方法。

㈧ 推薦演算法有哪些

這種形式一般可以按推薦引擎的演算法分,主要有基於協同過濾、基於內容推薦等演算法。 「買過此商品的人,百分之多少還買過其他啥啥商品」:協同過濾item-based filtering 「和你興趣相似的人,還買過其他啥啥商品」:協同過濾 user-based filtering 「相關商品推薦」:基於內容推薦content-based 「猜你喜歡」 一般混合使用推薦演算法。

閱讀全文

與主流的推薦演算法相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:963
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:145
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:737
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:485
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:382
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:350
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:892
app轉賬是什麼 瀏覽:163