日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

词嵌入初探

發布時間:2023/12/13 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 词嵌入初探 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 目錄
    • 1.詞嵌入產生的背景
      • 1.1 NLP關鍵:語言的表示
      • 1.2 NLP詞的表示方法類型
        • 1.2.1 獨熱表示one-hot
        • 1.2.2 詞的分布式表示distributed representation
      • 1.3 NLP中的語言模型
      • 1.4 詞的分布表示
        • 1.4.1 基于矩陣的分布表示
        • 1.4.2 基于聚類的分布表示
        • 1.4.3 基于神經網絡的分布表示,詞嵌入(word embedding)
    • 2.什么是詞嵌入技術
      • 2.1 概念
      • 2.2 神經網絡語言模型與word2vec
        • 2.2.1 神經網絡語言模型
        • 2.2.2 word2vec與CBOW、Skip-gram
        • 2.2.3 word embedding理解
    • 3.常用的詞嵌入技術有哪些
      • 3.1 word2vec , GloVe
      • 3.2 FastText, ELMo

目錄

1.詞嵌入產生的背景

1.1 NLP關鍵:語言的表示

我們知道,如果我們需要使用計算機去處理一些信息,則必須對這個問題進行數學建模。自然語言處理也是一樣,我們如何對我們的文本進行數學建模呢?我們來看一下其他領域是如何處理的。
我們看看圖像和語音是怎么表示數據的

在語音中,用音頻頻譜序列向量所構成的matrix作為前端輸入喂給NN進行處理,good;在圖像中,用圖片的像素構成的matrix展平成vector后組成的vector序列喂給NN進行處理,good;那在自然語言處理中呢?噢你可能知道或者不知道,將每一個詞用一個向量表示出來!想法是挺簡單的,對,事實上就是這么簡單,然而真有這么簡單嗎?可能沒這么簡單。

有人提到,圖像、語音屬于比較自然地低級數據表示形式,在圖像和語音領域,最基本的數據是信號數據,我們可以通過一些距離度量,判斷信號是否相似,在判斷兩幅圖片是否相似時,只需通過觀察圖片本身就能給出回答。而語言作為人類在進化了幾百萬年所產生的一種高層的抽象的思維信息表達的工具,其具有高度抽象的特征,文本是符號數據,兩個詞只要字面不同,就難以刻畫它們之間的聯系,即使是“麥克風”和“話筒”這樣的同義詞,從字面上也難以看出這兩者意思相同(語義鴻溝現象),可能并不是簡單地一加一那么簡單就能表示出來,而判斷兩個詞是否相似時,還需要更多的背景知識才能做出回答。

那么據上是不是可以自信地下一個結論呢:如何有效地表示出語言句子是決定NN能發揮出強大擬合計算能力的關鍵前提!

1.2 NLP詞的表示方法類型

按照現今目前的發展,詞的表示分為獨熱表示one-hot、分布式表示。

1.2.1 獨熱表示one-hot

獨熱編碼和我們平時處理結構化數據中的類別型的數據一樣。假設有一個大的詞典,詞的數目為N,則我們對每個詞表示成一個N為的向量,只有在該詞出現在詞典的位置處的值為1,其余位置處的值為0.

每個詞都是茫茫 0 海中的一個 1。這種 One-hot Representation 如果采用稀疏方式存儲,會是非常的簡潔:也就是給每個詞分配一個數字 ID。比如剛才的例子中,話筒記為 3,麥克記為 8(假設從 0 開始記)。如果要編程實現的話,用 Hash 表給每個詞分配一個編號就可以了。這么簡潔的表示方法配合上最大熵、SVM、CRF 等等算法已經很好地完成了 NLP 領域的各種主流任務。

現在我們分析他的不當處。1、向量的維度會隨著句子的詞的數量類型增大而增大;2、任意兩個詞之間都是孤立的,根本無法表示出在語義層面上詞語詞之間的相關信息,而這一點是致命的。

1.2.2 詞的分布式表示distributed representation

統的獨熱表示( one-hot representation)僅僅將詞符號化,不包含任何語義信息。如何將語義融入到詞表示中?Harris 在 1954 年提出的分布假說( distributional hypothesis)為這一設想提供了理論基礎:上下文相似的詞,其語義也相似。Firth 在 1957 年對分布假說進行了進一步闡述和明確:詞的語義由其上下文決定( a word is characterized by thecompany it keeps)。

到目前為止,基于分布假說的詞表示方法,根據建模的不同,主要可以分為三類:基于矩陣的分布表示、基于聚類的分布表示和基于神經網絡的分布表示。盡管這些不同的分布表示方法使用了不同的技術手段獲取詞表示,但由于這些方法均基于分布假說,它們的核心思想也都由兩部分組成:一、選擇一種方式描述上下文;二、選擇一種模型刻畫某個詞(下文稱“目標詞”)與其上下文之間的關系。

1.3 NLP中的語言模型

語言模型即對語言建模的模型。NLP中主要包括文法語言模型和統語言模型。其中文法語言模型因為語法的復雜性,很難建模,用的比較少。目前NLP中用的比較多的是統計語言模型。

統計語言模型: 統計語言模型把語言(詞的序列)看作一個隨機事件,并賦予相應的概率來描述其屬于某種語言集合的可能性。給定一個詞匯集合 V,對于一個由 V 中的詞構成的序列S = ?w1, · · · , wT ? ∈ Vn,統計語言模型賦予這個序列一個概率P(S),來衡量S 符合自然語言的語法和語義規則的置信度。

用一句簡單的話說,就語言模型就是計算一個句子的概率大小的這種模型。有什么意義呢?一個句子的打分概率越高,越說明他是更合乎人說出來的自然句子。

就是這么簡單。常見的統計語言模型有N元文法模型(N-gram Model),最常見的是unigram model、bigram model、trigram model等等。形式化講,統計語言模型的作用是為一個長度為 m 的字符串確定一個概率分布 P(w1; w2; :::; wm),表示其存在的可能性,其中 w1 到 wm 依次表示這段文本中的各個詞。一般在實際求解過程中,通常采用下式計算其概率值:

同時通過這些方法均也可以保留住一定的詞序信息,這樣就能把一個詞的上下文信息capture住。

1.4 詞的分布表示

假設語言滿足一個分布,是以一定的概率生成某些詞的。

1.4.1 基于矩陣的分布表示

基于矩陣的分布表示通常又稱為分布語義模型,在這種表示下,矩陣中的一行,就成為了對應詞的表示,這種表示描述了該詞的上下文的分布。由于分布假說認為上下文相似的詞,其語義也相似,因此在這種表示下,兩個詞的語義相似度可以直接轉化為兩個向量的空間距離。

常見到的Global Vector 模型( GloVe模型)是一種對“詞-詞”矩陣進行分解從而得到詞表示的方法,屬于基于矩陣的分布表示。

1.4.2 基于聚類的分布表示

該方法以根據兩個詞的公共類別判斷這兩個詞的語義相似度。最經典的方法是布朗聚類(Brown clustering)

1.4.3 基于神經網絡的分布表示,詞嵌入(word embedding)

基于神經網絡的分布表示一般稱為詞向量、詞嵌入(word embedding)或分布式表示(distributed representation)

神經網絡詞向量表示技術通過神經網絡技術對上下文,以及上下文與目標詞之間的關系進行建模。由于神經網絡較為靈活,這類方法的最大優勢在于可以表示復雜的上下文。在前面基于矩陣的分布表示方法中,最常用的上下文是詞。如果使用包含詞序信息的 n-gram 作為上下文,當 n 增加時, n-gram 的總數會呈指數級增長,此時會遇到維數災難問題。而神經網絡在表示 n-gram 時,可以通過一些組合方式對 n 個詞進行組合,參數個數僅以線性速度增長。有了這一優勢,神經網絡模型可以對更復雜的上下文進行建模,在詞向量中包含更豐富的語義信息。

2.什么是詞嵌入技術

詞嵌入是一類將詞映射為低維稠密向量的技術統稱。最近比較火的是谷歌開源的word2vec技術。

2.1 概念

基于神經網絡的分布表示又稱為詞向量、詞嵌入,神經網絡詞向量模型與其它分布表示方法一樣,均基于分布假說,核心依然是上下文的表示以及上下文與目標詞之間的關系的建模。

前面提到過,為了選擇一種模型刻畫某個詞(下文稱“目標詞”)與其上下文之間的關系,我們需要在詞向量中capture到一個詞的上下文信息。同時,上面我們恰巧提到了統計語言模型正好具有捕捉上下文信息的能力。那么構建上下文與目標詞之間的關系,最自然的一種思路就是使用語言模型。從歷史上看,早期的詞向量只是神經網絡語言模型的副產品。

2001年, Bengio 等人正式提出神經網絡語言模型( Neural Network Language Model ,NNLM),該模型在學習語言模型的同時,也得到了詞向量。所以請注意一點:詞向量可以認為是神經網絡訓練語言模型的副產品。

2.2 神經網絡語言模型與word2vec

2.2.1 神經網絡語言模型

a) Neural Network Language Model ,NNLM
b) Log-Bilinear Language Model, LBL
c) Recurrent Neural Network based Language Model,RNNLM
d) Collobert 和 Weston 在2008 年提出的 C&W 模型
e) Mikolov 等人提出了 CBOW( Continuous Bagof-Words)和 Skip-gram 模型

2.2.2 word2vec與CBOW、Skip-gram

2.2.3 word embedding理解

現在,詞向量既能夠降低維度,又能夠capture到當前詞在本句子中上下文的信息(表現為前后距離關系),那么我們對其用來表示語言句子詞語作為NN的輸入是非常自信與滿意的。

另外一點很實用的建議,在你做某一項具體的NLP任務時如你要用到詞向量,那么我建議你:要么1、選擇使用別人訓練好的詞向量,注意,得使用相同語料內容領域的詞向量;要么2、自己訓練自己的詞向量。我建議是前者,因為……坑太多了。

3.常用的詞嵌入技術有哪些

3.1 word2vec , GloVe

在過去的五年里,已經提出了大量可行的詞嵌入的方法。 最常用的模型是word2vec和GloVe,它們都是基于分布假設( distributional hypothesis)的無監督方法(出現在相似語境中的詞往往具有相似的含義)。
Word2Vec:https://github.com/dav/word2vec/
GloVe:https://nlp.stanford.edu/projects/glove/

3.2 FastText, ELMo

雖然有些研究工作通過結合對語義或句法知識的監督來增強這些無監督的方法,但在2017-2018年,純粹的無監督方法獲得了有趣的進展,最著名的是:FastText(word2vec的擴展)ELMo(較先進的上下文詞向量)。

FastText
FastText由Tomas Mikolov團隊提出,word2vec框架也是他們在2013年提出的,FastText促進了對于通用詞嵌入研究的爆炸式增長。

FastText對原始word2vec向量的主要改進是包含基于字符的n-gram模型,它允許計算沒有出現在訓練數據中的單詞表示(“詞外”字)。

FastText矢量訓練速度超快,可在157種語言的Wikipedia和Crawl訓練中使用。 他們是一個很好的基準。

ELMo
最近,深層語境化詞表征(ELMo)在較好的詞嵌入技術基礎上有了顯著地提升。 它們由艾倫人工智能研究所開發,將于6月初在NAACL 2018展出。

ELMo知道很多關于文字的上下文

在ELMo中,每個單詞被賦予一個表征,這個表征是它們所屬的整個語料庫句子的函數。 嵌入是從雙層雙向語言模型(LM)的內部狀態計算出來的,因此名為“ELMo”:Embeddings from Language Models,從語言模型嵌入。

ELMo的特點:
ELMo的輸入是字符而不是單詞。 因此,可以利用子字詞單元來計算有意義的表征,即使對于詞典外的詞(如FastText)也是如此。
ELMo是由biLMs若干層激活的連接。 語言模型的不同層對單詞上的不同類型信息進行編碼(例如,詞語標注由biLSTM的較低層完成預測,而詞義消歧在較高層中更好地編碼)。 把所有層連接起來,可以自由組合各種文字表征,以提高下游任務的性能表現。

總結

以上是生活随笔為你收集整理的词嵌入初探的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。