知乎灣區機器學習分享會 - 現場實錄
2017 年 5 月 19 日,我們在美國灣區進行了首次機器學習分享會,知乎大數據團隊負責人 @李大海 首次分享了知乎對於機器學習的思考和應用場景,並進行了現場 Q&A,實錄如下:
大家好,我是李大海,現在是知乎的合伙人,同時也是知乎大數據團隊的負責人。我在知乎的一個很重要的工作,就是推動機器學習技術的應用和落地。很高興今天能來到灣區跟大家進行交流。
今天我們的分享會從兩個問題展開,第一個問題是知乎機器學習的應用現狀:我們到目前為止做了哪些事情,後續還要做什麼;第二個問題是展望未來,我們希望機器學習能夠給知乎帶來什麼樣的想像空間,能夠創作出什麼新的革命性產品。
先來回答第一個問題,要說明「知乎是如何使用機器學習技術的」,需要先簡單描述一下「知乎是什麼」。今年是知乎成立的第 6 年。6 年前知乎剛上線的時候,是一個封閉的邀請式社區,在剛上線的一段時間內,用戶量並不大。當時社區里討論的話題大都集中在互聯網和創業領域,是一個看起來有些小眾的網站。那麼 6 年後的今天呢?我們來看看,知乎上都有什麼。
在知乎的話題標籤雲中可以看到,現在知乎的討論已經變得非常多元化,從互聯網到心理學,從電影到文學,從專業的天文學、數據分析和深度學習,到貼近生活的健康、運動、旅遊、攝影等話題,都有人在討論。從數量上來看,截止到目前,知乎上已經有 1500 萬個問題,5500 萬個回答,還有相當數量的專欄文章,這些內容被關聯到 25 萬個話題上。所以,到了今天,知乎已經是一個討論面非常廣泛的知識社交平台。
看完了內容,我們再來看看用戶的情況。知乎用戶 6 年來同樣也在飛速增長,並且越來越多元化。知乎上既有李開復、馬伯庸、賈揚清等一批現實生活中已經是「名人」的用戶;也有以前默默無聞,但通過在知乎辛勤耕耘,擁有了一定影響力的優質內容生產者;另外還有像 @窮游錦囊 、@中國科普博覽 、@微軟亞洲研究院 這樣的機構類用戶。截止目前,我們擁有 6900 萬的註冊用戶,每天有超過 2000 萬獨立設備訪問和登錄知乎,每月有上百億的 Page View。
這些數據可以讓我們對知乎的規模有一個直觀印象。事實上,知乎已經成為世界上最大的中文知識社交平台,並且還在保持高速的增長。2016 年,我們沒有花一分錢做效果推廣,同時註冊用戶量、DAU 等指標大概翻了一倍。知乎為什麼能夠在這樣的體量下還保持高速增長呢?
我們曾經做過用戶調查,想搞清楚用戶為什麼要使用知乎。有的用戶說他喜歡來知乎看新聞熱點的評價,了解同一個事情的不同角度的觀點,互相碰撞;也有人喜歡來知乎看大家的經驗,幫助自己做消費決策:比如裝修怎麼做預算,職場第三年如何提升自己,等等;而有的用戶主要是來分享自己的專業知識的。我們有個用戶是房產律師,叫徐斌,他常常在知乎上回答購房過程中遇到的法律問題,由於答題過程中展現的專業度很不錯,所以他開的知乎 Live 也很受歡迎,一場名叫「怎樣租房不上當」的 Live,到目前為止有 8000 名聽眾購票入場。
可以看到,用戶來知乎,無外乎做兩件事,生產內容,或者消費內容。這兩個點組合起來,構成了知乎的生態閉環。什麼意思呢?更多更好的內容成就了知乎作為平台的粘性和吸引力,而吸引來的更多用戶反過來催生了更加多樣化的內容生產需求。同時,生產內容的用戶也能從這個過程中受益,通過知識的分享和交流提升自我,也擴大自己的影響力。正是因為在這個閉環中,同時滿足了用戶的內容生產和消費的需求,才有了知乎的高速增長,有了知乎今天幾千萬的用戶和內容。
所以,我們總結一下「知乎是什麼?」 知乎就是一個連接海量用戶的知識網路,是一個平台。我們的核心目標就是讓這個內容生產和消費的閉環順暢地運轉,為用戶提供一個認真、友善的討論環境。
要實現這個目標,在社區規模比較小的情況下,是相對容易的,我們可以通過簡單的產品策略和運營策略,保證內容生產和分發的效率,也能夠通過人工運營方式來維持良好的社區氛圍。但是,當社區達到今天的規模後,我們面臨的運營壓力也在飛速地增長,每天有幾千萬活躍用戶,產生幾十萬的新內容以及幾百萬的互動行為。如果純粹依靠人力來做社區運營,效率會越來越低,越來越不可行。
因此,知乎要用機器學習來做什麼?簡單的答案是,對用戶和內容進行更精細的建模,提升內容生產和內容分發的效率。具體來說,主要涉及到 6 個領域的應用,他們分別是用戶畫像、內容分析、排序、推薦、商業化和社區管理。接下來我們詳細講一下,過去在這 6 個場景下都做了一些工作。
首先是用戶畫像。可以說,準確有效的用戶畫像是所有個性化策略的基礎。我們現在初步建立了一套用戶畫像體系,對一些重要的用戶屬性進行了挖掘,例如:用戶的活躍度,最近常用登錄地點;衡量用戶影響力的 people rank,以及作為生產者在某個領域下的權威度和作為消費者對某個領域的興趣,等等。這些用戶標籤被用在了個性化排序、推薦、問題路由等一系列任務中,取得了不錯的效果。接下來,我們還會對用戶的屬性進行更深入的挖掘,例如,我們計劃對用戶進行社群分析,並且定位信息傳播網路中的關鍵節點,也就是所謂的 KOL;我們也希望用戶畫像中的標籤可以變得更加「精細」和「可預測」,舉個形象的例子,如果一個用戶最近對「懷孕期間的健康」這種話題比較感興趣,那麼我們可以大膽推測,幾個月後,他可能會對「育兒」相關的話題產生興趣;我們還希望通過用戶的分享來重構他的人物設定和個人背景,等等。總之,我們希望在個人畫像這個領域的積累,能夠讓知乎更加全面的了解我們的用戶,更好的刻畫他們,更好的滿足他們的需求。
說完了用戶畫像,我們再來看看內容分析。知乎上每天都會產生大量的新內容,它們都是異構的,有提問、回答、文章、評論,後續我們還會逐漸上線視頻,這些內容需要在被生產出來後,第一時間打上各種各樣的標籤。為此,我們構建了一條統一的內容分析流水線,保證每條內容發生變化時,都會立刻進入這條流水線進行處理,然後實時把分析結果同步給搜索、推薦、社區等各個業務。目前,從內容進流水線到出流水線,平均時延在 10 秒左右,這種實時性較好地滿足了我們的業務要求。目前,在這條流水線上,我們已經針對文本、圖像、音頻等數據進行了一些基礎分析,例如文本分類、命名實體識別,色情圖像檢測和低質圖片檢測,音頻降噪等等。我們也會逐步往這條流水線上添加更多的組件,最近在做的一個重要工作,就是從不同維度刻畫內容質量,包括內容的時效性、專業性、嚴肅性、準確性,等等。我們還計劃通過更深度的語義分析,來幫助我們對內容自動創建摘要,讓用戶在 Feed 流這樣信息密集場景中,不用點開卡片就能做出初步判斷,提升篩選內容的效率。
用戶畫像和內容分析都是基礎工作,很大程度上來講,不是用戶直接可見的。下面我們來介紹更上層的業務場景。首先說一下排序,排序是內容分發場景中非常重要的一環,排序做得好不好,直接決定了我們能不能在第一時間把合適的內容推給用戶。在知乎我們主要使用 Pointwise 和 Pairwise 的 Learning to Rank 演算法來處理我們的排序問題。知乎的排序主要有三個典型的場景:
第一個是首頁 Feed 流。用戶進入知乎,Feed 流是第一入口,用戶在信息流看到的內容是什麼樣子,他就會認為知乎上的內容是什麼樣子。所以信息流做得好不好,會直接影響到用戶留存、停留時長、以及用戶瀏覽深度,等核心指標的變化。
第二個是搜索結果排序,我們目前使用 Learning to Rank,主要解決一些不同類型的內容如何混排的問題;
第三個場景是同一個問題下不同回答的排序:知乎上比較熱門的問題,都會有很多的回答,有的問題下甚至會有幾千個答案,如何對這些答案進行排序,也是一個很重要的課題。除了考慮用戶投票的特徵之外,還需要考慮內容本身的文本特徵,例如內容格式、內容質量、答案和提問的相關性,等等。同時,我們還會考慮作者和投票的用戶在這個問題領域的專業性,確保「專業的答案」不會被埋沒。
我們在這些場景下使用了 Learning to Rank 技術後,取得了不錯的效果。還是拿首頁來舉例,原來我們的首頁排序演算法是類似 EdgeRank 的策略,經過過去兩年的優化,各種指標都趨近平穩,很難有明顯的提升。而在改用 Learning to Rank 技術,並進行排序優化後,三個月之內,點擊率上升了 40%,用戶停留時長上升了 20%,留存率也有小幅的提升。
當然,僅僅是這樣,還是不夠的。目前我們也在探索 Learning to Rank 技術的更深入優化。一些可能的方向包括:
一是多目標的帕累托優化。大家知道,很多業務場景都是需要進行多目標優化的,只看一個指標,很容易陷入局部最優的陷阱之中。仍然以首頁信息流排序舉例,知乎的首頁是需要考慮很多指標的,包括用戶的點擊率、停留時長、瀏覽深度、用戶點擊不感興趣的比例,以及用戶可能評論、互動的比例,等等。我們曾經在這個過程中,做過一版演算法的優化,主要是針對點擊率的。點擊率的確提升了很多,但是在評估的時候會發現,用戶的首頁里會出現很多低質內容,例如「抖機靈」、「吵架糾紛」、「標題黨」等。這些內容抓人眼球,用戶點擊的可能性比較大,但是這些內容對用戶的價值並不大,曝光過多反而會對社區的氛圍和調性帶來負面影響。在這種情況下,我們希望把經濟學中的帕累托優化等思想引入到 Learning to Rank 的場景中來,促進各種指標的協同提升。
第二個方向,是用好一些實時特徵,讓模型除了能反映用戶的穩定偏好之外,還可以考慮到當前的實時狀態,及時做出調整。例如,如果一個用戶是巴薩的球迷,很喜歡看站上各種巴薩的討論,但也許昨天巴薩輸球了,很不高興,不想看到任何相關的內容,那麼理想化的狀態來看,我們的信息流服務,就應該能在最短時間裡,發現這個變化,迅速做出調整。
下一個業務場景是推薦。知乎上的推薦主要分成兩種,一種是針對內容推薦相關內容,一種是針對用戶推薦可能感興趣的內容。我們陸陸續續做了一些推薦工作,都是面向業務實現的。今年年初,我們啟動了統一推薦引擎計劃,基於 Prediction IO 和 Elastic Search 等開源系統,構建了知乎的統一推薦工程框架,統一了現有的大部分場景。推薦接下來要做的事情主要有兩個,一是實現一個完備的推薦演算法庫,計劃支持各種推薦演算法,包括像 Explore & Exploit 演算法群,協同過濾,內容關聯性推薦,Deep & Wide 方向演算法框架等等,提升業務進行小流量實驗的效率;二是,把推薦跟排序結合起來,在首頁或者搜索這樣的入口級場景,加入一些推薦結果,和原來的內容進行混合排序,為用戶進行興趣探索和拓展,幫助用戶快速地發現其他優質內容,幫助他們發現更大的世界。
排序和推薦都是比較明確的用戶場景,主要目的是實現用戶和內容的高效匹配。相對來說,商業化這個場景會更加複雜一點。大家知道商業化產品和用戶產品的不同,在於商業化中引入了「廣告主」這個新角色,需要在用戶、平台和廣告主三方的利益之間尋求一種平衡。知乎的商業化探索是從去年開始的,截止目前,我們已經搭建了一個商業系統雛形,實現了流量預估、廣告定向投放、CTR 預估、智能 Pacing 等一系列功能。而隨著今年業務規模的擴大,我們也需要更多有效的工具,並且用機器學習技術武裝它們。例如:
智能化的廣告銷售工具,幫助團隊更好地發現潛在廣告主;
廣告質量的預判和審核工具,知乎是一家非常重視用戶體驗的公司,我們進行商業化探索的時候也是非常謹慎的,不僅要保證用戶盡量不被廣告打擾,還希望廣告也能給用戶帶來價值。過去一年,我們的商業運營團隊花了很大功夫去保證廣告的物料質量,所以用戶對站上的廣告是普遍持接受和理解態度的,廣告的轉化效果也不錯。但是在廣告規模起來之後,單純靠人力就不能完成這樣的質量保證了,我們需要一些機器學習機制,來輔助人工判定廣告物料的質量。
智能廣告主平台,幫助廣告主更優化地設定各種投放計劃和定向方案。
當然,隨著我們商業化進程的前進,我們相信還會有更多的機器學習的挑戰在等著我們。
最後我們來談談最後一個場景,也就是我們的社區管理。一個良好的社區需要良好的討論氛圍。我們使用機器學習技術進行了大量的工作,來提升社區管理同事的工作效率。它們主要包括:
Spammer 用戶的識別:Spammer 用戶類型很多樣,其中主要包括爬蟲用戶、刷粉用戶、營銷用戶等等;
對低質內容和違規內容的自動偵測和處理,例如色情圖片和語言暴力識別,等等。
如果我們把知乎比作城市的話,社區管理就像是一個基礎建設的工作,類似於修建道路、疏通下水道。一個城市的基礎建設做好了,才能吸引更多的人入駐;但一個城市的規模擴大了,這些基建工作當然也會變得越來越繁重。所以以後我們還計劃投入更多精力,來幫助社區管理團隊提升效率:
一方面,進一步提升我們對低質內容的識別準確率以及覆蓋率。例如要增加識別營銷軟文、網路謠言的能力,儘可能減少對社區的損害。
另一方面,希望能夠引入智能客服機器人,提高對用戶舉報、用戶反饋等事務的處理效率,這項技術當前在一些電商網站中已經得到了很好的應用,我們也期望能夠通過這項技術,來減輕社區管理團隊的工作量,提升用戶的滿意度,使得用戶發出反饋後,能儘快得到響應。
上面簡單介紹了知乎目前的機器學習使用情況,主要集中在 6 個場景:包括用戶畫像、內容分析、排序、推薦、商業化和社區管理。歸根結底一句話,就是將機器學習技術用於內容的生產和分發,提升效率。我們相信,隨著我們的工作深入,以及機器學習技術本身的發展,我們能做得越來越好。除了這種漸近式的改進,,知乎還希望機器學習技術幫我們做到什麼事情呢?用一句話來描述,就是:希望知乎不限於「分發」內容,還能更深入地「理解」內容。
大家可以看到,在「內容生產」和「內容消費」的閉環中,知乎作為平台,更多是在發揮「信息路由」的作用,促進內容的生產,然後投遞到不同用戶手中。如果說這些內容是寶貴的礦石的話,那麼知乎的角色,更類似於一個礦產的集散中心,這些礦產能被發掘出多少價值,主要依賴於用戶自己。我們希望,未來知乎能夠對這些礦產進行一定程度的加工,進一步提升用戶獲取知識的效率。舉個例子,前面有用戶說過,喜歡來知乎看大家對同一個新聞的各種不同觀點。設想一下,如果知乎能夠把這些觀點分門別類總結和聚集起來,讓用戶更容易掌握全局,節省一個回答一個回答翻看的時間,那將是非常有價值的。
這個工作要涉及到兩個方面:一方面是從用戶生產的非結構化內容中抽取知識和觀點,變成知識庫的一部分;另一方面,要能把知識庫的內容轉變成用戶友好的產品。
先說從非結構化的內容中,抽取結構化的信息。目前業界有一些現有的操作和研究,例如知識圖譜技術。我們希望從知乎的海量內容中,挖掘出各種知識和見解,存儲起來,被進一步索引和利用。那麼知乎的知識庫建設困難在哪兒呢?主要是,知乎的內容形式比較複雜,除了可以結構化的屬性信息和關係信息之外,還包括其它形式多樣的知識和見解,例如對科學定理的論述、針對某些事件的評價,等等;知乎上的內容也有開放性的問題:討論不局限在特定的領域,而是一個開放的、不斷擴張的領域集合;另外,用戶的討論也會常常出現非常新穎的角度。
當然,相對於其他公司,知乎在知識和見解的結構化方面也有優勢。因為知乎上的內容質量相對較高,同時用戶的互動行為和內容構成了一張信息量豐富的網路。使得我們的數據具有極高的信噪比,這也為信息抽取工作提供了很大的便利。
假設我們已經神奇地完成了上一個步驟,建立了一個強大的知識庫,那麼我們應該如何把這個知識庫產品化呢?我們同樣期待機器學習技術能夠有幫助。其中的一個設想是,構建一個智能問答產品,使用自然語言生成手段,以更加自然和易於理解的方式,將知識庫中的信息提供給用戶;如果更進一步,我們是不是可以讓「知乎」成為一個聰明的大腦,能夠和用戶進行更自然的對話交流,並以及形式更加豐富的方式傳遞信息呢?大家都知道,如果限定領域範圍,這個事情是相對好做的,但要面對一個通用的知識庫,將是非常困難的。這也是業內的一個比較前沿的研究方向,國內外很多機構都在做類似的研究,我們也希望知乎能夠在這方面有自己的積累。
以上就是今天分享的主要內容,主要講了兩個問題,一是知乎目前的機器學習應用現狀;二是知乎對機器學習應用的未來展望。當然,這些東西要想實現,還需要有更多的機器學習大牛加入我們,一起來增加知乎的產品價值。這也是我們來到灣區宣講的初衷。
所以接下來是一個小廣告,對,我們在招聘,不管是演算法大神還是剛畢業的機器學習相關畢業生,不管你在國內,還是國外,不論我們相距多遠,我們都求賢若渴,至少我們可以先交流起來。
(歡迎大家投遞簡歷,招聘鏈接:知乎網申系統--招聘詳細)
對了,還有另一個小廣告,這個月我們正在舉辦「知乎·看山杯機器學習挑戰賽」, 5 月 15 號正式開賽, 8 月 15 號結束。這次的比賽,知乎提供的訓練數據是問題和話題標籤的綁定關係,參賽者的目標是提供最優的自動標註模型。我們提供了 300 萬問題和 2000 個標籤,每個標籤對應知乎上的一個「話題」。也歡迎大家的加入。
謝謝大家~!
Q & A 部分Q:在你們的招聘職位中,有涉及到 CV 方向的部分,想了解下在這方面,你們畢竟關注要做哪些方面的內容?
A:接下來知乎會支持視頻、 GIF 等其他格式的內容,讓大家能夠使用更多元的表達方式來傳達思想。有了這些表達形式,我們很自然的就需要對這些內容進行理解。所以在 CV 上,我們主要還是需要圖像、視頻理解方向的工作。我們會在內容分析的 pipeline 里,增加離線解析到的視頻和圖片的 meta data。這些 meta data,簡單形態就是標籤;複雜的形態,則可能會與某一禎上有什麼語義上的內容相關了。目前這部分的工作才剛起步,我們也還需要進一步安排具體的工作。
Q:對於各種模型的效果,知乎有做在線實驗嗎?在線實驗的效果評估你們是怎麼做的呢?是說就是一般性的隨機抽一些數據,還是有什麼特殊的?
A:在線實驗是必須要做的。另外,我們也會在上線前先使用 NDCG 或者 AUC 等方式先做上線前預估。目前和小流量實驗相關的工作主要還是機器學習團隊自己在做,而涉及結果的可信度問題,可能需要數據分析的團隊來配合完成。關於第二個問題,我的理解是你在問在線實驗如何做 A/B Test 的問題吧?我們現在的做法其實還比較簡單,主要是將用戶分成一些實驗組和對照組,首先保證這個實驗對同一個用戶是穩定的,然後上線前先關注一下這些 Metrics 在實驗組和對照組之間是不是穩定的。上線後再觀察實驗結果的的可信度。
Q:知乎的工作氛圍是什麼樣的?
A:知乎是一家技術驅動的公司,我們的團隊非常年輕、有活力、崇尚黑客文化。辦公室掛了一面海盜旗,Paul Graham 的文集《黑客與畫家》是每名船員的必備讀物。同時知乎也是一家重視「作品感」的公司,我們希望每一位海盜所完成的,都不僅僅是一份「工作」,更是在完成自己的一份作品。知乎更是一個注重個人發展潛力和成長空間的公司,我們相信這個世界有豐富的可能性亟待探索,每個人都有自己獨特的靈魂和所擅長的方向,歡迎大家加入我們,一起探索更大的世界。
推薦閱讀:
※2016網路電台「知了個乎」精彩預告
※如何評價「你為什麼會從恆大集團離職?」的高票答案處於被修改狀態?
※瓦力新升級,主動識別「答非所問」
※知乎想法的想法:要抄微博的後路還是革自己的命?
※6個月入十萬,難嗎?介紹下我的思路