「知乎希望利用 AI 技術(shù)打造一個智能社區(qū)。」
每次知乎的技術(shù)負(fù)責(zé)人公開談及人工智能技術(shù),「智能社區(qū)」都是一個繞不開的詞匯。然而「智能社區(qū)」也是一個相對陌生的概念:如今研究者與工程師們明確了深度神經(jīng)網(wǎng)絡(luò)在語音、圖像和自然語言數(shù)據(jù)上的作用,并將它們進(jìn)行逐一的細(xì)化和延展成了種種「智能應(yīng)用」。然而「智能社區(qū)」是什么?
「每個人來到知乎,都能快速看到他感興趣的人和內(nèi)容,他的疑問可以被極速送達(dá)到有意愿和能力回答的人,他也會快速遇到讓他拍案的好問題,分享只有他最懂的信息,收獲最令他滿足和愉悅的認(rèn)同,與他希望遇到的人產(chǎn)生有價值的交流、討論,甚至爭執(zhí)。這一切會是這個時代的思考和總結(jié)。我們會以從未有過的效率,創(chuàng)造思維的連接。讓每個個體的思考和經(jīng)驗,被分享,被篩選,被總結(jié),被轉(zhuǎn)化成為這個時代的知識。知識的生產(chǎn)方式和迭代效率會因為這樣的連接發(fā)生質(zhì)的改變。」這是知乎合伙人、高級副總裁李大海對智能社區(qū)的定義。
然而為什么選擇 AI 技術(shù)實現(xiàn)這一目標(biāo)?AI 技術(shù)為社區(qū)帶來了哪些變化?五月,機(jī)器之心來到知乎,希望找到這些問題的答案。
不是「哪里有 AI」而是「處處皆 AI」
知乎誕生的初心是認(rèn)為「在信息爆炸的互聯(lián)網(wǎng)海洋中,有價值的信息仍然是稀缺的」。而其中最有價值的部分,是那些深藏在某些特定用戶的腦海中的知識、經(jīng)驗與見解。平臺需要對這些內(nèi)容進(jìn)行大量的挖掘與沉淀工作,才能讓它們被真正需要的用戶利用起來。完成這樣的工作需要龐大的用戶基數(shù)——這一點知乎已經(jīng)通過成為最大的中文知識分享平臺做到了。而規(guī)模也帶來了問題多樣性的指數(shù)級增長,讓原有的產(chǎn)品機(jī)制開始「失效」,對排序、推薦算法都提出了更高的需求,這就是 AI 技術(shù)引入的必要性。
這個過程與深度學(xué)習(xí)本身的興起邏輯是一致的:當(dāng)數(shù)據(jù)的數(shù)量超出一定范圍,人類就很難從大量數(shù)據(jù)中找到規(guī)律,需要在自己設(shè)置設(shè)計模型結(jié)構(gòu)的基礎(chǔ)上,引入可訓(xùn)練的模型,讓機(jī)器幫助研究者完成參數(shù)的選擇。而當(dāng)數(shù)據(jù)的維度也超過一定范圍時,進(jìn)行特征提取變成了需要消耗大量人力物力進(jìn)行試驗的工作,因此研究者進(jìn)一步引入可訓(xùn)練的特征提取器。
「AI 技術(shù)的引入讓每一個人持有的信息都能高效地被發(fā)掘、得到交流、并且通過大家評價的過程進(jìn)行過濾。換言之,整個知識生產(chǎn)的方式、節(jié)奏和效率都得到了質(zhì)的變化,知識的生產(chǎn)與消費、社區(qū)的建立與管理,都變成了一個不一樣的過程。」李大??偨Y(jié)道。
在這樣的一個智能社區(qū)里,對 AI 技術(shù)的應(yīng)用情況是十分驚人的。當(dāng)我們試圖從業(yè)務(wù)邏輯對知乎對 AI 的應(yīng)用進(jìn)行梳理,會發(fā)現(xiàn)從內(nèi)容生產(chǎn)、消費到用戶連接與社區(qū)管理,每一個過程都涉及不同的機(jī)器學(xué)習(xí)問題,放眼望去,與其說「哪里有 AI」,不如說「處處皆 AI」。
內(nèi)容生產(chǎn)部分,可以分為問題提出與問題路由。問題提出是一個從用戶的查詢中識別出意圖,發(fā)現(xiàn)知乎現(xiàn)在還無法滿足的意圖,引導(dǎo)用戶進(jìn)行提問,并根據(jù)用戶的意圖生成合理的問題的過程,得到提問和描述后,后臺的卷積神經(jīng)網(wǎng)絡(luò)模型會從知乎超過二十五萬個話題中選擇出最匹配的話題,進(jìn)行話題的推薦和綁定。問題路由則是如何分發(fā)問題以讓合適的用戶看到問題、激發(fā)他們的創(chuàng)作欲望。這就是一個典型的機(jī)器學(xué)習(xí)排序(learning to rank)問題。先在眾多用戶中通過召回定位合適的范圍,然后通過 pointwise/pairwise/listwise 等排序方法,找出最有可能接受邀請以及最有可能產(chǎn)生優(yōu)質(zhì)回答的用戶,進(jìn)行推薦,或讓用戶選擇委托系統(tǒng)進(jìn)行邀請。
內(nèi)容的分發(fā)和消費部分,按照情景可以分為首頁信息流、搜索和相關(guān)推薦等。在信息流部分,李大海特別強(qiáng)調(diào),「知乎的信息流設(shè)計與其他平臺有所不同的地方在于,知乎希望用戶來探索更大的世界而不是進(jìn)入信息繭房,因此我們特別注重在信息流里拓展用戶的興趣邊界?!钩酥猓阉魇堑湫偷奈谋九c問題之間相關(guān)性回歸問題,而相關(guān)推薦則既可以基于用戶進(jìn)行,也可以基于問答文本進(jìn)行,可以用協(xié)同過濾(Collaborative Filtering)的方法進(jìn)行,也可以用深度表示的方法進(jìn)行。
連接和治理則是社區(qū)特有的需求,知乎在連接方向的追求是「讓人發(fā)現(xiàn)更多有趣的靈魂」,本質(zhì)上是理解用戶價值觀、興趣,然后進(jìn)行推薦的過程。而治理則是甄別不同類別的低質(zhì)行為(如答非所問、軟文)和不友善行為(陰陽怪氣、貼標(biāo)簽),以針對不同情況進(jìn)行不同處理,降低對討論氛圍的影響。
而除了業(yè)務(wù)邏輯主線的各個部分外,AI 技術(shù)也幫助進(jìn)行了眾多的細(xì)節(jié)優(yōu)化,比如如何對不同呈現(xiàn)形式的信息流進(jìn)行針對性渲染:如何挑選封面圖、挑選后如何進(jìn)行
裁剪操作,以在首頁的卡片中呈現(xiàn)更多信息量,幫助用戶判斷是否要進(jìn)行消費。
「知乎從 16 年起進(jìn)行開始引入機(jī)器學(xué)習(xí)相關(guān)算法,最開始從經(jīng)典機(jī)器學(xué)習(xí)方法開始(例如梯度提升決策樹(GBDT)),再逐步替換成深度神經(jīng)網(wǎng)絡(luò)(DNN)的新方法?!估畲蠛R蔡岬搅嗽跇I(yè)界的深度學(xué)習(xí)方法迭代之迅速,「一、兩年前,帶注意力機(jī)制的雙向 LSTM 模型還是一個『新方法』,如今已經(jīng)是一個『經(jīng)典方法』了?!?/p>
內(nèi)容消費里的 AI 技術(shù):從首頁信息流說起
當(dāng)你打開知乎,你看到的是什么?
知乎的「推薦」信息流是首頁里十分重要的一欄。用戶在這里可以看到符合自己興趣的內(nèi)容,當(dāng)下的一些熱點討論,也有知乎幫助你拓展興趣邊界的探索。然而知乎上僅問題與回答就超過 1 億條,其中還有類目繁多的 live、電子書等付費內(nèi)容。這道擁有超過一億個選項的多選題,沒有任何一個排序算法能獨立給出令人滿意的答案。因此龐大的內(nèi)容體系決定了,只有分層級的排序系統(tǒng)才能勝任這個任務(wù)。
知乎的首頁負(fù)責(zé)人張瑞用一張架構(gòu)圖為機(jī)器之心詳細(xì)地描述了這個名為「水晶球」的推薦系統(tǒng)的組成。
首頁上出現(xiàn)的內(nèi)容經(jīng)歷過兩次排序。第一次是從數(shù)十個推薦隊列里被「召回」,第二次是在合并后經(jīng)過深層神經(jīng)網(wǎng)絡(luò)(DNN)的「排序」。
「召回」的第一個步驟是,召回模塊根據(jù)用戶的歷史行為表現(xiàn)(用戶畫像),確定數(shù)十個推薦隊列,或者說數(shù)十個「召回源」的召回比例和召回數(shù)量。
推薦隊列是一個個含有特定標(biāo)簽的內(nèi)容合集。有些隊列里內(nèi)容性質(zhì)相似,比如熱點新聞隊列、視頻隊列。還有的隊列與用戶行為緊密相關(guān),比如關(guān)注的人隊列、搜索關(guān)鍵詞隊列。
「召回」過程的第二個步驟是各召回源根據(jù)用戶的需求分別將自己的隊列中的內(nèi)容做排序后,按召回數(shù)量返回內(nèi)容。
整個「召回」過程都是以用戶為中心的、高度個性化的:
比如一個初來乍到的新用戶還沒有「關(guān)注的人」,召回模塊就不會從關(guān)注的人隊列拉取內(nèi)容,而是轉(zhuǎn)向興趣探測隊列,幫助算法更好地了解用戶。
再比如今天的視頻類內(nèi)容非常豐富,但是根據(jù)用戶畫像,這位用戶極少消費視頻內(nèi)容,那么召回模塊仍然只會從視頻隊列請求三條內(nèi)容,視頻隊列也只推薦三條最符合用戶需求的內(nèi)容。
而不同的推薦隊列長度從幾千到數(shù)十萬各有不同、召回過程中采用的排序方法也各有不同。有的召回源會對用戶和內(nèi)容都做嵌入式表示 (embedding),進(jìn)而通過內(nèi)積的方式確定召回的對象;還有的召回源,比如關(guān)鍵詞隊列,會采用倒排索引的方式,用自然語言處理的方式把內(nèi)容打上標(biāo)簽,然后針對用戶的關(guān)鍵詞需求,組建倒排索引,進(jìn)行召回。
「召回」過程會選出數(shù)百條候選內(nèi)容進(jìn)入「排序」過程,最后,DNN 可以在一百毫秒內(nèi)對這數(shù)百條完成打分和排序過程,決定推送給用戶的內(nèi)容。
「我們把系統(tǒng)命名為『水晶球』,是希望能夠通過這個系統(tǒng)得以一窺用戶想要看到什么內(nèi)容,然后推薦給他?!?/p>
排序算法進(jìn)化史:從 edgerank 到深度神經(jīng)網(wǎng)絡(luò)
張瑞也為我們講述了首頁信息流的「算法進(jìn)化史」。
「首頁一開始是基于 edgerank 算法進(jìn)行簡單的算法排序,后來逐漸引入了以 GBDT 為主的機(jī)器學(xué)習(xí)排序技術(shù),現(xiàn)在這個階段會把深度神經(jīng)網(wǎng)絡(luò)技術(shù)(DNN)應(yīng)用在召回和排序的各個階段,現(xiàn)在的大部分推薦結(jié)果都是通過神經(jīng)網(wǎng)絡(luò)推薦的?!?/p>
現(xiàn)在的 DNN 模型本質(zhì)上是一個用于預(yù)測的回歸模型,預(yù)測的對象是用戶是否對一條內(nèi)容感興趣?;貧w的目標(biāo)是一個與興趣相關(guān)的用戶行為的綜合打分:用戶是否有點擊、是否進(jìn)行閱讀、閱讀了多長時間、是否收藏、是否有正面或負(fù)面的評論等等。
預(yù)測所使用的特征主要可以分為三類:用戶相關(guān)、內(nèi)容相關(guān)以及上下文相關(guān)。用戶相關(guān)的特征包括用戶畫像、用戶一段時間內(nèi)的閱讀歷史等等,內(nèi)容相關(guān)的特征包括內(nèi)容的標(biāo)簽、贊數(shù)、歷史點擊率等,上下文特征則是可能影響用戶行為的時間空間特征。例如用戶在早上可能會偏好閱讀與成長相關(guān)的內(nèi)容,晚上則更多閱讀泛興趣類內(nèi)容。
預(yù)測模型主體是一個多路徑網(wǎng)絡(luò)結(jié)構(gòu):一個四層的神經(jīng)網(wǎng)絡(luò)把用戶特征都表達(dá)為一個 256 個浮點數(shù)輸出單元的向量,另一個神經(jīng)網(wǎng)絡(luò)把內(nèi)容特征提取為另一個 256 維的向量,兩個向量與代表上下文的向量一起,經(jīng)過一個兩層的全連接神經(jīng)網(wǎng)絡(luò),輸出最后的預(yù)測結(jié)果,即用戶感興趣的程度。
DNN 排序模型的前身是 GBDT 模型?!窯BDT 模型的缺點來自它能接受的數(shù)據(jù)規(guī)模?!箯埲鸾榻B道,「我們曾經(jīng)做過實驗,分別用 2000 萬和 2 億條數(shù)據(jù)訓(xùn)練同樣的 GBDT 模型,得到的模型效果沒有太大區(qū)別,換言之,數(shù)千萬的數(shù)據(jù)量,已經(jīng)達(dá)到了 GBDT 的容量極限。而這正是深度學(xué)習(xí)模型的優(yōu)勢所在:更大規(guī)模的數(shù)據(jù)、更多的特征會進(jìn)一步增加深度學(xué)習(xí)模型的效力。如今在線上對排序階段的內(nèi)容進(jìn)行打分的就是我們使用數(shù)億條樣本訓(xùn)練的一個 DNN 模型?!?/p>
張瑞也展示了兩張 DNN 模型的引入在用戶數(shù)據(jù)上得到的體現(xiàn):
「在半年的時間里,用戶在線時長取得了 50% 的增長。用戶人均在線時長是每個用戶每天使用信息流的平均時間長度,是一個代表了用戶興趣的良好指標(biāo),1 月開始的第一波增長來自于召回逐漸開始使用 DNN 技術(shù),3 月開始的增長主要對應(yīng)排序開始使用 DNN 模型的過程?!?/p>
他還格外興奮地講述了點擊率「下降」背后的故事:
「我們發(fā)現(xiàn),完全基于用戶反饋進(jìn)行推薦后,用戶的表現(xiàn)會表現(xiàn)出趨同性——大家都去看熱門的、吸引眼球的內(nèi)容。我們覺得這雖然增加了點擊率,但給用戶帶來的整體體驗是不好的。所以我們通過產(chǎn)品策略等手段對這部分內(nèi)容進(jìn)行了比例上的調(diào)整,控制吸引眼球但是對用戶成長作用不大的內(nèi)容的比例,提高知識型內(nèi)容的推送比例?!?/p>
這樣的產(chǎn)品策略變動必然引起了點擊率的下降,「但是在線時長仍然在穩(wěn)定的增長,說明用戶對我們的改進(jìn)是認(rèn)可的。我們希望大家不只是刷知乎的時候很開心,之后也能獲得成長。新聞是有時效性的,但知識是不會隨著時間貶值的。我們希望算法能夠挖掘到長效的優(yōu)質(zhì)內(nèi)容,把這部分內(nèi)容傳遞給用戶?!?/p>
知乎的獨一無二:以社區(qū)為基礎(chǔ)的 AI
作為一個獨一無二的社區(qū),知乎在利用 AI 技術(shù)方面有著明確的優(yōu)勢:
「知乎的特長在于我們擁有非常多附帶用戶行為的語料。我們很少去進(jìn)行人工數(shù)據(jù)標(biāo)注,而是更多地利用語料與行為數(shù)據(jù)之間天然的相關(guān)關(guān)系?!估畲蠛Uf。
在擁有大量評論的基礎(chǔ)上,還有大量用戶對評論的反饋:哪些用戶點了贊成、哪些用戶點了反對,又有哪些用戶進(jìn)行了舉報,進(jìn)行每一種操作的用戶都是什么樣的用戶;在擁有大量問題及描述的基礎(chǔ)上,還有非常多邀請數(shù)據(jù):邀請了哪些用戶,他們是否接受了邀請,是否產(chǎn)生了優(yōu)質(zhì)回答。
這些數(shù)據(jù)都可以轉(zhuǎn)化為大量的高質(zhì)量標(biāo)注數(shù)據(jù)。尤其是對于自然語言領(lǐng)域這類主觀性更強(qiáng)、不容易獲得「標(biāo)準(zhǔn)答案」的問題而言,用戶反饋是最高質(zhì)量的標(biāo)簽。
知乎的另一個特長在于明確的落地場景和非常愿意表達(dá)的用戶群體。
張瑞也談及了知乎的「推薦算法成長」與「用戶成長」之間密不可分的關(guān)系。
「我們用成熟穩(wěn)定的內(nèi)容幫助新用戶完成興趣探測,也向成熟穩(wěn)定的用戶群體投放新內(nèi)容判定內(nèi)容的質(zhì)量?!箯埲鹫f。
一個用戶畫像尚不完備、亟需補(bǔ)充的新用戶會收到許多來自「興趣探測」隊列的內(nèi)容,這部分隊列的內(nèi)容相對穩(wěn)定,能夠保證產(chǎn)品體驗,用戶在這部分內(nèi)容上進(jìn)行的點贊、收藏等行為都能夠幫助算法更好地了解用戶。
而另一方面,知乎的算法初步判定可能為「優(yōu)質(zhì)」的新內(nèi)容則會被隨機(jī)分發(fā)給在相關(guān)話題下表達(dá)出強(qiáng)烈興趣的老用戶,由他們給出反饋來判斷一條內(nèi)容是否真的優(yōu)質(zhì),是否值得進(jìn)行更大范圍的分發(fā)。
知乎明確的場景意味著算法與用戶可以有針對性地快速迭代、優(yōu)化,形成閉環(huán),而愿意明確表達(dá)的用戶則在閉環(huán)中提供最重要的一環(huán):及時的反饋。
現(xiàn)在,知乎也在致力于將自己的優(yōu)勢以數(shù)據(jù)集與數(shù)據(jù)競賽的形式開放向?qū)W術(shù)界與業(yè)界。
今年,知乎和中國信息檢索學(xué)術(shù)會議(CCIR)、清華大學(xué)計算機(jī)系信息檢索課題組(THUIR)一起舉辦了「移動環(huán)境下知識分享平臺上的內(nèi)容推薦」比賽。拿出了來自超過七百萬名用戶的兩千四百余萬條知乎移動端信息流推薦數(shù)據(jù),讓選手從一個約六萬條的內(nèi)容候選集合中產(chǎn)生推薦給用戶的內(nèi)容列表。
「我們希望以這種形式回饋學(xué)術(shù)界一些真實的問題和一些真實的數(shù)據(jù),讓他們能夠做一些更有意思的研究?!估畲蠛L岬剑赣蟹浅6嗟膶嶒炇艺业街?,說『你們的數(shù)據(jù)太好了,我們能不能和你們合作?!蝗绻蠹叶加羞@種需求,我們不如以數(shù)據(jù)集和數(shù)據(jù)競賽的形式把資源開放給大家?!?/p>
除了學(xué)術(shù)界以外,業(yè)界的交流以及人才的引入也是知乎格外看重的方面,「知乎一直在扎實地做事情,我們也希望業(yè)界能夠知道,也希望有更多機(jī)會和同行進(jìn)行交流。另外也希望能夠在這個過程中發(fā)現(xiàn)人才。以智能社區(qū)為目標(biāo)的話,我們的人才需求仍然在日益擴(kuò)大,仍然需要非常多新鮮血液加入進(jìn)來?!?/p>