廣點通背后的大數據技術秘密——大規(guī)模主題模型建模及其在騰訊業(yè)務中的應用(附PPT)

12月14日,騰訊廣點通高級研究員靳志輝在2014中國大數據技術大會上發(fā)表演講,題為《Peacock: 大規(guī)模主題模型及其在騰訊業(yè)務中的應用》。騰訊廣點通高級研究員靳志輝(Rickjin)所在的廣點通部門,承接的流量一天接近150億,他希望用技術幫助騰訊更好地處理這些流量,具體而言就是通過大規(guī)模主題模型學習系統(tǒng) Peacock找出用戶在網絡數據深層的密碼?!拔覀冇X得互聯網需要挖掘長尾的語義,主題模型能夠突破傳統(tǒng)處理的一些限制挖掘數據里面深層的隱含的語義。以下為作者演講實錄。

相關閱讀:

21頁PPT重磅發(fā)布:Mariana——騰訊深度學習平臺的進展與應用

33頁PPT|騰訊社交網絡的大數據建??蚣芴剿鲌蟾?/p>

重磅推薦:129頁PPT講述移動時代創(chuàng)業(yè)黃金法則 via:騰訊企鵝智酷

重磅!50頁PPT揭秘騰訊大數據平臺與推薦應用架構

36頁PPT│大數據分析關鍵技術在騰訊的應用服務創(chuàng)新

大家好,我來自騰訊的效果廣告平臺部,參與開發(fā)的廣告平臺是廣點通,廣點通目前是騰訊最大的效果廣告平臺,每天承接的流量接近150億PV,未來其實應該會達到200億PV的流量,這是非常海量的流量。作為技術人員,我們在騰訊的夢想就是希望騰訊變成更加技術型的公司。我們團隊在廣告部門所負責的主要工作是各種機器學習工具的開發(fā),以及利用機器學習工具處理騰訊的用戶數據挖掘。之前互聯網廣告業(yè)務有兩大機器學習系統(tǒng),第一大系統(tǒng) Logistic Regression,廣泛用于廣告點擊率預估;第二大系統(tǒng)就是隱含主題建模(Latent Topic Model)。這兩大系統(tǒng)早期都是由谷歌推動的,然后傳播到國內的各個互聯網公司。當然,現在由于深度學習的興起,最近廣告業(yè)務中又增加了一套基于 DNN 的系統(tǒng)。

在隱含主題模型方向上,我們從 2010 年開始就不斷的做一些探索,我今天要講的Peacock 系統(tǒng)就是我們團隊在主題模型建模上的工作。今天的報告主要分成如下幾個部分:我先Demo一下我們Peacock系統(tǒng)是如何工作的,隨后簡單介紹一下主題模型的背景,接著介紹Peacock是怎么來實現大規(guī)模并行計算的,最后我們講一下主題模型在騰訊業(yè)務中的應用。

先來講幾個例子。用戶在網絡上的行為會留下很多的數據,其中最典型是一些文本數據,你搜索的一些文章,你發(fā)的微博,我們通過自然語言處理技術理解這些詞。第一個例子是用戶搜索了“紅酒木瓜湯”,這樣的Query給它展示什么廣告? 單純的從關健詞來說,多是酒或者水果。第二個詞是“蘋果”,蘋果實際上是多義詞,可以是水果也可以是手機。第三個詞“莫代爾”,在座的估計很多人不知道這個詞是什么意思。

如果我們把這些詞輸入Peacock系統(tǒng),我們看看系統(tǒng)會產生什么樣的輸出。我們可以看到Peacock 系統(tǒng)打印出很多行,每一行其實代表一個主題(topic),“紅酒木瓜湯”系統(tǒng)給出的第一個主題的語義解釋是 “減肥、豐胸、美容” ,從廣告系統(tǒng)的角度,如果能夠展現跟女性減肥、豐胸更相關廣告,這個點擊率可能高。我們發(fā)現整個Peacock的系統(tǒng)處理文本語義的時候,不同的主題有不同的權重,展現的時候按照主題權重排序,而每個主題用一包詞描述。

我們看下一個例子,我們如果把”蘋果”輸入Peacock,我們打印出來幾行,第一行 ” 蘋果、收集、iphone、電腦…” 基本上講蘋果手機,第二行”范冰冰、蘋果、電影、佟大為…”,這一行就是講范冰冰和佟大為拍的《蘋果》電影。第三行還是講手機,第四行” 千克、大米、蘋果…”,這個是講水果。 所以系統(tǒng)對”蘋果” 給出了多義詞的解釋。我們改一下輸入,比如說輸入”蘋果大尺度”,我們會發(fā)現這時候排在第一位不再是蘋果手機,排在第一位是范冰冰《蘋果》電影。從語義排序來說,傳統(tǒng)的排序處理方式很難發(fā)現這個語義是跟電影相關的。如果把輸入修改為”蘋果價格”,我們發(fā)現,這個系統(tǒng)排在第一位就是蘋果手機。

最后一個例子”莫代爾”,Peacock 輸出的第一個語義是什么?”內衣、飽暖、性感…”, 之前我并懂這個詞,這個詞我們在網絡上搜一下才發(fā)現,莫代爾是一種內衣的材料,一般男性都不太清楚,女性可能知道。所以對于一些長尾語義,系統(tǒng)也能挖掘出來。

總體上這是我們系統(tǒng)做的事,我們把系統(tǒng)命名為Peacock,孔雀,原因我們是覺得互聯網需要挖掘長尾的語義,主題模型能夠突破傳統(tǒng)處理的一些限制,挖掘數據里面深層的隱含語義。這個系統(tǒng)是由王益博士主導設計的,我們團隊從2010年開始陸續(xù)折騰了四年,在這個方向有很大投入。

接下來我們講一下主題模型一些背景。在座的來自各行各業(yè),有可能有人不太清楚什么是隱含主題模型,我用幾張幻燈片介紹一下主題模型背后的含義。傳統(tǒng)的文本建模,譬如語言模型建模,基本假設是一個詞按照概率跳躍到下一個詞再跳躍到下一個詞,這種 NGram模型解決語音識別、機器翻譯的時候非常有效。另外一種文本建模的方式就是隱含主題模型,這個假設是怎么樣的?是說人寫文章的時候其實先設定主題,然后由主題生成詞的,而不是第一個詞生成下一個詞。舉一個例子,假設一個記者想寫一篇文章報道我們技術大會,文章可能有不同的幾個主題,我們把不同的主題理解為用詞的不同,講到計算機這個主題,可能會用到”內存、硬盤、CPU、編程語言、C++ …”等這些詞,講到晚宴這個主題的時候,可能會用到 “晚宴、酒…” 這些詞。 在建模的時候,主體模型認為,不同的主題是用詞的概率分布來描述的。

基于上面的假設,我們實際上是使用一個三層結構(幻燈片上的)在寫文章的:黑節(jié)點代表文檔,中間的不同顏色節(jié)點是不同的主題, 藍色節(jié)點代表詞。每個詞在文檔中的生成過程是:文檔先選定一個主題,然后由主題選定一個詞,這就是最傳統(tǒng)的主題模型。這里面問題是這樣的:我們做了這個模型假設以后,其實我們觀察到是文檔和詞,左邊和右邊的節(jié)點是我們觀察到的,中間這一層節(jié)點是隱含層我們觀察不到。文檔和主題之間的邊上有概率分布,主題和詞之間的邊上也有概率分布,每一條邊粗細的區(qū)分意思是說概率不一樣。

這個模型中我們假設每一條邊表示一個概率值,對應一個模型參數。 這個是傳統(tǒng)頻率派的模型,叫 PLSA 模型,在貝葉斯統(tǒng)計理論框架下,任何一個參數都是隨機變量,每一個概率邊對應的模型參數都有一個先驗分布,引入這個先驗后PLSA模型就被改造成了LDA 模型。在主題模型中,整個文檔生成過程就是走概率路徑選詞的過程。譬如,這個詞可以從紅色這條路徑生成,也可以從綠色、藍色這條路徑走。如果說文檔生成的時候,中間的隱含主題層能夠被觀察到,模型訓練實際上就變得特別簡單:參數預估的時候統(tǒng)計數數就行了,把數數出來頻率計數放在每條邊上,最后做一個 Normalization 就變成一個參數概率預估值。

問題是中間的隱含層是觀察不到的,觀察不到的時候應該怎么做?這個模型怎么訓練?數學家給我們提供了一種漂亮的方式:分三步就可以把模型訓練出來。

第一步,中間的隱含主題我們不知道,那首先每個詞的主題隨機給。譬如第一篇文章,我們讓第一個詞走紅色這條路徑生成出來,第二個詞也走紅色路徑,第三個詞走藍色路徑,每一個詞走哪個路徑先隨機給。隨機給完以后我們可以數數了。左邊的邊上數出文檔到主題的計數,右邊的邊上數出主題到詞的計數,有了這些計數就可以估計模型的兩類參數:文檔到主題的概率值和主題到詞的概率值。于是每一條邊上都有模型參數的概率估計值。

第二步,就是重新的采樣每個詞對應的主題,物理含義就是按照概率分布重新走路徑。對每一個詞我重新選一條路徑,第一個詞剛開始走紅色這條路徑,現在評估一下走紅色這個路徑好不好,這個詞有三條路徑走到這里,走紅色、綠色、藍色,我們把三條路徑概率都算出來,原來走紅色的路徑我重新采樣之后變成走藍色的這條路徑。整個模型訓練里面就是對每一個詞重新走一下路徑,如果原來走紅色現在走藍色了,紅色路徑的頻率計數減1,藍色路徑變成加1。第三步,重復上面的采樣過程,這直到模型收斂。 只要不斷簡單迭代每一個詞,確定一下應該走哪個路徑,然后整個語料大約迭代200遍,這個模型就能收斂,非常簡單。所以這個模型訓練我們其實做什么事情?每一個詞我們只要隨機給完以后,我們對每一個詞的主題做重新的采樣,確定一下原來路徑好不好,不好我就調整一下,唯一做的事情就是在所對應的路徑的邊的上做統(tǒng)計計數,這個就是LDA 主題模型的直觀解釋。

就是這么一個簡單的模型要把它做大規(guī)模并不容易。去年之前沒有人把這個模型中間層做大,做到100萬的主題,我們實際的工業(yè)應用中遇到了很多問題,我們團隊遇到很多的問題,有三個問題我們列在這里。

第一個問題就是如何提升采樣的速度,也就是說你從一條路徑換到另外一條路徑的時候,換的速度太慢了,我們需要有一個更好的算法,把這條路徑切換到另一條路徑。傳統(tǒng)的算法里面,我要算每一條路徑的概率值,然后從中挑一個路徑,如果有100萬個主題就需要一百萬次計算,這個太慢了,工程上受不了。

第二個如何支持大數據大模型,我們互聯網都是以億、百億論,左邊文檔是億級,右邊詞匯是百萬級,中間我們希望是百萬級,兩年前學術界最多做到一萬,當時我們團隊開發(fā)Peacock 的時候,定位就是說我們做到一百萬主題。

第三個問題就是說如何提升模型的質量,我們做工業(yè)的應用一定把這個模型質量提升,超參數 α和β在模型質量提升中有重要影響。

整個Peacock對這三個問題的解答。第一個對于速度,我們用了一個新的算法叫做SparseLDA,速度可以比標準算法快30倍;第二個怎么支持大數據大模塊,我們說矩陣分塊并行計算。我們支持中間的隱層達到100萬個; 第三個問題是模型質量問題,每一個迭代中我們對α和β做一些優(yōu)化,后期我們做細節(jié)討論會對模型質量有很大提升。


第一個問題我展開講一下,標準LDA采樣,如果有100萬個主題我要做100萬次計算,但是一個文檔通常是10 個詞左右,你去隨機化的時候每一個詞打一個顏色也就是你這個文檔有十幾個顏色,這是sparse的結構,利用這個 sparse 的結構就可以大大提升計算速度,于是工程應用上就不是問題了。 當然現在 SparseLDA 已經不是最快的算法了,今年研究界又一次把采樣算法提升了。

第二個問題是我們有十億篇文檔、百萬的詞匯,百萬的主題,我們怎么做模型的并行和數據的并行。我們把整個的數據用一個矩陣來表示,我們希望去做數據并行和模型并行,數據并行上在機器學習界早就解決了問題,簡單的做法是,整個數據并行的過程當中,數據分塊以后每一個數據生成局部模型,然后歸并為一個全局模型,最后把全局模型回傳回來更新每一個局部模型。這里面有一個問題有可能我們模型太大了,無法存在單機的內存里。所以我們要考慮對模型也并行化。 我們做一個更好的設計就是把模型和數據同時做,切片成 3*3 九宮格的格式,然后我們按照網格對角線的方式進行并行,所以這時候我們發(fā)現至少三個worke可以并行工作不相互干擾,沒有任何加鎖的困擾。我們現在在這邊實際上畫了三個,在實際的過程當中把數據和模型都切成N份。這條對角線上的三個可以并行工作,同樣第二條對角線和第三條對角線上的worker 也是可以并行工作的。所以這就大大提高了計算的并行性,提升了計算效率。

第三個問題我們講模型質量的優(yōu)化,標準LDA訓練過程中,對于α和β的數參是人工指定的,譬如α= 0.01。 這個代表什么含義?我們做模型訓練的時候實際上對每條邊做頻率計數,數完以后,如果說一條邊沒有計數那么這個概率就是零。不過在貝葉斯學派認為這個不應該是零,應該填一個很小的值做一個概率平滑,我們可以填一個0.01很小的數值,這樣這個路徑還是走得通的,這個走得通代表模型具有探索能力。α和β在模型中就是起了這樣的作用。給一個α= 0.01使得模型有探索的能力,會探索這個路徑好不好,下次更新模型,這個路徑好就把老的丟掉了,未來可以重新不斷的走這個更好的路徑,好的路徑概率質量越來越高,差的路徑概率越來越低,于是模型質量有自我提升的能力。每個訓練迭代中我們對α做一個優(yōu)化做一個最大似然估計,然后可以觀察到整個模型質量非常大的提升。

我最后一部分講一下Peacock在騰訊業(yè)務中的應用,我們把隱含主題模型應用到了騰訊的多個業(yè)務中。 騰訊有大量的用戶數據,我們在廣點通做用戶行為的挖掘,從兩個角度看用戶行為數據,第一個傳統(tǒng)的NLP的角度,文本處理的角度;第二個從推薦系統(tǒng)的角度。從文本的角度,我們把Peacock輸出放到每個文本里面,使得每個文本可以表示出更好的語義特征,用新的語義特征處理文本的相似度計算,效果會好得多。在騰訊里面我們有NLP的工具,我們開發(fā)分詞,我們同時要做分類,topic可以認為是一種聚類,把 topic 加到模型中作為特征,提升整個語義處理的能力。在實際業(yè)務中的應用,我們曾經優(yōu)化過廣告相關性,把 topic 加到整個相關性計算中,搜索的相關性準確度提升很顯著。

另外一點從推薦系統(tǒng)角度理解語義挖掘。騰訊業(yè)務中的一個更大的矩陣就是QQ到QQ群矩陣,預處理之后的規(guī)模大約是 7億X2億。我們用 Peacock 分解這個大矩陣。 可以發(fā)現分解出來的很多主題是有意義的。 在這里我們沒有做任何文本的處理,我們按照用戶加入QQ群的拓撲結構鏈接關系來做挖掘的。 我們看這3個挖掘到的主題的含義, 這是關于股票的,這是關于游戲的,這些是關于媽媽群的,語義都非常明確。

最后我們再談一些QQ群的應用。我們把 Peacock分解出來的一些主題作為特征,加入分類器中進行訓練,顯著提升分類效果。 Peacock 在QQ群的應用中,最后講一點是 QQ 群推薦。 最早QQ群推薦是基于朋友關系鏈的方式做的,即把你的朋友喜歡的 QQ 群推薦給你?,F在我們用推薦系統(tǒng)的思路,基于Peacock做 QQ-QQ群矩陣分解,然后利用分解后的矩陣做推薦計算。 線上實驗效果非常好,原來點擊率本來不低可以到20%,我們優(yōu)化以后提高了接近3 倍。

最后簡單總結一下,LDA 是簡單、優(yōu)雅、實用的模型,我們實現Peacock 就是希望這個模型能夠應對當今互聯網的大數據,同時把它推向產品應用,謝謝!

End.

免責聲明:本網站內容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網站出現的信息,均僅供參考。本網站將盡力確保所提供信息的準確性及可靠性,但不保證有關資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網站對有關資料所引致的錯誤、不確或遺漏,概不負任何法律責任。任何單位或個人認為本網站中的網頁或鏈接內容可能涉嫌侵犯其知識產權或存在不實內容時,應及時向本網站提出書面權利通知或不實情況說明,并提供身份證明、權屬證明及詳細侵權或不實情況證明。本網站在收到上述法律文件后,將會依法盡快聯系相關文章源頭核實,溝通刪除相關內容或斷開相關鏈接。

2015-01-09
廣點通背后的大數據技術秘密——大規(guī)模主題模型建模及其在騰訊業(yè)務中的應用(附PPT)
相關閱讀:

長按掃碼 閱讀全文