1.3 有哪些文本表示模型?它們各有什么優缺點?
場景描述
文本是一類非常重要的非結構化數據,如何表示文本數據一直是機器學習領域的一個重要研究方向。
知識點
- 詞袋模型(Bag of Words)
- TF-IDF(Term Frequency-Inverse DocumentFrequency)
- 主題模型(Topic Model)
- 詞嵌入模型(Word Embedding)
問題:有哪些文本表示模型?它們各有什么優缺點?(難度:2顆星)
分析與解答
-
詞袋模型和N-gram模型
最基礎的文本表示模型是詞袋模型。
顧名思義,就是將每篇文章看成一袋子詞,并忽略每個詞出現的順序。具體地說,就是將整段文本以詞為單位切分開,然后每篇文章可以表示成一個長向量,向量中的每一維代表一個單詞,而該維對應的權重則反映了這個詞在原文章中的重要程度。常用TF-IDE來計算權重,公式為
T F ? I D F ( t , d ) = T F ( t , d ) × I D F ( t ) ( 1.5 ) TF-IDF(t,d)=TF(t,d)×IDF(t) (1.5) TF?IDF(t,d)=TF(t,d)×IDF(t)(1.5)
其中TF(t,d)為單詞t在文檔d中出現的頻率,IDF(t)是逆文檔頻率,用來衡量單詞t對表達語義所起的重要性,表示為
I D F ( t ) = l o g [ ( 文章總數 ) / ( 包含單詞 t 的文章總數 + 1 ) ] ( 1.6 ) IDF(t)=log[(文章總數)/(包含單詞t的文章總數+1)] (1.6) IDF(t)=log[(文章總數)/(包含單詞t的文章總數+1)](1.6)
直觀的解釋是,如果一個單詞在非常多的文章里面都出現,那么它可能是一個比較通用的詞匯,對于區分某篇文章特殊語義的貢獻較小,因此對權重做一定懲罰。N-gram模型
問題:將文章進行單詞級別的劃分有時候并不是一種好的做法,比如英文中的natural language processing(自然語言處理)一詞,如果將natural,language,processing 這3個詞拆分開來,所表達的含義與三個詞連續出現時大相徑庭。
解決:通常,可以將連續出現的n個詞(n≤N)組成的詞組(N-gram)也作為一個單獨的特征放到向量表示中去,構成N-gram模型。另外,同一個詞可能有多種詞性變化,卻具有相似的含義。在實際應用中,一般會對單詞進行詞干抽取(Word Stemming)處理,即將不同詞性的單詞統一成為同一詞干的形式。
-
主題模型
主題模型用于從文本庫中發現有代表性的主題(得到每個主題上面詞的分布特性),并且能夠計算出每篇文章的主題分布。
-
詞嵌入與深度學習模型
詞嵌入是一類將詞向量化的模型的統稱,核心思想是將每個詞都映射成低維空間(通常K=50~300維)上的一個稠密向量(DenseVector)。K維空間的每一維也可以看作一個隱含的主題,只不過不像主題模型中的主題那樣直觀。
問題:由于詞嵌入將每個詞映射成一個K維的向量,如果一篇文檔有N個詞,就可以用一個N×K維的矩陣來表示這篇文檔,但是這樣的表示過于底層。
解決:在實際應用中,如果僅僅把這個矩陣作為原文本的表示特征輸入到機器學習模型中,通常很難得到令人滿意的結果。因此,還需要在此基礎之上加工出更高層的特征。
深度學習模型
在傳統的淺層機器學習模型中,一個好的特征工程往往可以帶來算法效果的顯著提升。而深度學習模型正好為我們提供了一種自動地進行特征工程的方式,模型中的每個隱層都可以認為對應著不同抽象層次的特征。從這個角度來講,深度學習模型能夠打敗淺層模型也就順理成章了。
卷積神經網絡和循環神經網絡的結構在文本表示中取得了很好的效果,主要是由于它們能夠更好地對文本進行建模,抽取出一些高層的語義特征。與全連接的網絡結構相比,卷積神經網絡和循環神經網絡一方面很好地抓住了文本的特性,另一方面又減少了網絡中待學習的參數,提高了訓練速度,并且降低了過擬合的風險。
參考文獻:
《百面機器學習》 諸葛越主編
出版社:人民郵電出版社(北京)
ISBN:978-7-115-48736-0
2022年8月第1版(2022年1月北京第19次印刷)