新聞中心
構(gòu)建推薦系統(tǒng)最大的入門(mén)難點(diǎn)之一是理解推薦系統(tǒng)如何在實(shí)際中應(yīng)用。

創(chuàng)新互聯(lián)的團(tuán)隊(duì)成員不追求數(shù)量、追求質(zhì)量。我們經(jīng)驗(yàn)豐富并且專(zhuān)業(yè),我們之間合作時(shí)就好像一個(gè)人,協(xié)同一致毫無(wú)保留。創(chuàng)新互聯(lián)珍視想法,同時(shí)也看重過(guò)程轉(zhuǎn)化帶來(lái)的沖擊力和影響力,在我們眼中,任何細(xì)節(jié)都不容小覷。一直致力于為企業(yè)提供從國(guó)際域名空間、網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、商城網(wǎng)站制作、網(wǎng)站推廣、網(wǎng)站優(yōu)化到為企業(yè)提供個(gè)性化軟件開(kāi)發(fā)等基于互聯(lián)網(wǎng)的全面整合營(yíng)銷(xiāo)服務(wù)。
目前,關(guān)于推薦系統(tǒng)的網(wǎng)絡(luò)資料大部分關(guān)注的是推薦模型本身,而且僅限于介紹一些簡(jiǎn)單的協(xié)同過(guò)濾(Collaborative Filtering)模型。對(duì)新手來(lái)說(shuō),只了解簡(jiǎn)單的推薦模型并不足以讓他們構(gòu)建出一個(gè)真正能在實(shí)際生產(chǎn)中使用的推薦系統(tǒng)。
無(wú)論是簡(jiǎn)單的協(xié)同過(guò)濾模型,還是DLRM等深度學(xué)習(xí)模型,推薦模型的作用都是對(duì)用戶(hù)可能感興趣的內(nèi)容進(jìn)行排序(Ranking),更準(zhǔn)確地說(shuō),是評(píng)分(Scoring)。但在現(xiàn)實(shí)場(chǎng)景中,光有評(píng)分并不足以實(shí)現(xiàn)良好的推薦效果。
本文將結(jié)合Meta、Netflix和 Pinterest 等公司的實(shí)例介紹一種構(gòu)建推薦系統(tǒng)的主流模式。 NVIDIA Merlin 團(tuán)隊(duì)認(rèn)為,這種模式是構(gòu)建端到端推薦系統(tǒng)的核心,并希望通過(guò)介紹這種模式,幫助你理解推薦系統(tǒng)(而不僅僅是推薦模型)如何應(yīng)用在實(shí)際生產(chǎn)中。
1.兩階段推薦系統(tǒng):檢索和評(píng)分
待推薦條目(items)越多,往往就會(huì)帶來(lái)問(wèn)題。待推薦目錄中的內(nèi)容可達(dá)幾百萬(wàn)項(xiàng)甚至數(shù)十億項(xiàng),這時(shí),針對(duì)每位用戶(hù)的喜好對(duì)每項(xiàng)內(nèi)容進(jìn)行評(píng)分并不現(xiàn)實(shí)。評(píng)分需要消耗巨大的算力。在實(shí)際操作中,系統(tǒng)通常只會(huì)從所有條目中快速選一個(gè)與用戶(hù)喜好相關(guān)的子集,給其中的1000或10,000項(xiàng)條目評(píng)分。
因此,推薦系統(tǒng)可分為兩個(gè)階段。在我們對(duì)條目進(jìn)行評(píng)分之前,我們需要選擇一個(gè)合理的相關(guān)合集,其中包含用戶(hù)最終將接觸到的條目,這個(gè)階段叫候選檢索階段(也叫候選生成),即選出用戶(hù)有可能感興趣的條目集。候選檢索模型有多種,包括矩陣分解模型(Matrix Factorization)、雙塔模型(Two-Tower)、線性模型、近似最近鄰模型(Approximate Nearest Neighbor)和圖遍歷模型(Graph Traversal)。它們的計(jì)算效率通常都比評(píng)分模型高得多。
2016年,Google發(fā)表了一篇關(guān)于YouTube推薦系統(tǒng)的論文( https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/45530.pdf ),這是有關(guān)候選檢索架構(gòu)最早的公開(kāi)文獻(xiàn)之一,這個(gè)方法如今已被行業(yè)廣泛應(yīng)用。Eugene Yan對(duì)此也寫(xiě)過(guò)一篇優(yōu)秀的文章( https://eugeneyan.com/writing/system-design-for-discovery/ ),他將推薦系統(tǒng)分為兩個(gè)階段(即候選檢索和評(píng)分),我們?cè)诖嘶A(chǔ)上獲得啟發(fā),并將其細(xì)化為四個(gè)階段(下文將詳述)。
值得一提的是,在同一推薦系統(tǒng)中使用多種候選來(lái)源也是一種常見(jiàn)做法,這樣可以確保對(duì)用戶(hù)展現(xiàn)更多樣的候選條目,在此先按下不提。
2.過(guò)濾階段的必要性
雖然候選檢索和評(píng)分這兩個(gè)階段看似足以應(yīng)付大規(guī)模推薦任務(wù),但推薦系統(tǒng)還需支持另外一些限制條件。因?yàn)榇蠖鄶?shù)情況下,總有一些你不希望展現(xiàn)給用戶(hù)的內(nèi)容,例如缺貨的商品、不適合用戶(hù)年齡層的內(nèi)容、用戶(hù)已看過(guò)的內(nèi)容和用戶(hù)所在國(guó)家未許可上線的內(nèi)容等。
與其讓評(píng)分或檢索模型來(lái)推理上述業(yè)務(wù)邏輯,以避開(kāi)不能推薦的內(nèi)容,不如直接為推薦系統(tǒng)增加“過(guò)濾”(Filtering)階段。
過(guò)濾階段通常緊隨檢索階段之后,也可以與檢索階段結(jié)合(過(guò)濾階段最復(fù)雜的問(wèn)題是確保檢索之后有足量的候選條目),有時(shí)甚至可以在評(píng)分階段結(jié)束后再過(guò)濾。通過(guò)過(guò)濾可以實(shí)現(xiàn)模型本身難以執(zhí)行的業(yè)務(wù)邏輯規(guī)則。有時(shí),實(shí)行過(guò)濾只需簡(jiǎn)單的排除查詢(xún),有時(shí)則更復(fù)雜,例如用Bloom Filter篩掉用戶(hù)接觸過(guò)的內(nèi)容。
3.排序階段:Ranking or Ordering?
目前我們已介紹了三個(gè)階段:候選檢索、過(guò)濾和評(píng)分。經(jīng)過(guò)這三個(gè)階段,系統(tǒng)已選出相關(guān)推薦內(nèi)容并一一評(píng)分。每項(xiàng)條目的分?jǐn)?shù)代表評(píng)分系統(tǒng)估計(jì)的用戶(hù)感興趣程度。
推薦內(nèi)容通常以列表形式向用戶(hù)呈現(xiàn),這就帶來(lái)一個(gè)有趣的難題:最理想的推薦列表不能局限于系統(tǒng)的評(píng)分,還要保證一定的多樣性,為用戶(hù)展示一些他們平常不會(huì)接觸的內(nèi)容,幫助他們探索未知領(lǐng)域,避免陷入信息繭房。
部分文獻(xiàn)會(huì)把推薦系統(tǒng)的評(píng)分階段稱(chēng)為“排名(Ranking)”,但給用戶(hù)的推薦列表中的最終排名(或位置)很少會(huì)直接對(duì)齊模型輸出的結(jié)果(譯注:比如推薦列表中排在末尾的內(nèi)容通常不是被模型評(píng)分最低的內(nèi)容)。而通過(guò)提供一個(gè)顯式的“排序(Ordering)”階段,我們能將推薦模型的評(píng)分和其他業(yè)務(wù)需求的限制條件進(jìn)行對(duì)齊。
4.推薦系統(tǒng)的四個(gè)階段和實(shí)例
候選檢索、過(guò)濾、評(píng)分和排序這四個(gè)階段構(gòu)成目前絕大部分推薦系統(tǒng)的設(shè)計(jì)模式。下圖展示了四個(gè)階段的如何訓(xùn)練、部署并支持推理時(shí)間查詢(xún),應(yīng)用于實(shí)際生產(chǎn)的推薦系統(tǒng)比基本的推薦模型復(fù)雜得多。我們認(rèn)為下圖較準(zhǔn)確地呈現(xiàn)了當(dāng)今大多數(shù)實(shí)際推薦系統(tǒng)的構(gòu)建方法。
接下來(lái)讓我們看看推薦系統(tǒng)的實(shí)際應(yīng)用。首先,通過(guò)研究常見(jiàn)推薦任務(wù),我們發(fā)現(xiàn)以下用例都具有相似的模式,符合上述四個(gè)階段。
然后,我們可以分析現(xiàn)實(shí)中的推薦系統(tǒng),看看其中的各個(gè)步驟分別屬于哪一個(gè)階段。
Meta公司的Instagram團(tuán)隊(duì)曾發(fā)布一篇文章 Powered by AI: Instagram’s Explore recommender system (IGQL query language) ,介紹其開(kāi)發(fā)的查詢(xún)語(yǔ)言(Query Language),它可以讓推薦系統(tǒng)的開(kāi)發(fā)更加簡(jiǎn)便。Instagram提供了如下例子,從中可見(jiàn),這種查詢(xún)語(yǔ)言可以完全映射我們總結(jié)的四個(gè)階段。
Pinterest也有一系列關(guān)于推薦系統(tǒng)的論文: Related Pins at Pinterest:The Evolution of a Real-World Recommender System 、 Pixie: A System for Recommending 3+ Billion Items to 200+ Million Users in Real-Time 和 Applying deep learning to Related Pins 。下圖摘自上述第一篇論文,展示了Pinterest系統(tǒng)架構(gòu)的演變。同樣, Pinterest的推薦系統(tǒng) 總體也符合四個(gè)階段,只是候選檢索和過(guò)濾被整合為同一階段。
最后,Instacart在2016年公布了如下推薦架構(gòu)( http://slideshare.net/SharathRao6/recommendation-systems-instacart ),也符合我們所說(shuō)的四個(gè)階段。首先是檢索候選商品,過(guò)濾用戶(hù)已購(gòu)買(mǎi)的商品,然后對(duì)待推薦商品評(píng)分,最后對(duì)待推薦商品進(jìn)行重新排序,以增加展示條目的多樣性。
總之,實(shí)際的推薦系統(tǒng)比單獨(dú)的推薦模型復(fù)雜得多,而業(yè)內(nèi)新手在網(wǎng)絡(luò)上查到的推薦系統(tǒng)資料大部分都只介紹協(xié)同過(guò)濾模型,因此,當(dāng)他們真正著手構(gòu)建推薦系統(tǒng)時(shí)難免會(huì)一頭霧水。
網(wǎng)站欄目:你以為的推薦系統(tǒng),其實(shí)只是推薦模型
瀏覽路徑:http://fisionsoft.com.cn/article/dpjooch.html


咨詢(xún)
建站咨詢(xún)
