logo
Loading...

【QA】有哪些文字表示模型?它們各有什麼優缺點? - 【教材專區】學習AI有困難? 讓Cupoy助教來幫你! - Cupoy

文字本身是一種非數值化的資料,無法直接被計算。 我們需要將文字轉換成機器看得懂的形式。我們將文字訊息轉成結構化的電腦可讀資訊,就稱作:單詞表示 (word representation) 。 文字本...

文字本身是一種非數值化的資料,無法直接被計算。 我們需要將文字轉換成機器看得懂的形式。我們將文字訊息轉成結構化的電腦可讀資訊,就稱作:單詞表示 (word representation) 。 文字本身是一種非數值化的資料,無法直接被計算。 我們需要將文字轉換成機器看得懂的形式。我們將文字訊息轉成結構化的電腦可讀資訊,就稱作:單詞表示 (word representation) 。 獨熱編碼(One-hot encoding): 整數編碼(Integer encoding) 整數編碼英文是Integer encoding: 形式跟獨熱編碼(One-hot encoding)相同,但我們會用數字直接代表單詞,以此來減少使用空間。 但是以上的方式因為都是用數字來表達單詞,不同文字之間,沒有差異,所以無法清楚了解詞之間的差異,因此後續就有詞嵌入向量 (Word Embedding)的概念, 詞嵌入向量 (Word Embedding) 詞嵌入向量的概念是:“用語言模型表示詞的特徵,把我們所知道的單詞投射到連續的向量空間中,每個單詞都用向量來表達”。 詞袋 (Bag-of-words) 模型 詞袋 (Bag-of-words)模型的概念是,為了用最簡單的方式表達出一句話或一篇文章,我們會直接將這句話或這篇文章中出現過的文字全部加起來,可以想像成我們把所有的單詞放進一個袋子當中(詞袋)。這些文字就會被視作一系列詞的集合,我們就稱作詞袋 (Bag-of-words)。 ,這裡有一篇英文的文章,我們將所有出現的單詞找出之後將其建造一個字典,也就是所有的單詞需要有對應的索引 (index),其中沒有順序的限制,但固定後就不可改變。 只要是那個文本內有出現的單詞取出,找到對應的 index,將向量中這個位置的值 +1。 例如我們在一個文本中找到兩個 good,good 對應到的 index 為 5,所以我們就在向量 [5] 的位置 +2,變為 [0, 0, 0, 0 , 0, 2,.....]。 Bag-of-words的優點是它直觀,操作容易,並且不需要任何預訓練模型,可套用在任何需要將文字轉向量的任務上。  但也有顯而易見的缺點,就是無法表達前後語意關係,詞袋 (Bag-of-words)模型就是一個像袋子,而袋子裡的東西是同時裝在一起的,並沒有一個排列的順序關係。無法呈現單字含義:許多單字有多種不同含義,以此兩個句子為例:"購買蘋果手機"&"去菜市場購買蘋果",這兩句話中的蘋果意義不相同,但在詞袋 (Bag-of-words)模型中無法呈現其含意的不同。當文字數量太多時,會形成稀疏矩陣,不利於部分模型訓練。假設我們訓練的 corpus 內有 100000 個單字,那要表達每一個單字就是(1,100000) 的 vector,其中絕大部分都是0的數值。  儘管詞袋 (Bag-of-words)模型有諸多不足的地方,然而在較為簡單的情境下,其效果仍然相當不錯。 詞嵌入向量 (Word Embedding)是自然語言處理當中相當重要的領域,在詞袋 (Bag-of-words)模型之後有許多改進的方式陸續被提出,如 TFIDF、Word2Vec、GloVe到近期的基於上下文的詞向量( BERT, ERNIE, RoBerta )。 TF-IDF 詞頻(Term Frequency, TF):某一特定單詞在整個文件中出現的頻率 計算公式:特定單詞出現在整個文件的次數/該文件中所有單詞的數量 逆向檔案頻率(Inverse Document Frequency, IDF) :  整個文件的數量與某一特定單詞文件的數量的比率 計算公式:Log (所有文件的數目/包含這個單詞的文件數目) TF-IDF就是將TF乘上IDF:TF * IDF,我們用這個數值來表現出一個單詞在文件中的重要程度。 綜合上述,當一個單詞的 TF * IDF 值越大時,代表這個單詞對整段文章的重要性也越大,我們可以歸納出: 不同單詞在同一個文章中獲得的 TF-IDF 值可能不相同,值的高低代表了單詞對整段文章的重要性。同一個單詞在不同文章所得到的 TF-IDF 值也可能不同。 Word2Vec word2vec為 Google的研究團隊於2013在 ”Efficient Estimation of Word Representations in Vector Space” 所提出,是一個用來表示字詞的方法。 他們提出了兩種訓練詞嵌入的模型: 連續詞袋模型 (Continuous Bag Of Words, CBOW) 跟 Skip-Gram 連續詞袋模型(CBOW)是一個類神經網路模型,是由”相鄰”的上下文來推測目標單詞(Target word)的模型架構,是一個讓機器選填空題的概念(一句話挖掉中間的字,請你填空)。 Skip-gram的概念與連續詞袋模型(CBOW)類似,但Skip-gram模型是使用目標單詞(中間的單詞)來推測周圍單詞(上下文)。是一個讓機器給定一個詞,去無限猜測前後文的概念(一句話只給中間的字,請你發揮想像力拼湊出上下文)。 GloVe GloVe (Global Vector for Word Representation)是由史丹佛(Stanford)研究 團隊所創建的,他是對 Word2Vec 方法進行擴展。 是一種基於全局詞頻統計 (count- based & overall statistics) 作為單詞表示 (word representation) 的工具,它以實數 組成的向量標示每一個單詞。如右圖所示,這些向量捕獲了單詞之間的一些語 義特徵,例如相似性,類比 等。 我們可以通過對向量的操作來計算兩個單詞之間的語義相似性,例如歐幾里德距離或餘弦相似度 (cosine similarity)。 GloVe綜合了潛在語義分析 (Latent semantic analysis note, LSA)、 CBOW 的優點,模型訓練速度更快,對大型語料庫具有良好的可擴展性、在小型 語料庫或小向量表現亦良好。