chp1:推薦系統框架

原文鏈接:https://www.cnblogs.com/redbear/p/8628687.html

一、背景介紹
當下,個性化推薦成了互聯網產品的標配。但是,人們對推薦該如何來做,也就是推薦技術本身,還不甚瞭解。爲此,好學的你肯定在收藏着朋友圈裏流傳的相關文章,轉發着微博上的相關討論話題,甚至還會不斷奔走在各種大小行業會議之間,聽着大廠職工們講那些乾貨。我知道,這樣碎片化的吸收,增加了知識的同時,也增加了焦慮。因爲技術的不平等廣泛存在於業界內,推薦系統也不例外。推薦系統從搜索引擎借鑑了不少技術和思想,比如內容推薦有不少技術就來自搜索引擎, 由 Amazon 發揚光大的。推薦系統也是現在熱門的人工智能分支之一,但凡人工智能類的落地,都需要具備這幾個基本元素才行:數據、算法、場景、計算力。推薦系統也不例外,而剛好,現在的時代,這些元素的獲得成本相比十年前已經小了很多。未來隨着各種硬件設備越來越智能,萬物互聯得越來越緊密,人們的個性化需求、場景的多樣性、數據的複雜性都對推薦系統提出了更高的要求。

二、主要內容

推薦系統目標主要包括以下幾個指標,這幾個指標也是刻畫推薦系統好壞的主要參考:
1、用戶滿意性:首當其衝的,推薦系統主要就是爲了滿足用戶的需求,因此準確率是評判一個推薦系統好壞的最關鍵指標。
2、多樣性:雖然推薦系統最主要還是滿足用戶的興趣,但是也要兼顧內容的多樣性,對於權重不同的興趣都要做到兼顧。
3、新穎性:用戶看到的內容是那些他們之前沒有聽說過的物品。簡單的做法就是在推薦列表去掉用戶之前有過行爲的那些內容。
4、驚喜度:和新穎性類似,但新穎性只是用戶沒看到過的但是確實是和他行爲是相關的,而驚喜度是用戶既沒有看過和他之前的行爲也不相關,但用戶看到後的確是喜歡的。
5、實時性:推薦系統要根據用戶的上下文來實時更新推薦內容,用戶的興趣也是隨着時間而改變的,需要實時更新。
6、推薦透明度:對於用戶看到的最終結果,要讓用戶知道推薦此內容的原因。比如,“買過這本書的人同時也買過”、”你購買過的xx和此商品類似”。
7、覆蓋率:挖掘長尾內容也是推薦系統很重要的目標。因此,推薦的內容覆蓋到的內容越多越好。

基於這些目標,推薦系統包括四種推薦方式:
1、熱門推薦:就是熱門排行榜的概念。這種推薦方式不僅僅在IT系統,在平常的生活中也是處處存在的。這應該是效果最好的一種推薦方式,畢竟熱門推薦的物品都是位於曝光量比較高的位置的。
2、人工推薦:人工干預的推薦內容。相比於依賴熱門和算法來進行推薦。一些熱點時事如世界盃、nba總決賽等就需要人工加入推薦列表。另一方面,熱點新聞帶來的推薦效果也是很高的。
3、相關推薦:相關推薦有點類似於關聯規則的個性化推薦,就是在你閱讀一個內容的時候,會提示你閱讀與此相關的內容。
4、個性化推薦:基於用戶的歷史行爲做出的內容推薦。也是本文主要講述的內容。
其中,前三者是和機器學習沒有任何關係的,但卻是推薦效果最好的三種方式。一般說來,這部分內容應該佔到總的推薦內容的80%左右,另外20%則是對長尾內容的個性化推薦。

三、推薦框架設計

在這裏插入圖片描述
下面單個介紹上面的每個部分:
1、數據平臺
作用:主要是存儲推薦系統物品相關數據、用戶行爲日誌收集,爲模型、推薦提供源數據服務。
模型特徵數據、用戶實時日誌數據、推薦商品/物件的基礎數據
2、算法模型
在這裏插入圖片描述
核心模塊
業務網關,推薦服務的入口,負責推薦請求的合法性檢查,組裝請求響應的結果。
推薦引擎,推薦系統核心,包括online邏輯,召回、過濾、特徵計算、排序、 多樣化等處理過程。

數據路徑
1、請求的刷新從gateway,經過流量分配模塊,傳到業務gateway,業務gateway支持http,tcp(使用thirtf協議或者protobuf 協議)等多種類型接口;
2、用戶行爲數據,從gateway到Flume agent,然後到kafka,爲後面online,realtime userprofile部分的提供實時數據,也爲offline部分的數據存儲系統提供數據。

offline部分:在這裏插入圖片描述
從框架的角度看,推薦系統基本可以分爲數據層、召回層、排序層。
1、數據層包括數據生成和數據存儲,主要是利用各種數據處理工具對原始日誌進行清洗,處理成格式化的數據,落地到不同類型的存儲系統中,供下游的算法和模型使用。
sessionlog:對原始數據進行清洗合併,sessionlog一般就是清洗合併後的數據,後續的算法和統計都是根據sessionlog進行再加工。
userprofile:對用戶屬性和行爲等信息進行採集和統計,爲後續算法提供特徵支持。
itemDoc:對視頻、商品等屬性、曝光、點擊等字段進行統計, 爲後續算法提供特徵支持。
2、召回層主要是從用戶的歷史行爲、實時行爲等角度利用各種觸發策略產生推薦的候選集,對不同的策略和算法產生的候選集進行融合並按照產品規則進行過濾,一般融合和過濾後的候選集還是比較多的,一次線上請求過來之後線上系統無法對那麼多的候選集進行排序,所以在召回層一般還會有粗排序,對融合的候選集進行一次粗排序,過濾掉粗排分數較低的候選集。
3、排序層主要是利用機器學習的模型對召回層篩選出來的候選集進行精排序。

推薦過程:用戶行爲數據—>推薦引擎(第一層過濾)—>初始推薦結果—>過濾—>排名—>推薦解釋—>推薦結果。

推薦引擎的架構可以試多樣化的(實時推薦的+離線推薦的),然後融合推薦結果(人工規則+模型結果),融合方式多樣的,有線性加權的或者切換式的等。
在這裏插入圖片描述
上圖中,A模塊負責用戶各類型特徵的收集,B模塊的相關表是根據圖3中的推薦引擎來生成的,B模塊的輸出推薦結果用來C模塊的輸入,中間經過過濾模塊(用戶已經產生行爲的物品,非候選物品,業務方提供的物品黑名單等),排名模塊也根據預設定的推薦目標來制定,最後推薦解釋的生成(這是可能是最容易忽視,但很關鍵的一環,微信的好友推薦遊戲,這一解釋已經勝過後臺的算法作用了)
3、模型服務
1、用戶主動行爲數據記錄了用戶在平臺的的各種行爲,這些行爲一方面用於候選集觸發算法(在下一部分介紹)中的離線計算(主要是瀏覽、下單),另外一方面,這些行爲代表的意圖的強弱不同,因此在訓練重排序模型時可以針對不同的行爲設定不同的迴歸目標值,以更細地刻畫用戶的行爲強弱程度。此外,用戶對deal的這些行爲還可以作爲重排序模型的交叉特徵,用於模型的離線訓練和在線預測。
2、負反饋數據反映了當前的結果可能在某些方面不能滿足用戶的需求,因此在後續的候選集觸發過程中需要考慮對特定的因素進行過濾或者降權,降低負面因素再次出現的機率,提高用戶體驗;同時在重排序的模型訓練中,負反饋數據可以作爲不可多得的負例參與模型訓練,這些負例要比那些展示後未點擊、未下單的樣本顯著的多。
3、用戶畫像是刻畫用戶屬性的基礎數據,其中有些是直接獲取的原始數據,有些是經過挖掘的二次加工數據,比如用戶的聚類和向量化,這些屬性一方面可以用於候選集觸發過程中對deal進行加權或降權,另外一方面可以作爲重排序模型中的用戶維度特徵。
在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述
在這裏插入圖片描述
4、推薦架構
下面介紹幾個推薦做好的公司的推薦架構
在這裏插入圖片描述
總結:netflix的推薦系統,描述了推薦引擎搭建的整體架構,採用了三種計算方式的結合。整體流程:用戶通過UI產生事件跟行爲,然後分發給離線(我理解的是按天存儲)、近線存儲(不提供歷史,存儲當天用戶實時行爲。不知道理解是否有誤),離線的計算利用離線的數據建好模型供實時調用,近線的計算利用用戶的實時行爲計算得出規則供實時調用,最後在線的計算通過前兩種方式來得到最終的推薦結果,關鍵問題,就是如何以無縫方式結合、管理在線和離線計算過程,當然找到這些要求之間恰當的平衡並不容易,需要深思熟慮的需求分析,細心的技術選擇,戰略性的推薦算法分解,最終才能爲客戶達成最佳的結果。
在這裏插入圖片描述
在這裏插入圖片描述
總結:淘寶的推薦系統,描述了推薦引擎搭建的整體架構,包括離線的分佈式計算和存儲、監控、數據統計和分析、實驗平臺等。給我們搭建推薦引擎提供了很好的建議。整體流程大致這樣。通過後臺的分佈式計算,將算法產生的算法結果數據存儲進入一種介質中,首推hbase。然後,通過一種叫做雲梯的機制將算法結果推入中間層介質中,供推薦系統在線部分調用。在線部分提供引擎和實驗分流,用戶的行爲將存儲進入hadoop中,數據統計分析平臺由hive來搭建,主要用來分析和統計hadoop中的用戶行爲log。這張圖不僅講了,推薦系統的架構流程,也講了跟這個平臺有關係的人,是怎麼介入的,我覺得提供的信息可很好的參考。

優酷推薦架構
在這裏插入圖片描述
在這裏插入圖片描述
總結:Griddle 框架由兩級架構組成. 每一個實例可以被分成多個層, 每一層由多個模塊組成. 在實際應用中我們通常對發揮不同功能的層有不一樣的命名. 分別是 “召回”, “規則”, “分桶”, “精排”, “組合”. 每一個類型的層並不是必須的, 視需求而定.

五、參考文獻:
1)https://www.cnblogs.com/redbear/p/8594939.html
2)https://blog.csdn.net/xiangxizhishi/article/details/79441423
3)https://blog.csdn.net/qq_23269761/article/details/81567292
4)https://blog.csdn.net/qq_32023541/article/details/79798812
5)http://www.dataguru.cn/article-13949-1.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章