當前位置:首頁 » 操作系統 » 推薦好友演算法

推薦好友演算法

發布時間: 2022-12-13 23:17:12

⑴ 快手極速版推薦朋友里怎麼刪也刪不盡,刪了又來這是什麼原因

大概率推薦。
一般會把你認識的或者你可能認識的,你朋友的朋友,你附近的都會推薦給你快手總是重復的推薦同一個人的原因是快手的推薦演算法導致的。
當你經常性的關注或者多次點贊,或者多次評論一個人的視頻時,快手會以為你喜歡這個人的視頻,便會多次推送給你。
所以你他會根據這個大數據推算出那個人,可能是你的朋友,讓你去打招呼,如果你不想打招呼的話,就不要理他就好了。

⑵ 推薦演算法簡介

在這個時代,無論是信息消費者還是信息生產者都遇到了很大的挑戰:作為信息消費者,如何從大量信息中找到自己感興趣的信息是一件非常困難的事情;作為信息生產者, 如何讓自己生產的信息脫穎而出,受到廣大用戶的關注,也是一件非常困難的事情。推薦系統就是解決這一矛盾的重要工具。推薦系統的任務就是聯系用戶和信息,一方面幫助用戶發現對自己有價值的信息,另一方面讓信息能夠展現在對它感興趣的用戶面前,從而實現信息消費者和信息 生產者的雙贏。和搜索引擎不同的是,推薦系統不需要用戶提供明確的需求,而是通過分析用戶的歷史行為給用 戶的興趣建模,從而主動給用戶推薦能夠滿足他們興趣和需求的信息 個性化推薦的成功需要兩個條件。第一是存在 信息過載 ,因為如果用戶可以很容易地從所有物品中找到喜歡的物品,就不需要個性化推薦。第二用 戶大部分時候沒有特別明確的需求 ,因為用戶沒有明確的需求,可以直接通過搜索引擎找到感興趣的物品。

一個完整的推薦系統一般存在3個參與方:用戶、物品提供者和提供推薦系統的網站。以圖書推薦為例, 首先,推薦系統需要滿足用戶的需求,給用戶推薦那些令他們感興趣的圖書。其次,推薦系統要讓各出版社的書都能夠被推薦給對其感興趣的用戶,而不是只推薦幾個大型出版社的書。最後, 好的推薦系統設計,能夠讓推薦系統本身收集到高質量的用戶反饋,不斷完善推薦的質量,增加 用戶和網站的交互,提高網站的收入。因此在評測一個推薦演算法時,需要同時考慮三方的利益, 一個好的推薦系統是能夠令三方共贏的系統。

推薦系統中,主要有3種評測推薦效果的實驗方法,即離線實驗(offline experiment)、用戶調查(user study)和在線實驗(online experiment)。

2.1 離線實驗

離線實驗的方法一般由如下幾個步驟構成: (1) 通過日誌系統獲得用戶行為數據,並按照一定格式生成一個標準的數據集; (2) 將數據集按照一定的規則分成訓練集和測試集; (3) 在訓練集上訓練用戶興趣模型,在測試集上進行預測; (4) 通過事先定義的離線指標評測演算法在測試集上的預測結果。

從上面的步驟可以看到,推薦系統的離線實驗都是在數據集上完成的,也就是說它不需要一個實際的系統來供它實驗,而只要有一個從實際系統日誌中提取的數據集即可。這種實驗方法的 好處是不需要真實用戶參與,可以直接快速地計算出來,從而方便、快速地測試大量不同的演算法。它的主要缺點是無法獲得很多商業上關注的指標,如點擊率、轉化率等,而找到和商業指標非常相關的離線指標也是很困難的事情

2.2 用戶調查

3.3 在線實驗

在完成離線實驗和必要的用戶調查後,可以將推薦系統上線做 AB測試 ,將它和舊的演算法進行比較。 AB測試 是一種很常用的在線評測演算法的實驗方法。它通過一定的規則將用戶隨機分成幾組,並對不同組用戶採取不同的演算法,然後通過統計不同組用戶的各種不同的評測指標比較不同演算法的好壞。 AB測試的優點是可以公平獲得不同演算法實際在線時的性能指標,包括商業上關注的指標。 AB測試的缺點主要是周期比較長,必須進行長期的實驗才能得到可靠的結果。因此一般不會用 AB測試測試所有的演算法,而只是用它測試那些在離線實驗和用戶調查中表現很好的演算法。其次, 一個大型網站的AB測試系統的設計也是一項復雜的工程。

一般來說,一個新的推薦演算法最終上線,需要完成上面所說的3個實驗。 1)首先,需要通過離線實驗證明它在很多離線指標上優於現有的演算法。 2)然後,需要通過用戶調查確定它的用戶滿意度不低於現有的演算法。 3)最後,通過在線的AB測試確定它在我們關心的指標上。

本節將介紹各種推薦系統的評測指標。這些評測指標可用於評價推薦系統各方面的性能。這 些指標有些可以定量計算,有些只能定性描述,有些可以通過離線實驗計算,有些需要通過用戶 調查獲得,還有些只能在線評測。

(1) 用戶滿意度

用戶作為推薦系統的重要參與者,其滿意度是評測推薦系統的最重要指標。但是,用戶滿意度沒有辦法離線計算,只能通過用戶調查或者在線實驗獲得。

在在線系統中,用戶滿意度主要通過一些 對用戶行為的統計得到 。比如在電子商務網站中,用戶如果購買了推薦的商品,就表示他們在一定程度上滿意。因此,我們可以 利用購買率度量用 戶的滿意度 。此外,有些網站會通過設計一些用戶 反饋界面收集用戶滿意度 。比如在視頻網站中,都有對推薦結果滿意或者不滿意的 反饋按鈕 ,通過統計兩種按鈕的單擊情況就可以度量系統的用戶滿意度。更一般的情況下,我們可以用 點擊率、用戶停留時間和轉化率等指標度量 用戶的滿意度。

(2) 預測准確度

預測准確度度量一個推薦系統或者推薦演算法預測用戶行為的能力。這個指標是最重要的推薦系統離線評測指標

在計算該指標時需要有一個離線的數據集,該數據集包含用戶的歷史行為記錄。然後,將該數據集通過時間分成訓練集和測試集。最後,通過在訓練集上建立用戶的行為和興趣模型預測用戶在測試集上的行為,並計算預測行為和測試集上實際行為的重合度作為預測准確度。 預測准確度指標有分為以下幾種:

評分預測:

預測用戶對物品評分的行為成為評分預測,在評分預測中,預測准確度一般通過均方根誤差RMSE和平均絕對誤差MAE計算,對於測試集中的一個用戶u和物品i,令[圖片上傳失敗...(image-62a797-1560412790460)] 是用戶u對物品i的實際評分,而[圖片上傳失敗...(image-28cfbc-1560412790460)] 是推薦演算法給出的預測評分,那麼RMSE定義為:

其中T為樣本個數

MAE採用絕對值計算預測誤差,它的定義為:

TopN推薦

網站在提供推薦服務時,一般是給用戶一個個性化的推薦列表,這種推薦叫做TopN推薦。TopN推薦的預測准確率一般通過准確率(precision)/召回率(recall)度量。 令R(u)是根據用戶在訓練集上的行為給用戶作出的推薦列表,而T(u)是用戶在測試集上的行為列表。那麼,推薦結果的召回率定義為:

推薦結果准確率定義:

(3) 覆蓋率

覆蓋率(coverage)描述一個推薦系統對物品長尾的發掘能力。覆蓋率有不同的定義方法,最簡單的定義為推薦系統能夠推薦出來的物品占總物品集合的比例。假設系統的用戶集合U,推薦系統給每個用戶推薦一個長度為N的物品集合R(u)。那麼推薦系統的覆蓋率可以通過下面的公式計算:

I為總物品數

此外,從上面的定義也可以看到,熱門排行榜的推薦覆蓋率是很低的,它只會 推薦那些熱門的物品,這些物品在總物品中占的比例很小。一個好的推薦系統不僅需要有比較高的用戶滿意度,也要有較高的覆蓋率。

但是上面的定義過於粗略。覆蓋率為100%的系統可以有無數的物品流行度分布。為了更細致地描述推薦系統發掘長尾的能力,需要統計推薦列表中不同物品出現次數的分布。如果所有的 物品都出現在推薦列表中,且出現的次數差不多,那麼推薦系統發掘長尾的能力就很好。因此, 可以通過研究物品在推薦列表中出現次數的分布描述推薦系統挖掘長尾的能力。如果這個分布比 較平,那麼說明推薦系統的覆蓋率較高,而如果這個分布較陡峭,說明推薦系統的覆蓋率較低。 在資訊理論和經濟學中有兩個著名的指標可以用來定義覆蓋率。第一個是信息熵:

其中:n代表推薦列表中物品類別個數,p(i)代表每個類別的所佔的比率

第二個指標是基尼系數:

(4) 多樣性

為了滿足用戶廣泛的興趣,推薦列表需要能夠覆蓋用戶不同的興趣領域,即推薦結果需要具有多樣性。多樣性推薦列表的好處用一句俗話表示就是(不在一棵樹上弔死)。盡管用戶的興趣在較長的時間跨度中是一樣的。但具體到用戶訪問推薦系統的某一時刻,其興趣往往是單一的,那麼如果推薦列表只能覆蓋用戶的一個興趣點,而這個興趣點不是用戶這個時刻的興趣點,推薦結果就不會讓用戶滿意。反之如果推薦列表表較多樣,覆蓋用戶絕大多數的興趣點,那麼久會增加用戶找到感興趣物品的概率。因此給用戶的推薦列表也需要滿足用戶廣泛的興趣,即具有多樣性。

多樣性描述了推薦列表中物品兩兩之間的不相似性,因此,多樣性和相似性是對應的。假設s(i, j) ∈Î[0,1] 定義了物品i和j之間的相似度,那麼用戶u的推薦列表R(u)的多樣性定義如下:

而推薦系統的整體多樣性可以定義為所有用戶推薦列表多樣性的平均值:

(5) 新穎性

新穎的推薦是指給用戶推薦那些他們以前沒有聽說過的物品。在一個網站中 實現新穎性 的最簡單辦法是,把那些用戶之前在網站中對其有過行為的物品從推薦列表中過濾掉。比如在一個視 頻網站中,新穎的推薦不應該給用戶推薦那些他們已經看過、打過分或者瀏覽過的視頻。 評測新穎度的最簡單方法是利用推薦結果的平均流行度,因為越不熱門的物品越 可能讓用戶覺得新穎。因此,如果推薦結果中物品的平均熱門程度較低,那麼推薦結果就可能有比較高的新穎性。

(6) 驚喜度

驚喜度(serendipity)是最近這幾年推薦系統領域最熱門的話題。如果推薦結果和用戶的歷史興趣不相似,但卻讓用戶覺得滿意,那麼就可以說推薦結果的驚喜度很高,而推薦的新穎性僅僅取決於用戶是否聽說過這個推薦結果。提高推薦驚喜度需要提高推薦結果的用戶滿意度,同時降低推薦結果和用戶歷史興趣的相似度。

(7) 信任度

度量推薦系統的信任度只能通過問卷調查的方式,詢問用戶是否信任推薦系統的推薦結果。 提高推薦系統的信任度主要有兩種方法。首先需要增加推薦系統的透明度(transparency), 而增加推薦系統透明度的主要辦法是提供推薦解釋。只有讓用戶了解推薦系統的運行機制,讓用 戶認同推薦系統的運行機制,才會提高用戶對推薦系統的信任度。其次是考慮用戶的社交網路 信息,利用用戶的好友信息給用戶做推薦,並且用好友進行推薦解釋。這是因為用戶對他們的 好友一般都比較信任,因此如果推薦的商品是好友購買過的,那麼他們對推薦結果就會相對比較信任

(8) 實時性

在很多網站中,因為物品(新聞、微博等)具有很強的時效性,所以需要在物品還具有時效 性時就將它們推薦給用戶。 推薦系統的實時性包括兩個方面。首先,推薦系統需要實時地更新推薦列表來滿足用戶新的 行為變化。實時性的第二個方面是推薦系統需要能夠將新加入系統的物品推薦給用戶。這主要考驗了推 薦系統處理物品冷啟動的能力。

(9) 健壯性

健壯性(即robust,魯棒 性)指標衡量了一個推薦系統抗擊作弊的能力。演算法健壯性的評測主要利用模擬攻擊。首先,給定一個數據集和一個演算法,可以用這個演算法 給這個數據集中的用戶生成推薦列表。然後,用常用的攻擊方法向數據集中注入雜訊數據,然後 利用演算法在注入雜訊後的數據集上再次給用戶生成推薦列表。最後,通過比較攻擊前後推薦列表 的相似度評測演算法的健壯性。如果攻擊後的推薦列表相對於攻擊前沒有發生大的變化,就說明算 法比較健壯

(10) 商業目標

很多時候,網站評測推薦系統更加註重網站的商業目標是否達成,而商業目標和網站的盈利模式是息息相關的

(11) 總結

上一節介紹了很多評測指標,但是在評測系統中還需要考慮評測維度,比如一個推薦演算法, 雖然整體性能不好,但可能在某種情況下性能比較好,而增加評測維度的目的就是知道一個演算法 在什麼情況下性能最好。這樣可以為融合不同推薦演算法取得最好的整體性能帶來參考。

一般來說,評測維度分為如下3種。 1) 用戶維度 :主要包括用戶的人口統計學信息、活躍度以及是不是新用戶等。 2) 物品維度 :包括物品的屬性信息、流行度、平均分以及是不是新加入的物品等。 3) 時間維度 :包括季節,是工作日還是周末,是白天還是晚上等。 如果能夠在推薦系統評測報告中包含不同維度下的系統評測指標,就能幫我們全面地了解推 薦系統性能,找到一個看上去比較弱的演算法的優勢,發現一個看上去比較強的演算法的缺點。

⑶ 抖音推薦好友根據什麼

是根據通訊錄的好友來推薦的。抖音做實名制的時候都需要綁定手機號,同時抖音還會訪問你的手機sim卡信息、通訊錄信息,推薦你可能認識的人,這是大數據時代下很容易做的一件事情。

而且現在抖音的演算法還在不斷的細化、調整和升級,以後對於人群畫像的區分就更加細致了,大家就很輕松能夠找到自己喜歡看的人。

⑷ 猜你喜歡是如何猜的——常見推薦演算法介紹

自從頭條系的產品今日頭條和抖音火了之後,個性化推薦就進入了大眾的視野,如果我們說搜索時人找信息的話,那麼推薦就是信息找人。搜索是通過用戶主動輸入索引信息告訴機器自己想要的東西,那麼推薦的這個索引是什麼才能讓信息找到人呢?

第一類索引是「你的歷史」,即基於你以前在平台上對某物品產生的行為(點贊,轉發,評論或者收藏),尋找與你產生過相似行為的用戶所喜歡的其他物品或者與你喜歡的物品相似的其他物品來為你推薦。這一基於用戶行為相似的演算法有:協同過濾演算法、基於內容的推薦演算法和基於標簽的推薦演算法。

基於用戶的協同過濾演算法是尋找與A用戶有相似行為的所有B用戶所喜歡的而A用戶還不知道的物品推薦給A用戶 。該演算法包括兩個步驟:

-根據用戶所喜歡的物品計算用戶間相似度,找到與目標用戶相似的用戶集合;

-找到該用戶集合所喜歡的而目標用戶所不知道的物品。

那麼,找出一批物品以後哪個先推薦哪個後推薦?用戶間相似程度大的先推薦,用戶對物品的感興趣程度大要先推薦。即假設A用戶與B用戶的相似程度為0.9,與C用戶的相似程度為0.7,用戶B喜歡物品a和物品b的程度分別為1和2,用戶C喜歡物品a和物品b的程度分別為0.1和0.5,那麼先推薦物品b。多個用戶多個物品,只要擬定了用戶間的相似度和用戶對物品的感興趣程度,即可對物品進行打分並且進行綜合排序。

基於物品的協同過濾演算法是根據用戶行為而不是物品本身的相似度來判斷物品的相似度 ,即如果物品A和物品B被很多的用戶同時喜歡,那麼我們就認為物品A和物品B是相似的。該演算法也是包括兩個步驟:

-根據用戶行為計算物品間的相似度;

-根據物品的相似度和用戶的歷史行為給用戶生成推薦列表。

與UserCF相似的是,同樣會遇到推薦的先後順序問題,那麼ItemCF所遵循的原則是:物品間相似程度大的先推薦,用戶對物品的感興趣程度大要先推薦。假設用戶對物品a和物品b感興趣的程度分別為1和0.5,物品a與物品c和物品d的相似度分別為0.5和0.1,物品b與物品c和物品d的相似度分別為0.3和0.4,那麼先推薦物品d。用戶喜歡多個物品,並且多個物品與其他物品都有相似的情況下,只要擬定了用物品間的相似度和用戶對物品的感興趣程度,即可對物品進行打分並且進行綜合排序。

協同過濾演算法的核心都是通過用戶行為來計算相似度,User-CF是通過用戶行為來計算用戶間的相似度,Item-CF是通過用戶行為來計算物品間的相似度。

推薦演算法很重要的一個原理是為用戶推薦與用戶喜歡的物品相似的用戶又不知道的物品。物品的協同過濾演算法是通過用戶行為來衡量物品間的相似(喜歡物品A的用戶中,同時喜歡物品B的用戶比例越高,物品A與物品B的相似程度越高),而基於內容的推薦演算法衡量則是通過物品本身的內容相似度來衡量物品間的相似。

假如,你看了東野圭吾的《解憂雜貨店》,那麼下次系統會給你推薦東野圭吾的《白夜行》。假設你看了小李子的《泰坦尼克號》,系統再給你推薦小李子的《荒野獵人》。

該演算法與前兩種不同的是,將用戶和物品之間使用「標簽」進行聯系,讓用戶對喜歡的物品做記號(標簽),將同樣具有這些記號(標簽)的其他物品認為很大程度是相似的並推薦給用戶。其基本步驟如下:

統計用戶最常用的標簽

對於每個標簽,統計最常被打過這個標簽次數最多的物品

將具有這些標簽最熱門的物品推薦給該用戶

目前,國內APP中,豆瓣就是使用基於標簽的推薦演算法做個性化的推薦。

第二類索引是「你的朋友」,基於你的社交好友來進行推薦,即基於社交網路的推薦。例如,微信看一看中的功能「朋友在看」就是最簡單的基於社交網路的推薦,只要用戶點擊公眾號文章的「在看」,就會出現在其好友的「朋友在看」的列表中。

復雜一點的演算法會考慮用戶之間的熟悉程度和興趣的相似度來進行推薦。目前,在信息流推薦領域,基於社交網路進行推薦的最流行的演算法是Facebook的EdgeRank演算法,即為用戶推薦其好友最近產生過重要行為(評論點贊轉發收藏)的信息。

第三類索引是「你所處的環境」,基於你所處的時間、地點等上下文信息進行推薦。例如,我們看到很APP中的「最近最熱門」,就是基於時間上下文的非個性化推薦;以及,美團和餓了么這些基於位置提供服務的APP中,「附近商家」這一功能就是基於用戶位置進行推薦。高德地圖在為用戶推薦駕駛路線時,會考慮不同路線的擁堵程度、紅綠燈數量等計算路線用和路程距離再進行綜合排序推薦。

很多時候,基於時間上下文的推薦會協同過濾這類個性化推薦演算法結合使用。例如,在使用協同過濾推薦策略的時候,會將時間作為其中一個因素考慮進入推薦策略中,最近的信息先推薦。

以上就是常見的推薦演算法。作為產品人,我們不需要知道如何實現,但是我們必須知道這些推薦演算法的原理,知道在什麼場景下如何去做推薦才能提升推薦的效率,這才是產品經理的價值所在。

參考資料:《推薦演算法實戰》項亮

熱點內容
深入編譯器 發布:2025-05-15 07:41:35 瀏覽:877
電信手機號服務密碼怎麼查 發布:2025-05-15 07:40:10 瀏覽:613
python全局變數文件 發布:2025-05-15 07:35:06 瀏覽:954
位元組和存儲位元組 發布:2025-05-15 07:32:10 瀏覽:521
linux應用開發工程師 發布:2025-05-15 07:32:07 瀏覽:261
sqldcl 發布:2025-05-15 07:29:18 瀏覽:199
canvas的圖像上傳 發布:2025-05-15 07:29:17 瀏覽:102
離線緩存為什麼點不動 發布:2025-05-15 07:27:17 瀏覽:829
釘鼎伺服器出口ip 發布:2025-05-15 07:13:08 瀏覽:279
移動硬碟和光碟哪個存儲時間長 發布:2025-05-15 07:04:25 瀏覽:489