擁有 10 億月活躍用戶的 Instagram 是怎么設(shè)計(jì)內(nèi)容推薦系統(tǒng)的?

來源: 雷鋒網(wǎng)
作者:楊鯉萍
時(shí)間:2020-11-12
16782
據(jù)官方數(shù)據(jù),超過一半的用戶每月都會(huì)通過Instagram Explore來搜索視頻、圖片、直播和各種文章。那么,如何從億級(jí)規(guī)模的實(shí)時(shí)推薦數(shù)據(jù)中選出最適合某個(gè)用戶的媒體內(nèi)容呢?

近日,擁有10億月活用戶的Instagram分享了其內(nèi)容推薦系統(tǒng)的關(guān)鍵內(nèi)容,包括:Explore基礎(chǔ)構(gòu)建模塊的開發(fā)、元語言IGQL工具、Explore系統(tǒng)框架等。

據(jù)官方數(shù)據(jù),超過一半的用戶每月都會(huì)通過Instagram Explore來搜索視頻、圖片、直播和各種文章。那么,如何從億級(jí)規(guī)模的實(shí)時(shí)推薦數(shù)據(jù)中選出最適合某個(gè)用戶的媒體內(nèi)容呢?針對(duì)這樣的挑戰(zhàn),Instagram利用機(jī)器學(xué)習(xí)做了這樣的思考與操作,雷鋒網(wǎng)AI開發(fā)者將其編譯如下。

640 (8).png

Explore基礎(chǔ)構(gòu)建模塊的開發(fā)

在構(gòu)建處理Instagram上每天上傳的大量照片和視頻的推薦引擎時(shí),我們需要滿足三個(gè)重要需求:

大規(guī)??焖賹?shí)驗(yàn)的能力;

獲得用戶興趣范圍內(nèi)的更多信息;

一種高計(jì)算效率的方法來確保推薦建議既高質(zhì)又新鮮(具備時(shí)效性);

因此,為了解決這三個(gè)需求,我們開發(fā)了一些基本工具,而這些技術(shù)正是實(shí)現(xiàn)最終推薦系統(tǒng)的關(guān)鍵。

工具一:運(yùn)用IGQL實(shí)現(xiàn)快速迭代

構(gòu)建最優(yōu)推薦算法和技術(shù)是ML社區(qū)正在進(jìn)行的一類研究。根據(jù)任務(wù)的不同,選擇合適系統(tǒng)的過程可能會(huì)有很大的不同。例如:一種算法可以有效地識(shí)別用戶的長期興趣,而另一種算法則可以更好地根據(jù)近期瀏覽內(nèi)容進(jìn)行推薦與建議。

640.webp (52).jpg

技術(shù)團(tuán)隊(duì)通過反復(fù)使用不同的算法,發(fā)現(xiàn)需要一種方法,既能讓我們有效地嘗試新的想法,又能輕松地將有潛力的想法應(yīng)用到大規(guī)模系統(tǒng)中,而不必?fù)?dān)心CPU和內(nèi)存使用之類計(jì)算資源的影響。

因此,我們需要一種定制的特定于領(lǐng)域的元語言,它能夠提供正確的抽象級(jí)別,并將一些候選算法進(jìn)行集中聚合。

IGQL正是為解決這個(gè)問題而創(chuàng)建的工具,它是一種專門用于在推薦系統(tǒng)中檢索候選對(duì)象的領(lǐng)域特定語言。經(jīng)C++優(yōu)化后,IGQL可在不犧牲可擴(kuò)展性的情況下最大程度地降低延遲,從而減少計(jì)算資源消耗。

IGQL是經(jīng)過靜態(tài)驗(yàn)證的高級(jí)語言,工程師能夠以Python的方式來編寫推薦算法,并在C++中快速而高效地運(yùn)行它。除此之外,它還具有可擴(kuò)展性和易用性。

user

.let(seed_id=user_id)

.liked(max_num_to_retrieve=30)

.account_nn(embedding_config=default)

.posted_media(max_media_per_account=10)

.filter(non_recommendable_model_threshold=0.2)

.rank(ranking_model=default)

.diversify_by(seed_id,method=round_robin)

在上面的代碼示例中,我們可以看到IGQL能夠有效提供高可讀性的語言,即使對(duì)于沒有廣泛使用該語言的工程師也能一目了然。

該工具有助于以一種原則性的方式組合多個(gè)推薦階段和算法。例如,我們可以在查詢中使用組合規(guī)則來輸出多個(gè)子查詢輸出的加權(quán)混合,從而優(yōu)化候選生成器的集合。通過調(diào)整權(quán)重,我們就可以找到最佳用戶體驗(yàn)的組合。

IGQL使執(zhí)行復(fù)雜推薦系統(tǒng)中常見的任務(wù)變得簡單,例如:構(gòu)建組合規(guī)則的嵌套樹。IGQL允許工程師更關(guān)注于推薦背后的機(jī)器學(xué)習(xí)和業(yè)務(wù)邏輯,而不是后臺(tái)工作;例如:為每個(gè)查詢獲取正確數(shù)量的候選項(xiàng)。

該方法還提供了高度的代碼可重用性;例如:使用排序器就像為IGQL查詢添加單行規(guī)則一樣簡單。在多個(gè)地方添加它也很簡單,例如:帳戶排序和這些帳戶發(fā)布的媒體排序。

工具二:個(gè)性化賬戶的個(gè)性化媒體排序嵌入

人們?cè)贗nstagram上公開分享數(shù)以十億計(jì)的高質(zhì)量媒體內(nèi)容,這些內(nèi)容都屬于Explore上的合格內(nèi)容。對(duì)于Explore中的眾多感興趣的社區(qū)來說,保持一個(gè)清晰且不斷發(fā)展的目錄樣式分類也是一個(gè)挑戰(zhàn)。因?yàn)樯鐓^(qū)的主題很多,從阿拉伯書法到模型訓(xùn)練再到slime的都有,所以基于內(nèi)容的模型很難理解如此多樣的興趣社區(qū)。

由于Instagram擁有大量基于特定主題的關(guān)注興趣的賬戶,比如:Devon rex cats或vintage tractors;因此我們創(chuàng)建了一個(gè)檢索通道。該通道關(guān)注的是賬戶級(jí)別的信息,而不是媒體級(jí)別的信息。

640.webp (53).jpg

通過構(gòu)建帳戶嵌入,我們能夠更有效地識(shí)別哪些帳戶在局部上彼此相似。我們使用類似word2vec的嵌入框架Ig2vec來推斷帳戶嵌入。通常,word2vec嵌入框架會(huì)根據(jù)單詞在訓(xùn)練語料庫中句子的上下文來學(xué)習(xí)單詞的表示。Ig2vec將用戶與之交互的帳戶id(例如:來自用戶喜歡的帳戶媒體)視為句子中的一個(gè)單詞序列。

通過應(yīng)用與word2vec中的類似技術(shù),我們可以預(yù)測(cè)一個(gè)人在應(yīng)用程序的給定會(huì)話中可能與之交互的帳戶。如果一個(gè)人在同一個(gè)會(huì)話中與一系列帳戶交互,那么與來自不同Instagram帳戶范圍的隨機(jī)帳戶序列相比,它更有可能是局部一致的。這有助于我們識(shí)別出與此相關(guān)的賬戶。

我們定義了兩個(gè)帳戶之間的距離度量——嵌入訓(xùn)練中使用的同一個(gè)帳戶——通常是余弦距離或點(diǎn)積。基于此,我們做了一個(gè)KNN查找,以找到嵌入中任何帳戶的局部相似帳戶。我們的嵌入覆蓋了數(shù)百萬個(gè)賬戶,并使用Facebook最先進(jìn)的近鄰檢索引擎FAISS作為支持檢索的基礎(chǔ)設(shè)施。

640.webp (54).jpg

Ig2vec預(yù)測(cè)賬戶內(nèi)容相似性的功能演示

對(duì)于每一個(gè)版本的嵌入,我們訓(xùn)練一個(gè)僅根據(jù)嵌入預(yù)測(cè)一組帳戶主題的分類器;通過將預(yù)測(cè)主題與保留集中帳戶的人工標(biāo)記主題進(jìn)行比較,我們就可以評(píng)估嵌入如何捕獲主題相似度。

檢索與某個(gè)特定用戶以前感興趣帳戶所類似的帳戶,有助于我們以一種簡單而有效的方式為每個(gè)人聚焦到一個(gè)更小的、個(gè)性化的排序清單。因此,我們能夠利用最先進(jìn)和計(jì)算密集型的機(jī)器學(xué)習(xí)模型為每個(gè)Instagram社區(qū)成員服務(wù)。

工具三:蒸餾模型預(yù)選相關(guān)候選項(xiàng)

在我們用Ig2vec去根據(jù)個(gè)人興趣確定最相關(guān)的賬戶之后,我們需要一種方式對(duì)這些賬戶進(jìn)行排序,使其對(duì)于每個(gè)人都充滿新鮮感與趣味性。這需要在每個(gè)人每次滾動(dòng)Explore頁面時(shí)預(yù)測(cè)出最相關(guān)的媒體。

我們通過一個(gè)深層神經(jīng)網(wǎng)絡(luò),對(duì)每一個(gè)滾動(dòng)操作評(píng)估500個(gè)媒體片段。雖然這需要大量的資源;但當(dāng)其對(duì)每個(gè)用戶評(píng)估越多,我們就越有可能從這些的內(nèi)容中找到最好的、最個(gè)性化的媒體推薦。為了能夠最大化每個(gè)排序請(qǐng)求的媒體數(shù)量,我們引入了一個(gè)排序蒸餾模型(可參考:https://arxiv.org/abs/1809.07428),幫助在使用更復(fù)雜的排序模型之前對(duì)候選項(xiàng)進(jìn)行重新排序。

640.webp (55).jpg

排序問題的排序蒸餾

該方法是通過訓(xùn)練一個(gè)超輕量級(jí)的模型,從中學(xué)習(xí)并使其盡量接近主要排序模型。我們從更復(fù)雜的排序模型中記錄其所具有的特征和輸出候選項(xiàng);然后用有限的特征集和簡單的神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)對(duì)蒸餾模型進(jìn)行訓(xùn)練以復(fù)制結(jié)果。其目標(biāo)函數(shù)則是優(yōu)化NDCG排序(排序質(zhì)量的一種度量)損失超過主要排序模型的輸出;然后使用蒸餾模型中排序靠前的推薦作為后期高性能排序模型的排序候選。

通過建立蒸餾模型的模擬行為,可以最大限度地減少對(duì)多個(gè)參數(shù)的調(diào)整以及在不同排序階段維護(hù)多個(gè)模型的需要。利用這一技術(shù),我們可以有效地評(píng)估一組更大的媒體集,以便在控制計(jì)算資源的同時(shí),找到在每個(gè)排序請(qǐng)求中最相關(guān)的媒體內(nèi)容。

如何構(gòu)建Explore?

在創(chuàng)建了便于實(shí)驗(yàn)、有效地識(shí)別人們的興趣并產(chǎn)生有效和相關(guān)的預(yù)測(cè)的關(guān)鍵構(gòu)建模塊之后,我們必須在生產(chǎn)中將這些系統(tǒng)結(jié)合起來。利用IGQL、賬戶嵌入和蒸餾模型技術(shù),我們將Explore推薦系統(tǒng)分為兩個(gè)主要階段:候選生成階段(也稱為尋源階段)和排序階段。

640.webp (56).jpg

階段一:候選生成階段

首先,我們利用人們以前在Instagram上互動(dòng)過的賬戶(例如:喜歡或收藏了某個(gè)賬戶中的媒體內(nèi)容)來識(shí)別人們可能感興趣的其他賬戶,我們稱之為種子賬戶(種子賬戶通常只是Instagram上類似或相同興趣賬戶的一小部分)。

然后,我們使用帳戶嵌入技術(shù)來識(shí)別類似于種子帳戶的其它帳戶;最后根據(jù)這些帳戶,我們就可以找到這些帳戶發(fā)布或參與的媒體內(nèi)容。

640 (9).png

該圖展示了Instagram Explore的一個(gè)典型推薦內(nèi)容源

人們?cè)贗nstagram上接觸賬戶和媒體的方式有很多種(例如:關(guān)注、喜歡、評(píng)論、保存和分享)。也有不同的媒體類型(例如:照片、視頻、故事和直播),這意味著我們可以使用類似的方案來構(gòu)建各種來源。利用IGQL會(huì)使得這個(gè)過程變得非常簡單——不同的候選源只需要表示為不同的IGQL子查詢即可。

通過不同類型的信息來源,我們能夠找到成千上萬的符合條件的候選項(xiàng)。為了確保推薦的內(nèi)容既安全又適合許多年齡段的全球探索社區(qū),我們使用了各種標(biāo)記來篩選出我們可以確定為不符合推薦條件的內(nèi)容,然后再為每個(gè)人建立符合條件的媒體推薦。除了阻止可能違反規(guī)則的內(nèi)容和錯(cuò)誤信息外,我們還利用機(jī)器學(xué)習(xí)系統(tǒng)來幫助檢測(cè)和過濾垃圾郵件等內(nèi)容。

然后,對(duì)于每一個(gè)排序請(qǐng)求,我們?yōu)閭€(gè)人識(shí)別出了數(shù)千個(gè)符合條件的媒體,并從符合條件的推薦中抽取500個(gè)候選項(xiàng),然后將候選項(xiàng)發(fā)送到下游的排序階段。

階段二:候選項(xiàng)排序

當(dāng)有500名候選項(xiàng)可供排序時(shí),我們使用了三階排序基礎(chǔ)模結(jié)構(gòu)來幫助平衡排序相關(guān)性和計(jì)算效率之間的權(quán)重。三個(gè)排序階段如下:

第一階段:蒸餾模型模仿其他兩個(gè)階段的組合,具有最小的特征;從500個(gè)候選項(xiàng)中選出150個(gè)質(zhì)量最高、最相關(guān)的候選項(xiàng);

第二階段:利用具有完整的稠密特征集的輕量級(jí)神經(jīng)網(wǎng)絡(luò)模型,再從第一階段的150個(gè)候選項(xiàng)中選擇出符合條件的50個(gè)最高質(zhì)量和最相關(guān)的候選項(xiàng);

第三階段:利用具有完整的稠密和稀疏特征的深度神經(jīng)網(wǎng)絡(luò)模型,從第二階段的50個(gè)候選項(xiàng)中選出25個(gè)質(zhì)量最高、最相關(guān)的候選項(xiàng)。

640.webp (57).jpg

用來平衡排序相關(guān)性和計(jì)算效率之間的權(quán)衡的三階排序基礎(chǔ)模結(jié)構(gòu)

如果第一階段的蒸餾模型按照排序順序模仿其他兩個(gè)階段,我們?nèi)绾未_定下兩個(gè)階段中最相關(guān)的內(nèi)容呢?

因此,我們選擇預(yù)測(cè)人們?cè)诿總€(gè)媒體上采取的個(gè)人行為,無論是像「喜歡」和「收藏」這樣的積極行為,還是像「少看這樣的帖子」(SFPLT)這樣的消極行為;均使用多任務(wù)多標(biāo)簽(MTML)的神經(jīng)網(wǎng)絡(luò)來預(yù)測(cè)這些事件,因?yàn)楣蚕矶鄬痈兄鳎∕LP)允許我們對(duì)來自不同行為的共同信號(hào)進(jìn)行捕捉。

640.webp (58).jpg

當(dāng)前推薦模型架構(gòu)示例

我們使用一個(gè)算術(shù)公式(即值模型)來結(jié)合對(duì)不同事件的預(yù)測(cè),以捕獲不同信號(hào)的突出性,從而決定內(nèi)容是否相關(guān)。具體而言,即使用一個(gè)加權(quán)的預(yù)測(cè)值之和,比如:[w_like*P(like)+w_save*P(save)-w_negative_action*P(negative action)]。如果我們認(rèn)為一個(gè)人在Explore中保存一個(gè)帖子的重要性高于他們喜歡的帖子,那么「保存」行為的權(quán)重應(yīng)該更高。

Explore也利用了用戶新興趣與過去興趣之間的平衡關(guān)系,在價(jià)值模型中加入一個(gè)簡單的啟發(fā)式規(guī)則,以提高內(nèi)容的多樣性。具體而言,模型通過添加「懲罰」因子來降低來自同一媒體或同一種子帳戶帖子的排序,因此在Explore推薦中,很難看到來自同一個(gè)人或同一種子帳戶的多個(gè)帖子;而且這種推薦方式會(huì)隨著你遇到更多來自同一作者的帖子而加強(qiáng)。

我們根據(jù)每個(gè)排序候選項(xiàng)的最終價(jià)值模型得分,以迭代的方式對(duì)最相關(guān)的內(nèi)容進(jìn)行排序。其中,離線回放工具連同貝葉斯優(yōu)化工具也會(huì)有助于我們?cè)谙到y(tǒng)優(yōu)化過程中高效地調(diào)整價(jià)值模型。

原文地址:

https://ai.facebook.com/blog/powered-by-ai-instagrams-explore-recommender-system

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于雷鋒網(wǎng),本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
相關(guān)文章
Instagram發(fā)布AI編輯工具,文本提示就能完全重塑視頻
Instagram發(fā)布AI編輯工具,文本提示就能完全重塑視頻
Instagram負(fù)責(zé)人Adam Mosseri 19日分享IG貼文視頻預(yù)告,Instagram計(jì)劃明年推出基于Meta Movie Gen AI模型的生成式AI編輯功能,用戶只需通過文本提示,便能大致更改視頻任何地方。
Instagram
2024-12-252024-12-25
Instagram全新視頻編輯工具 由AI驅(qū)動(dòng)明年推出
Instagram全新視頻編輯工具 由AI驅(qū)動(dòng)明年推出
Instagram預(yù)計(jì)將于明年推出全新視頻編輯功能,平臺(tái)負(fù)責(zé)人Adam Mosseri示范了這個(gè)工具,功能包括將人物的衣著改變和調(diào)整視頻背景,也可以添加動(dòng)畫角色等。這視頻編輯工具由人工智能驅(qū)動(dòng),用戶只要輸入文本即成。
Instagram
海外營銷
2024-12-242024-12-24
全面解析Instagram廣告投放:從基礎(chǔ)到實(shí)踐
全面解析Instagram廣告投放:從基礎(chǔ)到實(shí)踐
Instagram作為全球最受歡迎的社交媒體平臺(tái)之一,為企業(yè)和品牌提供了豐富的廣告投放機(jī)會(huì)。以下將為你詳細(xì)介紹如何在Instagram上進(jìn)行廣告投放。
Instagram
廣告投放
海外營銷
2024-12-192024-12-19
如何在Instagram上提升品牌曝光率?
如何在Instagram上提升品牌曝光率?
在如今的數(shù)字營銷時(shí)代,Instagram已成為品牌推廣的重要平臺(tái)。隨著用戶數(shù)量的不斷增長,企業(yè)在Instagram上的品牌曝光率顯得尤為重要。
Instagram
海外營銷
海外推廣
2024-12-182024-12-18
掃碼登錄
打開掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊(cè)
加載中
二維碼已失效 請(qǐng)重試
刷新
賬號(hào)登錄/注冊(cè)
個(gè)人VIP
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家