小紅書作為在國(guó)內(nèi)因種草而聲名大噪的社區(qū),伴隨用戶規(guī)模的擴(kuò)大,已逐漸發(fā)展成為多元化的線上社區(qū)。眾多用戶通過(guò)筆記來(lái)記錄和分享自己的生活方式,當(dāng)前每日可分發(fā)的內(nèi)容多達(dá)數(shù)十億,每日新增發(fā)布的內(nèi)容有數(shù)百萬(wàn)之多,涵蓋圖文與視頻等形式,這些我們稱之為筆記。目前小紅書每日可產(chǎn)生數(shù)百億次的曝光量,每日超過(guò)一半的用戶在小紅書內(nèi)產(chǎn)生互動(dòng)行為,每日搜索查詢量達(dá)到億級(jí)。就產(chǎn)品形態(tài)而言,小紅書現(xiàn)分為雙列信息流和視頻沉浸流兩種。
1. UGC 社區(qū)
小紅書 UGC 社區(qū)與其他社區(qū)類似,主要由三個(gè)重要組成部分構(gòu)成,分別是內(nèi)容、消費(fèi)用戶和創(chuàng)作者。這三者緊密相連,其中內(nèi)容是作者與用戶之間的橋梁,若具備足夠豐富多樣的內(nèi)容,我們就擁有廣闊的精細(xì)化分發(fā)空間。
中心化分發(fā)問(wèn)題的本質(zhì)在于曝光越多、活躍度越高的內(nèi)容,往往能獲得更多的分發(fā),致使普通創(chuàng)作者的內(nèi)容分發(fā)效果相對(duì)較差。此外,用戶可能也會(huì)頻繁看到熱門興趣,導(dǎo)致自身中長(zhǎng)尾興趣的內(nèi)容所見(jiàn)相對(duì)較少。若要構(gòu)建生態(tài)良好的社區(qū),去中心化分發(fā)問(wèn)題是需要解決的核心問(wèn)題。
結(jié)合上述兩點(diǎn),去中心化分發(fā)應(yīng)從內(nèi)容側(cè)與用戶側(cè)分別解決。對(duì)于內(nèi)容側(cè)而言,應(yīng)設(shè)法通過(guò)多種方式識(shí)別和引入筆記本身的更多信號(hào),而非僅依賴用戶對(duì)筆記的行為進(jìn)行分發(fā)。對(duì)于用戶側(cè)來(lái)說(shuō),應(yīng)設(shè)法對(duì)用戶的興趣進(jìn)行更優(yōu)的挖掘,并在挖掘后予以一定的保護(hù),鼓勵(lì)用戶中長(zhǎng)尾和小眾興趣的內(nèi)容分發(fā),使用戶的興趣得到更全面的滿足。
2. 核心問(wèn)題
去中心化分發(fā)本質(zhì)上就是要解決兩個(gè)問(wèn)題,一方面是讓我們的系統(tǒng)學(xué)的更快,一方面是讓我們的系統(tǒng)學(xué)的更好。
學(xué)得快:整個(gè)系統(tǒng)鏈路學(xué)得更快,才能更快地捕捉到中長(zhǎng)尾內(nèi)容的信號(hào)和用戶中長(zhǎng)尾的興趣。這對(duì)于內(nèi)容冷啟動(dòng)和用戶冷啟動(dòng)也非常重要,如果一個(gè)新筆記在冷啟動(dòng)階段就沒(méi)有得到很好的分發(fā),那它就很難走到下一個(gè)階段。同樣的,如果一個(gè)用戶剛剛表現(xiàn)出一個(gè)新的興趣或者小眾的興趣,沒(méi)有被立刻捕捉到,這個(gè)用戶可能就會(huì)因?yàn)闆](méi)有看到自己想看的東西而流失。中長(zhǎng)尾內(nèi)容同理,也會(huì)導(dǎo)致作者的發(fā)布欲望下降。
學(xué)得好:光是學(xué)的快其實(shí)還不夠,因?yàn)橹虚L(zhǎng)尾興趣和內(nèi)容的分發(fā)最終能不能滿足用戶和作者的要求,還要取決于系統(tǒng)學(xué)的好不好。想要做到這一點(diǎn),必須要保證系統(tǒng)鏈路的每個(gè)環(huán)節(jié)對(duì)這些興趣和內(nèi)容都能做有效的透出。如下圖所示,整個(gè)推薦系統(tǒng)包括召回、初排、精排、后排這幾個(gè)階段,推薦系統(tǒng)的目標(biāo)是希望擬合用戶真實(shí)的興趣分布。在這方面,去中心化其實(shí)是個(gè)特殊的問(wèn)題。過(guò)去推薦系統(tǒng)的核心動(dòng)作是通過(guò)排序模型優(yōu)化來(lái)將用戶的消費(fèi)指標(biāo)不斷做高,但用戶消費(fèi)指標(biāo)提高不一定意味著整個(gè)系統(tǒng)的去中心化分發(fā)變得更好了。下游的供給是來(lái)自上游的,如果上游給的內(nèi)容就不好的話那下游怎么排也是排不好的,所以對(duì)去中心化分發(fā)這個(gè)問(wèn)題,反而越是上游鏈路越重要。
舉例來(lái)說(shuō),曾經(jīng)我在搞圍棋 AI 的時(shí)候遇到過(guò)一個(gè)問(wèn)題,當(dāng)時(shí)我們學(xué)習(xí)了一個(gè) RL Policy,但這個(gè)模型經(jīng)常到了 200 步之后就下的非常差。我們對(duì)這個(gè)模型本身做了很多的調(diào)整,但最后都沒(méi)有什么用處。后來(lái)我們發(fā)現(xiàn)問(wèn)題出在 SL Policy 模型上,這個(gè)模型是通過(guò)人類棋手的監(jiān)督數(shù)據(jù)學(xué)習(xí)而來(lái)的,但是對(duì)于人類的九段棋手來(lái)說(shuō),有很多高手在中盤就知道自己輸了,所以經(jīng)常不會(huì)下到 200 步以后,導(dǎo)致這樣的數(shù)據(jù)很少,且噪音比較大,那基座就學(xué)不好這個(gè)信息,基于這個(gè)基座學(xué)習(xí)的下游模型效果也不會(huì)好,所以這是一個(gè)蠻重要的問(wèn)題。
3. 高時(shí)效推薦系統(tǒng) for“學(xué)的快”
小紅書在 2020 年 Q2 之前,推薦系統(tǒng)的主要模塊都保持在天級(jí)更新的狀態(tài)。為此我們經(jīng)過(guò)兩年的持續(xù)迭代,通過(guò)數(shù)據(jù)流、訓(xùn)練框架、索引框架的改造以及實(shí)時(shí)計(jì)算技術(shù),先后把精排、粗排、召回模塊都做到了分鐘級(jí)更新的狀態(tài)。后來(lái)我們還進(jìn)一步將初精排模型的訓(xùn)練也升級(jí)到了 gpu 異構(gòu)訓(xùn)練的狀態(tài),就是 cpu worker 和 gpu worker 也是分開(kāi)的,這個(gè)可以進(jìn)一步提高模型的更新速度。