NLP 系列-3:文字向量化 - word2vec

更新於 發佈於 閱讀時間約 3 分鐘
在自然語言處理領域中,佔據核心地位的就是文字向量化的技術。先前有介紹過了經典好用的 tfidf,這次想要介紹融入了神經網路模型為基礎的word2vec(Google 2013年論文),事不宜遲,就讓我們往下看看吧
https://arxiv.org/pdf/1301.3781.pdf

目錄

  • 什麼是 word2vec?
  • word2vec 背後的直覺?
  • 如何去建立 word2vec?該怎麼用?
  • 總結


一、什麼是 word2vec?

上次介紹tfidf 時,發現tfidf 雖然簡單、好用,但也有幾個明顯缺陷,如:詞與詞之間相似性 維度爆炸、稀疏 這也是 word2vec 出現的主要原因!比如「開心」「雀躍」應該是非常類似的詞,但用 tfidf / one-hot 時,相似性將是0;而 word2vec 是將一個個詞,如「開心」「雀躍」都將其嵌入到 k 維的稠密向量,後續的相似性計算則可以改善過往為0的缺陷。['雀躍'] # [1, 0] 簡單以 2 維來示意

['開心'] # [0, 1]
# cosine similarity = 0

二、word2vec 背後的直覺?


word2vec當時想要改善的是相似性的部分,所以直覺想到的是將原先相當稀疏的向量壓縮到較小維度的稠密向量。而要達到這個概念,作者想到的是將每一個「詞」對應到一個k維的向量,再經過模型訓練,更新 k 維的對應參數,最後可以將其 k 維向量去計算相似性。而這其中背後的直覺在於:「詞」與「周圍的詞」之間是有關連的。
透過大量的文字資料去建立一個語言模型,透過預測出現詞的任務,去優化模型參數,使得「詞向量」可以表達詞與詞之間的關係。

三、如何去建立 word2vec?該怎麼用?


根據論文主要有兩種實踐方式:Skip-gram model:透過中間詞預測周圍詞。
CBOW:透過周圍詞預測中間詞。
對於實現 code 感興趣的可以到 Google 官方教程 參考!而該怎麼使用呢?假設我們已經訓練好了一個 word2vec 模型,而我們以剛剛「開心」「雀躍」為例。「開心」 -> word2vec -> k維向量「雀躍」 -> word2vec -> k維向量以文本分類(正面/負面)來說,將其當作特徵(k維)丟入下游的模型比如隨機森林,去辨識。
# pseudo code
word2vec = Word2vec(...)
vector = word2vec.predict(['開心', '雀躍', '難過'])
rf = RandomForestClassifier(...)
rf.fit(vector, [1, 1, 0])

四、總結


透過 word2vec 模型,可以得到「詞向量」,而「詞向量」聚合可以得到更高階層的「句向量」就可以搭配下游的 NLP 任務,如輿情分析、語意搜尋等任務使用,可以達到不錯的效果(詳見論文)可以發現,上游的詞向量模型與下游的 NLP 任務是獨立的,下游任務並不會改變上游訓練好的詞向量,在某些任務上可能會造成效果比沒有那麼好,這種向量固定的方式也稱為 feature-based。另外也發現,其背後的直覺、假設關係,詞與詞之間的關係是在一定的條件下,而真實的情況不一定完全符合,且沒有考慮上下文不同時,同一個詞可能代表不同意思。下一篇再介紹 BERT,如何去改良了這些缺點,也造成了一股風潮。
如果覺得文章有幫助,希望可以給我一些掌聲👏讓我更有動力繼續分享類似的主題,也歡迎提供想了解的主題唷!

參考

喜歡資料科學的朋友應該都有聽過 NLP(自然語言處理)的大名,日常生活的Gmail、Google Search、Spotify等等應用都有使用這個技術。希望透過這個系列與大家稍微分享一下我個人對於 NLP 的看法,讓我們一起探索這個有趣、迷人的領域吧!
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
資料週週New的沙龍 的其他內容
文字資料該怎麼分析? 文字屬於非結構化資料,不像正常身高、體重、年紀等是直接的數值型結構化資料,無法直接在資料科學、機器學習中使用。 因此,需要將文字轉成數值才能進行後續處理,而此轉換又稱為向量化。
文字、語言是生活中不可或缺的一部分,而隨著網路時代的開始,我們更多的活動轉往網路、手機中,而最常見的媒介就是文字(語言)了,不論是新聞、個人心得、心情分享、論文等等,都是透過文字來表達想法。而這麼多的內容,電腦是如何呈現出我們感興趣的內容呢?那首先就是需要讓電腦能夠去解讀、使用文字這種非結構化資料,
文字資料該怎麼分析? 文字屬於非結構化資料,不像正常身高、體重、年紀等是直接的數值型結構化資料,無法直接在資料科學、機器學習中使用。 因此,需要將文字轉成數值才能進行後續處理,而此轉換又稱為向量化。
文字、語言是生活中不可或缺的一部分,而隨著網路時代的開始,我們更多的活動轉往網路、手機中,而最常見的媒介就是文字(語言)了,不論是新聞、個人心得、心情分享、論文等等,都是透過文字來表達想法。而這麼多的內容,電腦是如何呈現出我們感興趣的內容呢?那首先就是需要讓電腦能夠去解讀、使用文字這種非結構化資料,
你可能也想看
Google News 追蹤
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
一份研究指出,人類在關係中外遇的機率,幾乎是所有物種當中最高,這份研究也顯示,外遇的比例竟然遠超乎我們到想像,甚至可以說是高得離譜⋯⋯
Thumbnail
這篇文章探討了分手的多種原因,特別是金錢觀念、性觀念與感情變淡等問題,並分析各自的挽回機率,透過NLP愛情心理學的技巧,文章提供了有效的溝通與情感重建策略,幫助人們理解與應對分手的根本原因。
情感分析是一種自然語言處理技術,用於自動識別和分析文本中的情感傾向,通常是正向、負向或中性。 我們可以使用 NLTK 來實現一個基於單純貝斯分類器的情感分析模型。
為了將輸入文本轉換成深度學習模型可以使用的嵌入向量, 我們需要先將「輸入文本 Input Text」轉為「符元化文本 Tokenized Text」。 而實際上「符元化文本 Tokenized Text」與「嵌入向量 Embedding Vector」之間, 還有一個步驟稱為「符元
Thumbnail
上回我們講到 Word Embedding 能夠將字詞表示從使用字典索引改成詞向量表示,且這個詞向量能夠包含一定程度上的語義訊息,今天就讓我們探討 Word Embedding 到底是如何訓練成的。
Thumbnail
大語言模型(如GPT-3和GPT-4)的出現改變了我們與機器互動的方式。這些模型能夠理解和生成自然語言,實現許多以前無法想像的應用。然而,你可能會好奇,這些模型究竟是如何理解語言的?這裡,我們來探討一個關鍵的概念:「一切語義都是關係」。
瞭解如何透過Regression實作Classification,使用one-hot vector表示不同的類別,並透過乘上不同的Weight和加上不同的bias來得到三個數值形成向量。同時通過softmax的方式得到最終的y'值,並探討使用Cross-entropy來計算類別的loss。
Thumbnail
溝通的目的不是僅僅提供信息,而是讓對方接收並理解信息。 NLP的兩個假設前提:溝通的意義決定於對方的回饋、沒有失敗,只有回饋。
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
一份研究指出,人類在關係中外遇的機率,幾乎是所有物種當中最高,這份研究也顯示,外遇的比例竟然遠超乎我們到想像,甚至可以說是高得離譜⋯⋯
Thumbnail
這篇文章探討了分手的多種原因,特別是金錢觀念、性觀念與感情變淡等問題,並分析各自的挽回機率,透過NLP愛情心理學的技巧,文章提供了有效的溝通與情感重建策略,幫助人們理解與應對分手的根本原因。
情感分析是一種自然語言處理技術,用於自動識別和分析文本中的情感傾向,通常是正向、負向或中性。 我們可以使用 NLTK 來實現一個基於單純貝斯分類器的情感分析模型。
為了將輸入文本轉換成深度學習模型可以使用的嵌入向量, 我們需要先將「輸入文本 Input Text」轉為「符元化文本 Tokenized Text」。 而實際上「符元化文本 Tokenized Text」與「嵌入向量 Embedding Vector」之間, 還有一個步驟稱為「符元
Thumbnail
上回我們講到 Word Embedding 能夠將字詞表示從使用字典索引改成詞向量表示,且這個詞向量能夠包含一定程度上的語義訊息,今天就讓我們探討 Word Embedding 到底是如何訓練成的。
Thumbnail
大語言模型(如GPT-3和GPT-4)的出現改變了我們與機器互動的方式。這些模型能夠理解和生成自然語言,實現許多以前無法想像的應用。然而,你可能會好奇,這些模型究竟是如何理解語言的?這裡,我們來探討一個關鍵的概念:「一切語義都是關係」。
瞭解如何透過Regression實作Classification,使用one-hot vector表示不同的類別,並透過乘上不同的Weight和加上不同的bias來得到三個數值形成向量。同時通過softmax的方式得到最終的y'值,並探討使用Cross-entropy來計算類別的loss。
Thumbnail
溝通的目的不是僅僅提供信息,而是讓對方接收並理解信息。 NLP的兩個假設前提:溝通的意義決定於對方的回饋、沒有失敗,只有回饋。