入門GPT | 詞的向量表示(Word2Vec和Embedding)
在自然語言處理(NLP)領域,我們面臨的第一個挑戰就是如何讓計算機理解人類的語言。
計算機不認識漢字或字母,它們只懂數字。
因此,我們需要一種方法,將詞語轉換成計算機可以處理的數字形式。
1. 什么是詞向量?
我們不能直接把"蘋果"這兩個字輸入到機器學習模型中。模型無法進行任何計算。我們需要先把它變成一組數字。
早期的方法
早期自然語言處理方法,如獨熱編碼和詞袋模型,雖然對某些機器學習任務有用,但并不能捕捉到詞的意義或上下文信息。這意味著潛在的關系,如語境相近性,無法在詞集合中捕捉到。
例如,獨熱編碼無法捕捉到"狗"和"貓"都指的是經常在家庭寵物上下文中討論的動物這類簡單關系。這類編碼通常為簡單的自然語言處理任務提供了基準(例如,電子郵件垃圾郵件分類器),但對于更復雜的任務,如翻譯和語音識別,則缺乏足夠的復雜性。
本質上,這些傳統的自然語言處理方法并不能捕捉詞組之間語法(結構)和語義(意義)的關系,因此它們是以一種非常簡單的方式來表示語言。
現代的方法:分布式表示 (Distributed Representation)
為了解決以上問題,研究者們提出了"分布式表示"的思想。這種方法不再使用稀疏的高維向量(如獨熱編碼),而是用一個稠密的、低維的向量來表示一個詞,這就是詞向量,或者叫詞嵌入(Word embedding)
分布式表示 (Distributed Representation) 是?種表示?法,它將離散的符號(如單詞)映射到連續的向量空間中。在這個空間中,每個維度不是對應單個符號,?是表示符號的某種特征或屬性。分布式表示通過捕獲單詞之間的相似性和關系,能更好地描述和處理?然語?數據。
分布式表示這個概念最早可以追溯到1986年,當時,杰弗?·?頓、?衛·魯梅爾哈特和羅納德· 威廉姆斯在?篇名為《Learning representations by back-propagating errors》(通過反向傳播誤差進?表示學習)的論?中描述了?種通過反向傳播(backpropagation)算法訓練多層神經?絡的?法,這種?法使得神經?絡能夠學到輸?數據的分布式表示。
然?,分布式表示很晚才在NLP領域得到應?。20世紀90年代,約書亞·本吉奧和其他研究?員開始嘗試將神經?絡應?于詞匯和句?表示的學習,推進了神經?絡語?模型的發展,以及后來的Word2Vec等詞嵌?技術的出現。
在稀疏向量中,?部分元素的值為0,只有少數元素的值?零。稀疏向量通常?于表示?維數據,其中許多維度的值為零。
詞袋模型就是?種稀疏向量表示。在詞袋模型中,每個?檔??個向量表示,向量的?度等于詞匯表中的詞數量,向量的每個元素表示相應詞在?檔中出現的次數。由于?部分單詞可能不會出現在給定?檔中,因此詞袋模型中的向量通常是稀疏的。?我們常?的One-Hot編碼,當然更是稀疏了,每?個One-Hot編碼中,都有?量的0,?只有?個1。
稠密向量中的元素?部分為?零值。稠密向量通常具有較低的維度,同時能夠捕捉到更豐富的信息。Word2Vec就是?種典型的稠密向量表示。稠密向量能夠捕捉詞與詞之間的語義和語法關系,使得具有相似含義或相關性的詞在向量空間中距離較近。
相比之下,詞向量將單詞表示為多維連續的浮點數,其中語義相似的單詞被映射到幾何空間中的鄰近點。
簡單來說,一個詞向量是一行實數值,其中每個數值捕捉單詞意義的一個維度,而語義相似的單詞具有相似的向量。
這意味著像輪子和發動機這樣的詞應該與汽車有相似的詞向量(因為它們的意義相似),而香蕉則應該相距甚遠。換句話說,語義上相似的詞會在一個鄰近的向量空間中被映射。
將單詞表示為向量的美妙之處在于,它們可以應用于數學運算。例如,我們可以對向量進行加減運算——這里的一個經典例子是通過使用詞向量,我們可以確定:
king - man + woman = queen
我們可以從"king"(即男性)的詞向量中減去一個含義,再加上另一個含義(女性),從而顯示這個新的詞向量(king - man + woman)與"queen"的詞向量最為接近。
詞向量中的數字代表該詞在各個維度上的分布權重。簡單來說,每個維度代表一個含義,詞在該維度上的數值權重反映了其與該含義的相關性。因此,詞的語義是嵌入在向量的各個維度中的。
那么,我們如何才能得到這種神奇的詞向量呢?這就引出了 Word2Vec。
2. 什么是 Word2Vec?
Word2vec 是自然語言處理(NLP)中用于獲取詞向量表示的技術。這些向量通過周圍詞匯來捕捉詞義信息。word2vec 算法通過建模大規模語料庫中的文本來估算這些表示。一旦訓練完成,此類模型可以檢測同義詞或為不完整句子提供額外詞匯建議。
Word2vec 是在 2013 年由 Mikolov 領導的谷歌研究團隊創建、專利并發布的,基于兩篇論文
《Efficient Estimation of Word Representations in Vector Space》:???https://arxiv.org/abs/1301.3781??
《Distributed Representations of Words and Phrases and their Compositionality》:???https://arxiv.org/abs/1310.4546??
Word2vec 可以使用兩種模型架構來生成詞的分布式表示(distributed representations):CBOW 和 Skip-gram。
使用 Word2vec 算法創建的嵌入向量相比于早期算法(例如使用 n-grams 和潛在語義分析的算法)具有一些優勢。
Word2vec 將一個詞表示為捕捉詞間關系的高維數字向量。特別是,出現在相似上下文中的詞會被映射到通過余弦相似度衡量的鄰近向量。這表明詞之間的語義相似程度,例如 walk 和 ran 的向量相近,"but"和"however"的向量相近。
這個算法?以前的?法更加?效,能夠輕松地處理?規模的?本數據。因此,Word2Vec迅速流?起來。
截至 2022 年,傳統的 Word2vec 方法被描述為"過時"。
基于Transformer的模型,如 ELMo 和 BERT,在類似于 Word2vec 的詞嵌入模型上增加了多個神經網絡注意力層,已被認為是自然語言處理領域的最先進技術。
3. CBOW (Continuous Bag-of-Words) 連續詞袋模型
CBOW 的目標是根據上下文來預測中心詞。
想象一句話:"the quick brown fox jumps over the lazy dog"。我們的任務是根據 ??fox?
?? 前后各兩個詞(即 ??{quick, brown, jumps, over}?
??)來預測 ??fox?
?。
工作原理:
CBOW模型的核心思想是利用周圍的上下文詞匯來預測目標中心詞。
具體來說,首先選擇一個中心詞(Target Word)并定義一個"窗口大小"(Window Size),比如窗口大小為2,那么對于中心詞 ??fox?
??,它的上下文(Context)就是它前后各2個詞:??{quick, brown, jumps, over}?
?。
接下來,模型將上下文中所有詞的詞向量提取出來,通過求和或平均的方式將這些上下文詞向量合并成一個綜合的上下文向量,然后將這個綜合向量輸入到神經網絡中,網絡會輸出一個概率分布,表示詞匯表中每個詞作為中心詞的可能性。
訓練過程中,模型不斷調整詞向量的參數,使得根據上下文 ??{quick, brown, jumps, over}?
?? 預測出 ??fox?
? 的概率達到最高,通過這種方式,語義相似的詞會在向量空間中聚集在一起。
4. Skip-gram (跳字模型)
Skip-gram 的思路和 CBOW 正好相反,它的目標是根據中心詞來預測上下文。
還是用那句話:"the quick brown fox jumps over the lazy dog"。
工作原理:
Skip-gram模型的核心思想是利用中心詞來預測其周圍的上下文詞匯。
具體來說,首先選擇一個中心詞作為輸入,比如 ??fox?
??,然后定義一個窗口大小(Window Size),假設窗口大小為2,那么模型需要預測的上下文就是中心詞前后各2個詞:??{quick, brown, jumps, over}?
?。
模型將中心詞 ??fox?
? 的詞向量輸入到神經網絡中,網絡會為每個可能的上下文位置輸出一個概率分布,分別預測在這些位置上出現各個詞匯的可能性。
訓練過程中,模型不斷調整詞向量的參數,使得根據中心詞 ??fox?
?? 能夠準確預測出其真實的上下文詞匯 ??{quick, brown, jumps, over}?
? 的概率達到最高。
與CBOW不同的是,Skip-gram為每個中心詞-上下文詞對都進行獨立的學習,這使得它能夠更好地處理低頻詞,因為即使是生僻詞也能通過多個上下文位置得到充分的訓練。
Word2Vec對整個?然語?處理領域產?了巨?的影響。
后來的許多詞嵌??法,如GloVe和fastText這兩種被?泛應?的詞向量,都受到了Word2Vec的啟發。
如今,Word2Vec已經成為詞嵌?領域的基?。它的出現使得更復雜的NLP任務,如?本分類、情感分析、命名實體識別、機器翻譯等,處理起來更輕松。這主要是因為Word2Vec?成的詞向量能夠捕捉到單詞之間的語義和語法關系。
值得注意的是,Word2Vec本身并不是?個完善的語?模型,盡管CBOW和Skip-Gram模型在訓練過程中學習了單詞之間的關系,但它們并未直接對整個句?的概率分布進?建模。?后來的模型,如基于循環神經?絡、?短期記憶?絡和Transformer的模型,則通過對上下?進?建模,更好地捕捉到了語?結構,從?成為更為強?的語?模型。
本文轉載自??AI取經路??,作者:AI取經路
