機器學習-話題模型

2021-01-10 騰訊網

自然語言處理

自然語言處理(英語:Natural Language Processing,縮寫為NLP)是人工智慧和語言學領域的分支學科。此領域探討如何處理及運用自然語言;自然語言處理包括多方面和步驟,基本有認知、理解、生成等部分。

自然語言認知和理解是讓電腦把輸入的語言變成有意思的符號和關係,然後根據目的再處理。讓AI理解人類,應用有理解意圖,解析語義,識別情緒,搜索推薦

自然語言生成系統則是把計算機數據轉化為自然語言。讓AL能被人類理解,應用有文本摘要,情感生成,話題展開,情感對話

研究方向:

文本預處理

文本預處理的步驟:

文本提取。對於一些開放語料庫,可能有其獨特的數據格式,需要我們按照其提示編寫代碼獲取語料。對於一些我們自己獲得的語料,我們需要將其轉化為純文本格式。

分詞。分詞就是我們把整個文檔集中的文檔劃分成一個個的詞語,形成我們的語料庫。然後使用不同的詞來描述不同的文檔。

去除停用詞。分詞完成後,有些詞是無意義的,我們稱之為停用詞,在處理中我們將其去掉。

使用詞標籤(id)來表示文檔。 自然語言處理中,文檔的表示不是人們看到的單詞的形式,而是用一個個的標籤(id)來表示詞,然後組成一篇文檔。

詞袋模型

詞袋模型(Bag-of-words model)是個在自然語言處理和信息檢索(IR)下被簡化的表達模型。此模型下,一段文本(比如一個句子或是一個文檔)可以用一個裝著這些詞的袋子來表示,這種表示方式不考慮文法以及詞的順序。最近詞袋模型也被應用在電腦視覺領域。

詞袋模型被廣泛應用在文件分類,詞出現的頻率可以用來當作訓練分類器的特徵。

以下是兩個簡單的文件:

(1) John likes to watch movies. Mary likes movies too.

(2) John also likes to watch football games.

基於以上兩個文件,可以建構出下列清單:

["John","likes","to","watch","movies","also","football","games","Mary","too"]

此處有10個不同的詞,使用清單的索引表示長度為10的向量:

(1) [1, 2, 1, 1, 2, 0, 0, 0, 1, 1]

(2) [1, 1, 1, 1, 0, 1, 1, 1, 0, 0]

每個向量的索引內容對應到清單中詞出現的次數。

舉例來說,第一個向量(文件一)前兩個內容索引是1和2,第一個索引內容是"John"對應到清單第一個詞並且該值設定為1,因為"John"出現一次。

Q1、為什麼要去除重複的詞? 沒有

Q2、為什麼會造成語義丟失?此向量表示法不會保存原始句子中詞的順序。

主題模型

關鍵詞匹配文檔檢索出現的問題

問題一:同義詞問題

我們知道,無論在英語還是漢語中,一個詞語或一個單詞都存在同義詞,比如愉悅和開心,那麼通過關鍵詞檢索愉悅,就只能找到包含愉悅這兩個字的文檔,而不能找到包含開心但不包含愉悅的文檔。撇開同義詞,當我們檢索賈伯斯,我們可能也想檢索到關於iphone的相關信息,但僅通過關鍵詞匹配,不能檢索到。

使用LSA模型可以解決。

問題二:一詞多義問題

我們知道,無論在英語還是漢語中都存在一詞多義問題,比如「蘋果」,到底指的是一種水果還是一個手機品牌,除非給定上下文語境否則我們不得而知。這樣僅通過關鍵詞匹配,檢索到的含義可能不是我們想要的。撇開一詞多義,文檔中可能存在很多詞語屬於拼寫打字錯誤(粗心)、誤用(語文沒學好)、巧合(比如「和服裝」,這裡的和服不是一個詞語,但關鍵詞匹配會檢索到),更甚,文檔中可能存在大量廣告信息,人為植入這些關鍵詞,這些都不是我們想要的。

使用PLSA和LDA模型可以解決。

LSA潛在語義分析模型

潛在語義分析(LSA)是自然語言處理中的一種技術,目的是要找出詞(terms)在文檔和查詢中真正的含義,也就是潛在語義,通過產生與文檔和術語相關的一組概念來分析一組文檔與它們包含的術語之間的關係。LSA假設意義上接近的單詞將出現在相似的文本中(分布式假設)。

每個段落包含單詞計數的矩陣(行代表唯一的單詞,列代表每個段落)是由一大段文本和奇異值分解(SVD)的數學技術構成的用於減少行數,同時保留列之間的相似性結構。然後通過取任意兩行形成的兩個矢量(或兩個矢量的歸一化之間的點積)之間的角度的餘弦來比較單詞。接近1的值表示非常相似的單詞,而接近0的值表示非常不相似的單詞。

LSA試圖利用文檔中隱藏的潛在的概念來進行文檔分析與檢索,能夠達到比直接的關鍵詞匹配獲得更好的效果。該方法和傳統向量空間模型(vector space model)一樣使用向量來表示詞(terms)和文檔(documents),並通過向量間的關係(如夾角)來判斷詞及文檔間的關係;而不同的是,LSA將詞和文檔映射到潛在語義空間,從而去除了原始向量空間中的一些「噪音」,提高了信息檢索的精確度。

步驟為:

1.分析文檔集合,建立Term-Document矩陣。

2. 對Team-Document矩陣進行奇異值分解。

3. 對SVD分解後的矩陣進行降維,也就是奇異值分解一節所提到的低階近似。

4. 使用降維後的矩陣構建潛在語義空間,或重建Term-Document矩陣。

左奇異向量表示詞的一些特性,右奇異向量表示文檔的一些特性,中間的奇異值矩陣表示左奇異向量的一行與右奇異向量的一列的重要程序,數字越大越重要。

PLSA概率潛在語義分析

語義分析問題中,存在同義詞和一詞多義這兩個嚴峻的問題,LSA可以很好的解決同義詞問題,卻無法妥善處理一詞多義問題。

PLSA則可以同時解決同義詞和一詞多義兩個問題。

PLSA(Probabilistic Latent Semantic Analysis, 概率潛在語義分析)由LSA發展而來。LSA使用線性代數方法,對document-word矩陣進行SVD分解。PLSA則使用了一個概率圖模型,引入了一個隱變量topic(可以認為是文檔的主題),然後進行統計推斷。

假設 Z 的取值共有 K 個。PLSA模型假設的文檔生成過程如下:

以 p(di) 的概率選擇一個文檔 di

以 p(zk|di) 的概率選擇一個主題 zk

以 p(wj|zk) 的概率生成一個單詞 wj

根據圖模型,我們就得到觀測數據的聯合分布:

由於P(di)可事先計算求出,而P(ωj|zk)和P(zk|di)未知,所以φ=(P(ωj|zk),P(zk|di))就是我們要估計的參數(值),通俗點說,就是要最大化這個φ 。

最大化目標後,我們得到兩個矩陣 λ和θ,"λ" _?k表示參數 p(zk|di),"θ" _??表示參數 p(wj|zk), 用 p[i,j,k] 表示隱藏變量的後驗概率 p(zk|di,wj)。

步驟:

經過統計,我們得到docement-word矩陣,行N是文檔個數,列M是單詞個數,元素是某個單詞在某篇文檔中出現的次數。在例子中,我們的N是16,M是275.

我們定義兩個矩陣 λ和 θ。 λ矩陣是i行k列的矩陣,裡面的元素是P(zk|di)的值, θ是k行j列的矩陣,裡面的元素是P(wj|zk)的值。其中,i代表文檔數,k代表主題數,j代表單詞數。分別對這兩個矩陣進行初始化和歸一化。

定義p[i,j,k]矩陣表示P(zk|di,wj)的值,元素為λik與θkj的乘積。該矩陣主要用於求解另外兩個矩陣的最大化,應用中無意義。

使用EM算法對p[i,j,k]矩陣進行最大化處理,設置迭代次數。

最後,從θ矩陣中提取每個主題的詞,從λ矩陣中提取文檔對應的主題。

3.3 LDA隱含狄利克雷分布

隱含狄利克雷分布(英語:Latent Dirichlet allocation,簡稱LDA),是一種主題模型,它可以將文檔集中每篇文檔的主題按照概率分布的形式給出。同時它是一種無監督學習算法,在訓練時不需要手工標註的訓練集,需要的僅僅是文檔集以及指定主題的數量k即可。此外LDA的另一個優點則是,對於每一個主題均可找出一些詞語來描述它。

LDA首先由Blei, David M.、吳恩達和Jordan, Michael I於2003年提出,目前在文本挖掘領域包括文本主題識別、文本分類以及文本相似度計算方面都有應用。

LDA是一種典型的詞袋模型,即它認為一篇文檔是由一組詞構成的一個集合,詞與詞之間沒有順序以及先後的關係。一篇文檔可以包含多個主題,文檔中每一個詞都由其中的一個主題生成。

其中,φ表示詞分布,θ表示主題分布,α是主題分布θ的先驗分布(即Dirichlet分布)的參數,β是詞分布φ的先驗分布(即Dirichlet分布)的參數,N表示文檔的單詞總數,M表示文檔的總數。

所以,對於一篇文檔d中的每一個單詞,LDA根據先驗知識確定某篇文檔的主題分布θ,然後從該文檔所對應的多項分布(主題分布)θ中抽取一個主題z,接著根據先驗知識確定當前主題的詞語分布φ,然後從主題z所對應的多項分布(詞分布)φ中抽取一個單詞w。然後將這個過程重複N次,就產生了文檔d

綜上,LDA真的只是PLSA的貝葉斯版本,文檔生成後,兩者都要根據文檔去推斷其主題分布和詞語分布(即兩者本質都是為了估計給定文檔生成主題,給定主題生成詞語的概率),只是用的參數推斷方法不同,在pLSA中用極大似然估計的思想去推斷兩未知的固定參數,而LDA則把這兩參數弄成隨機變量,且加入dirichlet先驗。

所以,PLSA跟LDA的本質區別就在於它們去估計未知參數所採用的思想不同,前者用的是頻率派思想,後者用的是貝葉斯派思想

相關焦點

  • Quora是如何使用機器學習的?
    作者丨Nikhil Dandekar譯者 丨 Teixeira10譯者註:在本文中,作者從提問,解答,閱讀等方面介紹了Quora在2017年是如何將機器學習應用於網站的,同時給出了使用的模型。以下為譯文:2015年,公司的工程副總裁Xavier Amatriain,關於如何在Quora上使用機器學習給了一個很好的答案。
  • 想入門機器學習?機器之心為你準備了一份中文資源合集
    機器之心整理參與:機器之心編輯部機器學習日益廣為人知,越來越多的計算機科學家和工程師投身其中。不幸的是,理論、算法、應用、論文、書籍、視頻等信息如此之多,很容易讓初學者迷失其中,不清楚如何才能提升技能。本文作者依據自身經驗給出了一套快速上手的可行方法及學習資源的分類匯總,機器之心在其基礎上做了增益,希望對讀者有所幫助。
  • 手把手跟我入門機器學習(1)——手寫體識別模型
    首先,簡單介紹一下上面提到的各個話題的範圍 (Domain),人工智慧 (Artifitial Intelligence) 是最大的話題,如果用一張圖來說明的話:所以監督學習最大的特點就是有訓練集,告訴模型什麼是對的,什麼是錯的。非監督學習 (Unsupervised Learning): 例如網上購物的推薦系統,模型會對我的瀏覽記錄進行分類,然後自動向我推薦相關的商品。非監督學習最大的特點就是沒有一個標準答案,比如水杯既可以分類為日用品,也可以分類為禮品,都沒有問題。
  • 京東AI研究院獲QuAC機器閱讀理解競賽冠軍,模型能力業界領先
    機器之心發布機器之心編輯部近日,在史丹福大學、華盛頓大學、Allen AI 和 UMass 聯合發起的機器閱讀理解(QuAC[1] (Choi et al., 2018))比賽上,京東 AI 研究院語音語言實驗室提出的 EL-QA 模型(Single Model)登頂 QuAC Leaderboard,全部三項指標均獲得第一名。
  • 詳解:估值18億美元的新晉獨角獸美國知乎,如何使用機器學習?
    在過去一年裡,Quora除了繼續擴大用戶規模之外,還開始了商業化嘗試,機器學習技術在這家公司業務上的應用,也增加了很多,不僅已有的機器學習應用用上了更大更好的模型,機器學習的使用領域也有擴張。那麼,Quora現在是怎樣使用機器學習的?
  • 數學的神奇,人工智慧機器為什麼能學習,到底怎麼做的?
    最近這幾年,人工智慧這個領域特別引人注目,它能讓機器自己學習知識並增長其智力,處理視覺圖像信息,並最終輸出人們所需要的結果。這項技術的應用領域十分廣泛,包括醫學圖像分析, 汽車無人駕駛,氣象數據分析與預報,聲音識別交互,農業智能化管理等。機器為什麼能學習? 它究竟是怎麼學的? 這一切都要回歸到數學。
  • 【新書推薦】《機器學習及R應用》目錄
    編者薦語:  《機器學習及R應用》終於上市啦!不少讀者想知道《機器學習及R應用》的目錄。這裡附上詳細的二、三級目錄清單,讓我們先睹為快!  以下文章來源於計量經濟學及Stata應用,作者愛計量。  昨日推文引起極大反響,不少讀者想知道《機器學習及R應用》的目錄。這裡附上詳細的二、三級目錄,以饗讀者。
  • 機器學習主要的特點是模擬人類的學習過程
    近年來,機器學習領域的發展,尤其是深度學習在語音識別、圖像識別、翻譯等應用領域取得了重大突破,與量子信息技術密切相關。本文通過量子信息技術與語音識別的深度聯繫,展現了量子信息技術與語音識別的有機結合,揭示量子信息技術在語音識別方面的潛力,有助於提升量子信息技術在語音識別領域的有效性。現在現在是機器學習的爆發年代,從智慧型手機的大火開始,機器學習開始受到了非常多的追捧。
  • 當模型預測控制遇見機器人學習
    喻超深藍學院作者簡介:作者喻超,加拿大滑鐵盧大學在讀博士,主要研究方向:基於機器學習的模型預測控制技術,及其在車輛動力學、自動駕駛規劃和控制領域的應用,碩士畢業於上海交通大學,擁有8年電動汽車控制系統開發工作經驗,曾擔任上汽通用汽車電氣化控制架構開發經理,美國通用汽車高級控制系統工程師
  • 一文就讀懂機器學習及其在遙感中的應用
    本文基於機器學習,細細研讀了其在遙感中的應用。  1 .工作介紹  機器允許我們在短時間內進行複雜的計算。這導致出現了一個完全不同的研究領域,這個領域沒有被探索:教學機器通過觀察模式來預測可能的產生的結果。機器學習正在被用來解決各種各樣的問題,從股票市場預測到醫療配方的合成。
  • 人工智慧(AI) 機器學習(ML) 深度學習(DL),到底他們哥仨是什麼關係?
    原標題:人工智慧(AI) 機器學習(ML) 深度學習(DL),到底他們哥仨是什麼關係?該程序能夠通過觀察當前位置,並學習一個隱含的模型,從而為後續動作提供更好的指導。塞繆爾發現,伴隨著該遊戲程序運行時間的增加,其可以實現越來越好的後續指導。通過這個程序,塞繆爾駁倒了普羅維登斯提出的機器無法超越人類,像人類一樣寫代碼和學習的模式。
  • 生成式模型入門:訓練似然模型的技巧 - 機器之心Pro
    機器之心編譯參與:李志偉、Geek AI生成模型不止有 GAN,本教程討論了數學上最直接的生成模型(易處理的密度估計模型)。讀罷本文,你將了解如何定量地比較似然模型。散度最小化:生成模型的一般框架生成模型(其實都是統計機器學習模型)旨在從一些(可能是條件的)概率分布 p(x) 中取樣本數據,並學習對 p(x) 進行近似的模型 pθ(x)。建模過程使我們可以基於給定的原始數據外推觀察到的信息。
  • 第四範式陳雨強:提高機器學習維度的兩大法寶
    VC維理論是由Vapnik和Chervonenkis於1960年代至1990年代建立的統計學習理論,它反映了函數集的學習能力——VC維越大則模型或函數越複雜,學習能力就越強。舉個例子,如果人類的智商水平可以用大腦的腦細胞數來衡量,那麼機器的智商水平就可以用VC維來衡量,即超高智商的人工智慧,需要超高維度的機器學習模型來實現。
  • 機器學習會取代數學建模嗎?讓我們假設一個微積分落後但深度學習...
    在機器模型盛行的當代,數學建模是否已無立足之地了呢?  對於那些擅長於用微分方程、概率論解決問題的數學家們來說,素有「黑盒子」之稱機器學習往往是要被踢到鄙視鏈底端的。  但是,在與各行各業中,絕大多數公司(小到初創公司,大到國際巨鱷)都在尋求運用機器學習的方法。隨著企業不斷地將機器學習融入其文化與組織中,這事也變得越來越普遍。  有意思的是,在本科和碩士教育中,數學專業內部居然也都瀰漫起了機器學習的熱潮。舉例說,牛津大學的「深度學習理論」碩士課程在其設立的第一年就被超額報名。
  • 基於機器學習的入侵檢測系統
    根據他們發現的地方,可以分為:IDS也可以根據它的行為進行分類:在列出IDS的一般限制之後,我們將討論使用機器學習的混合入侵系統。幾次真正的攻擊遠遠少於虛假警報的數量,這導致真正的威脅經常被忽視。主要目的是讓計算機在沒有人工協助的情況下學習,並相應的進行調整。機器學習算法可大致分為:監督機器學習算法:可以應用過去學到的東西來使用標記示例預測未來事件。算法分析稱為訓練數據集,用於生成推斷函數以對輸出值進行預測。經過充分的訓練,系統可以為新的輸入提供目標。
  • 第四範式入圍Forrester機器學習平臺Wave 位列前列
    AI主要由機器學習(ML)模型組成,因此選擇正確的PAML產品可幫助企業快速、規模化構建AI應用,提高企業AI生產力。Forrester也總結了PAML產品所應具備的三大能力:可為不同的團隊簡化模型開發隨著企業業務的不斷發展,AI應用場景也將從幾個擴展至數千個。為此,PAML產品應當具備適合不同團隊和角色的模型開發能力。
  • 走進機器閱讀理解的世界,飛槳開源升級版 BiDAF模型解讀
    導讀:飛槳(PaddlePaddle)致力於讓深度學習技術的創新與應用更簡單。下圖是機器閱讀理解的一個示例:作為自然語言處理領域的前沿課題,機器閱讀理解近年來一直受到學術界和工業界的廣泛關注。從學術角度看,機器閱讀理解任務可以用來衡量機器理解人類語言的綜合水平。NLP的很多傳統任務,例如詞性標註、命名實體識別、句法分析、語義角色標註、指代消解等都試圖讓機器從詞法、語義等角度理解人類語言。
  • 機器學習-貝葉斯估計
    上一節機器學習-概率論的簡單回顧2.2.3 貝葉斯規則將條件概率的定義與乘積和規則相結合,就得到了貝葉斯規則,也稱為貝葉斯定理2.2.3.1實例:醫學診斷假設你是一名40多歲的女性,你決定進行一項名為乳房 x光檢查的乳腺癌醫學檢測如果檢查呈陽性,你得癌症的機率是多少?這顯然取決於測試的可靠性。
  • CFA二級思維導圖分享:機器學習(Machine Learning)
    CFA二級思維導圖分享:機器學習(machine learning)Reading7主要了解機器學習的一些常見概念,主要分類、了解常用算法的原理及其用途。機器學習(Machine Learning)專門研究計算機怎樣模擬或實現人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的性能。從實踐的意義上來說,機器學習是一種通過利用數據,訓練出模型,然後使用模型預測的一種方法。
  • Google發布了用於機器學習應用程式的硬體加速器
    根據Google產品經理John Barrus和Zak Stone的說法,這些板可以以獨立方式使用,也可以通過專用網絡連接連結在一起以形成所謂的TPU吊艙,該TPU吊艙基本上是用於運行機器學習應用程式的多個