搜索背后的奧秘--淺談語義主題計算
搜收錄網整理 發布日期:2015/5/27 15:48:53
兩篇文檔是否相關往往不只決定于字面上的詞語重復,還取決于文字背后的語義關聯。對語義關聯的挖掘,可以讓我們的搜索更加智能化。本文著重介紹了一個語義挖掘的利器:主題模型。主題模型是對文字隱含主題進行建模的方法。它克服了傳統信息檢索中文檔相似度計算方法的缺點,并且能夠在海量互聯網數據中自動尋找出文字間的語義主題。近些年來各大互聯網公司都開始了這方面的探索和嘗試。就讓我們看一下究竟吧。
 
關鍵詞:主題模型
 
技術領域:搜索技術、自然語言處理
 
 
假設有兩個句子,我們想知道它們之間是否相關聯:
 
第一個是:“喬布斯離我們而去了。”
 
第二個是:“蘋果價 會不會降?”
 
如果由人來判斷,我們一看就知道,這兩個句子之間雖然沒有任何公共詞語,但仍然是很相關的。這是因為,雖然第二句中的“蘋果”可能是指吃的蘋果,但是由于第一句里面有了“喬布斯”,我們會很自然的把“蘋果”理解為蘋果公司的產品。事實上,這種文字語句之間的相關性、相似性問題,在搜索引擎算法中經常遇到。例如,一個用戶輸入了一個query,我們要從海量的網頁庫中找出和它最相關的結果。這里就涉及到如何衡量query和網頁之間相似度的問題。對于這類問題,人是可以通過上下文語境來判斷的。但是,機器可以么?
 
在傳統信息檢索領域里,實際上已經有了很多衡量文檔相 性的方法,比如經典的VSM(方法備注:VSM:Vector Space Model,向量空間模型)模型。然而這些方法往往基于一個基本假設:文檔之間重復的詞語越多越可能相 。這一點在實際中并不盡然。很多時候相關程度取決于背后的語義聯系,而非表面的詞語重復。
 
那么,這種語義關系應該怎樣度量呢?事實上在自然語言處理領域里已經有了很多從詞、詞組、句子、篇章角度進行衡量的方法。本文要介紹的是其中一個語義挖掘的利器:主題模型。
 
主題模型是什么?
主題模型,顧名思義,就是對文字中隱含主題的一種建模方法。還是上面的例子,“蘋果”這個詞的背后既包含是蘋果公司這樣一個主題,也包括了水果的主題。當我們和第一句進行比較時,蘋果公司這個主題就和“喬布斯”所代表的主題匹配上了,因而我們認為它們是相關的。
 
在這里,我們先定義一下主題究竟是什么。主題就是一個概念、一個方面。它表現為一系列相關的詞語。比如一個文章如果涉及到“百度”這個主題,那么“中文搜索”、“李彥宏”等詞語就會以較高的頻率出現,而如果涉及到“IBM”這個主題,那么“筆記本”等就會出現的很頻繁。如果用數學來描述一下的話,主題就是詞匯表上詞語的條件概率分布 。與主題關系越密切的詞語,它的條件概率越大,反之則越小。
 
例如:
 
【百度搜索研發部】搜索背后的奧秘--淺談語義主題計算
 
通俗來說,一個主題就好像一個“桶”,它裝了若干出現概率較高的詞語。這些詞語和這個主題有很強的相關性,或者說,正是這些詞語共同定義了這個主題。對于一段話來說,有些詞語可以出自這個“桶”,有些可能來自那個“桶”,一段文本往往是若干個主題的雜合體。我們舉個簡單的例子,見下圖。
 
【百度搜索研發部】搜索背后的奧秘--淺談語義主題計算
 
以上是從互聯網新聞中摘抄下來的一段話。我們劃分了4個桶(主題),百度(紅色),微軟(紫色)、谷歌(藍色)和市場(綠色)。段落中所包含的每個主題的詞語用顏色標識出來了。從顏色分布上我們就可以看出,文字的大意是在講百度和市場發展。在這里面,谷歌、微軟這兩個主題也出現了,但不是主要語義。 得注意的是,像“搜索引擎”這樣的詞語,在百度、微軟、谷歌這三個主題上都是很可能出現的,可以認為一個詞語放進了多個“桶”。當它在文字中出現的時候,這三個主題均有一定程度的體現。
 
有了主題的概念,我們不禁要問,究竟如何得到這些主題呢?對文章中的主題又是如何進行分析呢?這正是主題模型要解決的問題。下面我簡要介紹一下主題模型是怎樣工作的。
 
主題模型的工作原理
首先,我們用生成模型的視角來看文檔和主題這兩件事。所謂生成模型,就是說,我們認為一篇文章的每個詞都是通過“以一定概率選擇了某個主題,并從這個主題中以一定概率選擇某個詞語”這樣一個過程得到的。那么,如果我們要生成一篇文檔,它里面的每個詞語出現的概率為:
 
【百度搜索研發部】搜索背后的奧秘--淺談語義主題計算
 
上面這個式子,可以矩陣乘法來表示,如下圖所示:
 
【百度搜索研發部】搜索背后的奧秘--淺談語義主題計算
 
左邊的【百度搜索研發部】搜索背后的奧秘--淺談語義主題計算矩陣表示每篇文章中每次詞語出現的概率;中間的Φ矩陣表示的是每個主題中每個詞語出現的概率【百度搜索研發部】搜索背后的奧秘--淺談語義主題計算 ,也就是每個“桶
 
表示的是每篇文檔中各個主題出現的概率【百度搜索研發部】搜索背后的奧秘--淺談語義主題計算 ,可以理解為一段話中每個主題所占的比例。
 
假如我們有很多的文檔,比如大量的網頁,我們先對所有文檔進行分詞,得到一個詞匯列表。這樣每篇文檔就可以表示為一個詞語的集合。對于每個詞語,我們可以用它在文檔中出現的次數除以文檔中詞語的數目作為它在文檔中出現的概率【百度搜索研發部】搜索背后的奧秘--淺談語義主題計算 。這樣,對任意一篇文檔,左邊的【百度搜索研發部】搜索背后的奧秘--淺談語義主題計算矩陣是已知的,右邊的兩個矩陣未知。而主題模型就是用大量已知的“詞語-文檔”【百度搜索研發部】搜索背后的奧秘--淺談語義主題計算矩陣 ,通過一系列的訓練,推理出右邊的“詞語-主題”矩陣Φ 和“主題文檔”矩陣Θ 。
 
主題模型訓練推理的方法主要有兩種,一個是pLSA(Probabilistic Latent Semantic Analysis,概率潛在語義分析,方法備注),另一個是LDA(Latent Dirichlet Allocation,)。pLSA主要使用的是EM(期望最大化)算法;LDA采用的是Gibbs sampling方法。由于它們都較為復雜且篇幅有限,這里就只簡要地介紹一下pLSA的思想,其他具體方法和公式,讀者可以查閱相關資料。
 
pLSA采用的方法叫做EM(期望最大化)算法,它包含兩個不斷迭代的過程:E(期望)過程和M(最大化)過程。用一個形象的例子來說吧:比如說食堂的大師傅炒了一盤菜,要等分成兩份給兩個人吃,顯然沒有必要拿天平去一點點去精確稱量,最簡單的辦法是先隨意的把菜分到兩個碗中,然后觀察是否一樣多,把比較多的那一份取出一點放到另一個碗中,這個過程一直重復下去,直到大家看不出兩個碗里的菜有什么差別為止。
 
對于主題模型訓練來說,“計算每個主題里的詞語分布”和“計算訓練文檔中的主題分布”就好比是在往兩個人碗里分飯。在E過程中,我們通過貝葉斯公式可以由“詞語-主題”矩陣計算出“主題-文檔”矩陣。在M過程中,我們再用“主題-文檔”矩陣重新計算“詞語-主題”矩陣。這個過程一直這樣迭代下去。EM算法的神奇之處就在于它可以保證這個迭代過程是收斂的。也就是說,我們在反復迭代之后,就一定可以得到趨向于真實 的 Φ和 Θ。
 
如何使用主題模型?
有了主題模型,我們該怎么使用它呢?它有什么優點呢?我總結了以下幾點:
 
1)  它可以衡量文檔之間的語義相似性。對于一篇文檔,我們求出來的主題分布可以看作是對它的一個抽象表示。對于概率分布,我們可以通過一些距離公式(比如KL距離(方法備注:KL距離,是Kullback-Leibler差異(Kullback-Leibler Divergence)的簡稱,也叫做相對熵(Relative Entropy)。它衡量的是相同事件空間里的兩個概率分布的差異情況。))來計算出兩篇文檔的語義距離,從而得到它們之間的相似度。
 
2)它可以解決多義詞的問題。回想最開始的例子,“蘋果”可能是水果,也可能指蘋果公司。通過我們求出來的“詞語-主題”概率分布,我們就可以知道“蘋果”都屬于哪些主題,就可以通過主題的匹配來計算它與其他文字之間的相似度。
3) 它可以排除文檔中噪音的影響。一般來說,文檔中的噪音往往處于次要主題中,我們可以把它們忽略掉,只保持文檔中最主要的主題。
4) 它是無監督的,完全自動化的。我們只需要提供訓練文檔,它就可以自動訓練出各種概率,無需任何人工標注過程。
5) 它是跟語言無關的。任何語言只要能夠對它進行分詞,就可以進行訓練,得到它的主題分布。
綜上所述,主題模型是一個能夠挖掘語言背后隱含信息的利器。近些年來各大搜索引擎公司都已經開始重視這方面的研發工作。語義分析的技術正在逐步深入到搜索領域的各個產品中去。在不久的將來,我們的搜索將會變得更加智能,讓我們拭目以待吧。

信息網址:http://www.qjafkd.live/ziyuan/view15934.htm
相關信息
抢红包试玩 有没有软件可以打字赚钱不交佣金 大学城附近宾馆赚钱吗 延津县 农村干什么赚钱 游戏工作室大亨3游戏不赚钱 个人播主怎么赚钱 剑网3抄书哪个赚钱 赚钱和情怀哪个重要 新露谷物语刚开始怎么赚钱 yy实名认证后可以赚钱吗 做手游直播能赚钱吗 个人如何投资房地产赚钱吗 室外充气淘气水上乐园堡赚钱吗 网络吐槽赚钱 无车开滴滴赚钱吗 做树脂瓦赚钱吗 开山庄农家乐赚钱嘛