知乎:源自社群又服務於社群的 AI 技術

邱陸陸發表於2018-06-13

「知乎希望利用 AI 技術打造一個智慧社群。」

每次知乎的技術負責人公開談及人工智慧技術,「智慧社群」都是一個繞不開的詞彙。然而「智慧社群」也是一個相對陌生的概念:如今研究者與工程師們明確了深度神經網路在語音、影像和自然語言資料上的作用,並將它們進行逐一的細化和延展成了種種「智慧應用」。然而「智慧社群」是什麼?

「每個人來到知乎,都能快速看到他感興趣的人和內容,他的疑問可以被極速送達到有意願和能力回答的人,他也會快速遇到讓他拍案的好問題,分享只有他最懂的資訊,收穫最令他滿足和愉悅的認同,與他希望遇到的人產生有價值的交流、討論,甚至爭執。這一切會是這個時代的思考和總結。我們會以從未有過的效率,創造思維的連線。讓每個個體的思考和經驗,被分享,被篩選,被總結,被轉化成為這個時代的知識。知識的生產方式和迭代效率會因為這樣的連線發生質的改變。」這是知乎合夥人、高階副總裁李大海對智慧社群的定義。

然而為什麼選擇 AI 技術實現這一目標?AI 技術為社群帶來了哪些變化?五月,機器之心來到知乎,希望找到這些問題的答案。

不是「哪裡有 AI」而是「處處皆 AI」

知乎誕生的初心是認為「在資訊爆炸的網際網路海洋中,有價值的資訊仍然是稀缺的」。而其中最有價值的部分,是那些深藏在某些特定使用者的腦海中的知識、經驗與見解。平臺需要對這些內容進行大量的挖掘與沉澱工作,才能讓它們被真正需要的使用者利用起來。完成這樣的工作需要龐大的使用者基數——這一點知乎已經透過成為最大的中文知識分享平臺做到了。而規模也帶來了問題多樣性的指數級增長,讓原有的產品機制開始「失效」,對排序、推薦演算法都提出了更高的需求,這就是 AI 技術引入的必要性。

這個過程與深度學習本身的興起邏輯是一致的:當資料的數量超出一定範圍,人類就很難從大量資料中找到規律,需要在自己設定設計模型結構的基礎上,引入可訓練的模型,讓機器幫助研究者完成引數的選擇。而當資料的維度也超過一定範圍時,進行特徵提取變成了需要消耗大量人力物力進行試驗的工作,因此研究者進一步引入可訓練的特徵提取器。

「AI 技術的引入讓每一個人持有的資訊都能高效地被髮掘、得到交流、並且透過大家評價的過程進行過濾。換言之,整個知識生產的方式、節奏和效率都得到了質的變化,知識的生產與消費、社群的建立與管理,都變成了一個不一樣的過程。」李大海總結道。

在這樣的一個智慧社群裡,對 AI 技術的應用情況是十分驚人的。當我們試圖從業務邏輯對知乎對 AI 的應用進行梳理,會發現從內容生產、消費到使用者連線與社群管理,每一個過程都涉及不同的機器學習問題,放眼望去,與其說「哪裡有 AI」,不如說「處處皆 AI」。

內容生產部分,可以分為問題提出與問題路由。問題提出是一個從使用者的查詢中識別出意圖,發現知乎現在還無法滿足的意圖,引導使用者進行提問,並根據使用者的意圖生成合理的問題的過程,得到提問和描述後,後臺的卷積神經網路模型會從知乎超過二十五萬個話題中選擇出最匹配的話題,進行話題的推薦和繫結。問題路由則是如何分發問題以讓合適的使用者看到問題、激發他們的創作慾望。這就是一個典型的機器學習排序(learning to rank)問題。先在眾多使用者中透過召回定位合適的範圍,然後透過 pointwise/pairwise/listwise 等排序方法,找出最有可能接受邀請以及最有可能產生優質回答的使用者,進行推薦,或讓使用者選擇委託系統進行邀請。

內容的分發和消費部分,按照情景可以分為首頁資訊流、搜尋和相關推薦等。在資訊流部分,李大海特別強調,「知乎的資訊流設計與其他平臺有所不同的地方在於,知乎希望使用者來探索更大的世界而不是進入資訊繭房,因此我們特別注重在資訊流裡擴充使用者的興趣邊界。」除此之外,搜尋是典型的文字與問題之間相關性迴歸問題,而相關推薦則既可以基於使用者進行,也可以基於問答文字進行,可以用協同過濾(Collaborative Filtering)的方法進行,也可以用深度表示的方法進行。

連線和治理則是社群特有的需求,知乎在連線方向的追求是「讓人發現更多有趣的靈魂」,本質上是理解使用者價值觀、興趣,然後進行推薦的過程。而治理則是甄別不同類別的低質行為(如答非所問、軟文)和不友善行為(陰陽怪氣、貼標籤),以針對不同情況進行不同處理,降低對討論氛圍的影響。

而除了業務邏輯主線的各個部分外,AI 技術也幫助進行了眾多的細節最佳化,比如如何對不同呈現形式的資訊流進行針對性渲染:如何挑選封面圖、挑選後如何進行

裁剪操作,以在首頁的卡片中呈現更多資訊量,幫助使用者判斷是否要進行消費。

「知乎從 16 年起進行開始引入機器學習相關演算法,最開始從經典機器學習方法開始(例如梯度提升決策樹(GBDT)),再逐步替換成深度神經網路(DNN)的新方法。」李大海也提到了在業界的深度學習方法迭代之迅速,「一、兩年前,帶注意力機制的雙向 LSTM 模型還是一個『新方法』,如今已經是一個『經典方法』了。」

內容消費裡的 AI 技術:從首頁資訊流說起

當你開啟知乎,你看到的是什麼?

知乎的「推薦」資訊流是首頁裡十分重要的一欄。使用者在這裡可以看到符合自己興趣的內容,當下的一些熱點討論,也有知乎幫助你擴充興趣邊界的探索。然而知乎上僅問題與回答就超過 1 億條,其中還有類目繁多的 live、電子書等付費內容。這道擁有超過一億個選項的多選題,沒有任何一個排序演算法能獨立給出令人滿意的答案。因此龐大的內容體系決定了,只有分層級的排序系統才能勝任這個任務。

知乎的首頁負責人張瑞用一張架構圖為機器之心詳細地描述了這個名為「水晶球」的推薦系統的組成。

知乎:源自社群又服務於社群的 AI 技術

首頁上出現的內容經歷過兩次排序。第一次是從數十個推薦佇列裡被「召回」,第二次是在合併後經過深層神經網路(DNN)的「排序」。

「召回」的第一個步驟是,召回模組根據使用者的歷史行為表現(使用者畫像),確定數十個推薦佇列,或者說數十個「召回源」的召回比例和召回數量。

推薦佇列是一個個含有特定標籤的內容合集。有些佇列裡內容性質相似,比如熱點新聞佇列、影片佇列。還有的佇列與使用者行為緊密相關,比如關注的人佇列、搜尋關鍵詞佇列。

「召回」過程的第二個步驟是各召回源根據使用者的需求分別將自己的佇列中的內容做排序後,按召回數量返回內容。

整個「召回」過程都是以使用者為中心的、高度個性化的:

比如一個初來乍到的新使用者還沒有「關注的人」,召回模組就不會從關注的人佇列拉取內容,而是轉向興趣探測佇列,幫助演算法更好地瞭解使用者。

再比如今天的影片類內容非常豐富,但是根據使用者畫像,這位使用者極少消費影片內容,那麼召回模組仍然只會從影片佇列請求三條內容,影片佇列也只推薦三條最符合使用者需求的內容。

而不同的推薦佇列長度從幾千到數十萬各有不同、召回過程中採用的排序方法也各有不同。有的召回源會對使用者和內容都做嵌入式表示 (embedding),進而透過內積的方式確定召回的物件;還有的召回源,比如關鍵詞佇列,會採用倒排索引的方式,用自然語言處理的方式把內容打上標籤,然後針對使用者的關鍵詞需求,組建倒排索引,進行召回。

「召回」過程會選出數百條候選內容進入「排序」過程,最後,DNN 可以在一百毫秒內對這數百條完成打分和排序過程,決定推送給使用者的內容。

知乎:源自社群又服務於社群的 AI 技術

「我們把系統命名為『水晶球』,是希望能夠透過這個系統得以一窺使用者想要看到什麼內容,然後推薦給他。」

排序演算法進化史:從 edgerank 到深度神經網路

張瑞也為我們講述了首頁資訊流的「演算法進化史」。

「首頁一開始是基於 edgerank 演算法進行簡單的演算法排序,後來逐漸引入了以 GBDT 為主的機器學習排序技術,現在這個階段會把深度神經網路技術(DNN)應用在召回和排序的各個階段,現在的大部分推薦結果都是透過神經網路推薦的。」

現在的 DNN 模型本質上是一個用於預測的迴歸模型,預測的物件是使用者是否對一條內容感興趣。迴歸的目標是一個與興趣相關的使用者行為的綜合打分:使用者是否有點選、是否進行閱讀、閱讀了多長時間、是否收藏、是否有正面或負面的評論等等。

預測所使用的特徵主要可以分為三類:使用者相關、內容相關以及上下文相關。使用者相關的特徵包括使用者畫像、使用者一段時間內的閱讀歷史等等,內容相關的特徵包括內容的標籤、贊數、歷史點選率等,上下文特徵則是可能影響使用者行為的時間空間特徵。例如使用者在早上可能會偏好閱讀與成長相關的內容,晚上則更多閱讀泛興趣類內容。

預測模型主體是一個多路徑網路結構:一個四層的神經網路把使用者特徵都表達為一個 256 個浮點數輸出單元的向量,另一個神經網路把內容特徵提取為另一個 256 維的向量,兩個向量與代表上下文的向量一起,經過一個兩層的全連線神經網路,輸出最後的預測結果,即使用者感興趣的程度。

DNN 排序模型的前身是 GBDT 模型。「GBDT 模型的缺點來自它能接受的資料規模。」張瑞介紹道,「我們曾經做過實驗,分別用 2000 萬和 2 億條資料訓練同樣的 GBDT 模型,得到的模型效果沒有太大區別,換言之,數千萬的資料量,已經達到了 GBDT 的容量極限。而這正是深度學習模型的優勢所在:更大規模的資料、更多的特徵會進一步增加深度學習模型的效力。如今線上上對排序階段的內容進行打分的就是我們使用數億條樣本訓練的一個 DNN 模型。」

張瑞也展示了兩張 DNN 模型的引入在使用者資料上得到的體現:

知乎:源自社群又服務於社群的 AI 技術

「在半年的時間裡,使用者線上時長取得了 50% 的增長。使用者人均線上時長是每個使用者每天使用資訊流的平均時間長度,是一個代表了使用者興趣的良好指標,1 月開始的第一波增長來自於召回逐漸開始使用 DNN 技術,3 月開始的增長主要對應排序開始使用 DNN 模型的過程。」

他還格外興奮地講述了點選率「下降」背後的故事:

「我們發現,完全基於使用者反饋進行推薦後,使用者的表現會表現出趨同性——大家都去看熱門的、吸引眼球的內容。我們覺得這雖然增加了點選率,但給使用者帶來的整體體驗是不好的。所以我們透過產品策略等手段對這部分內容進行了比例上的調整,控制吸引眼球但是對使用者成長作用不大的內容的比例,提高知識型內容的推送比例。」

這樣的產品策略變動必然引起了點選率的下降,「但是線上時長仍然在穩定的增長,說明使用者對我們的改進是認可的。我們希望大家不只是刷知乎的時候很開心,之後也能獲得成長。新聞是有時效性的,但知識是不會隨著時間貶值的。我們希望演算法能夠挖掘到長效的優質內容,把這部分內容傳遞給使用者。」

知乎的獨一無二:以社群為基礎的 AI

作為一個獨一無二的社群,知乎在利用 AI 技術方面有著明確的優勢:

「知乎的特長在於我們擁有非常多附帶使用者行為的語料。我們很少去進行人工資料標註,而是更多地利用語料與行為資料之間天然的相關關係。」李大海說。

在擁有大量評論的基礎上,還有大量使用者對評論的反饋:哪些使用者點了贊成、哪些使用者點了反對,又有哪些使用者進行了舉報,進行每一種操作的使用者都是什麼樣的使用者;在擁有大量問題及描述的基礎上,還有非常多邀請資料:邀請了哪些使用者,他們是否接受了邀請,是否產生了優質回答。

這些資料都可以轉化為大量的高質量標註資料。尤其是對於自然語言領域這類主觀性更強、不容易獲得「標準答案」的問題而言,使用者反饋是最高質量的標籤。

知乎的另一個特長在於明確的落地場景和非常願意表達的使用者群體。

張瑞也談及了知乎的「推薦演算法成長」與「使用者成長」之間密不可分的關係。

「我們用成熟穩定的內容幫助新使用者完成興趣探測,也向成熟穩定的使用者群體投放新內容判定內容的質量。」張瑞說。

一個使用者畫像尚不完備、亟需補充的新使用者會收到許多來自「興趣探測」佇列的內容,這部分佇列的內容相對穩定,能夠保證產品體驗,使用者在這部分內容上進行的點贊、收藏等行為都能夠幫助演算法更好地瞭解使用者。

而另一方面,知乎的演算法初步判定可能為「優質」的新內容則會被隨機分發給在相關話題下表達出強烈興趣的老使用者,由他們給出反饋來判斷一條內容是否真的優質,是否值得進行更大範圍的分發。

知乎明確的場景意味著演算法與使用者可以有針對性地快速迭代、最佳化,形成閉環,而願意明確表達的使用者則在閉環中提供最重要的一環:及時的反饋。

現在,知乎也在致力於將自己的優勢以資料集與資料競賽的形式開放向學術界與業界。

今年,知乎和中國資訊檢索學術會議(CCIR)、清華大學計算機系資訊檢索課題組(THUIR)一起舉辦了「移動環境下知識分享平臺上的內容推薦」比賽。拿出了來自超過七百萬名使用者的兩千四百餘萬條知乎移動端資訊流推薦資料,讓選手從一個約六萬條的內容候選集合中產生推薦給使用者的內容列表。

「我們希望以這種形式回饋學術界一些真實的問題和一些真實的資料,讓他們能夠做一些更有意思的研究。」李大海提到,「有非常多的實驗室找到知乎,說『你們的資料太好了,我們能不能和你們合作。』如果大家都有這種需求,我們不如以資料集和資料競賽的形式把資源開放給大家。」

除了學術界以外,業界的交流以及人才的引入也是知乎格外看重的方面,「知乎一直在紮實地做事情,我們也希望業界能夠知道,也希望有更多機會和同行進行交流。另外也希望能夠在這個過程中發現人才。以智慧社群為目標的話,我們的人才需求仍然在日益擴大,仍然需要非常多新鮮血液加入進來。」

相關文章