博客專欄

        EEPW首頁 > 博客 > 獨家 | 語言模型初學者指南

        獨家 | 語言模型初學者指南

        發布人:數據派THU 時間:2023-03-19 來源:工程師 發布文章

        過去十年中,從文本數據中提取信息的技術發生了巨大變化,自然語言處理這一術語已經超躍文本挖掘,成為該領域的主導方法。與此同時,該方法也發生了翻天覆地的變化。引發變化的主要驅動因素是語言模型的出現,它旨在從原始文本中提取有價值的見解,成為了許多應用程序的基礎。


        語言模型的定義


        語言模型使用機器學習預測單詞的概率分布,基于前一個條目來預測句子中最有可能出現的下一個單詞。語言模型從文本中學習,可用于生成原始文本、預測文本中的下一個單詞、語音識別、光學字符識別和手寫識別。


        在自然語言處理的學習過程中,我對過去幾年中語言模型的演變非常著迷,你或許已經聽說過GPT-3及其它所構成的潛在威脅,但又是如何走到這一步的呢?機器又是如何制作出一篇模仿記者的文章的呢?


        什么是語言模型?


        語言模型預測單詞或單詞序列的概率分布。在項目實踐中,它給出了某個單詞序列是“有效的”的概率,此時的有效性并不是指語法上的有效性,相反,它是指類似于人類的寫作方式,這便是語言模型所學習的東西。正如其他機器學習模型,特別是深度神經網絡一樣,語言模型并不是在變魔術,它只是一個以簡潔的方式合并豐富信息的工具,可以重用樣本外的語境。


        語言模型能做什么?


        對自然語言的抽象理解是從語境中推斷單詞概率的必要條件,可以用于多項任務。詞性化或詞干化的目的是將一個詞簡化為其最基本的形式,從而大幅度減少標記的數量。如果知道這個詞的詞性,算法會工作得更好,動詞的后綴可以不同于名詞的后綴,因此,詞性標記(或pos標記)是語言模型的基本原理,同時也是語言模型的一項常見任務。


        有了良好的語言模型,便可以對文本進行提取或抽象摘要。有了不同語言的模型,可以非常容易地建立一個機器翻譯系統。用例包括回答問題(帶或不帶語境,請參見文末的示例)。語言模型還可用于語音識別、OCR、手寫識別等領域,有很各種各樣的應用。


        語言模型的種類


        有兩種類型的語言模型:


        1. 概率統計方法。

        2. 基于神經網絡的現代語言模型


        注意區分二者之間的不同非常重要。


        概率統計語言模型


        通過計算單詞的n-gram概率,建立起一個簡單的概率語言模型。n-gram是由n個單詞組成的序列,n為大于0的整數。n-gram概率是n-gram單詞跟隨一個特定的n-1 gram單詞(省去最后一個單詞)的條件概率,即在n-1gram之后,省略掉最后一個單詞的比例。這個概念是一個馬爾可夫假設。給定n-1 gram(現在),n-gram概率(未來)不依賴于n-2、n-3(過去)單詞的概率。


        這種方法也有一些明顯的缺點:前面的n個單詞會影響下一個單詞的概率分布。復雜的文本有深刻的語境,可能對下一個詞的選擇產生決定性的影響。因此,即使n等于20或50,從前面的n個單詞中推導出下一個單詞的并非輕而易舉。一個術語對之前的用詞會產生影響:如果出現了United這個單詞,那么States of America緊隨其后的概率便有可能大得多,稱之為語境問題。


        最為重要的是,很明顯,這種方法并不適合大規模學習。隨著(n)的增加,單詞排列的數量飆升,即便文本中從未發生大多數的單詞排列,并且所有發生的概率(或全部n-gram計數)都必須計算和存儲。此外,未出現的n-gram計數會產生稀疏性問題,概率分布的粒度會相當低。單詞概率鮮有不同的值,絕大多數單詞具有相同的概率。


        基于神經網絡的語言模型


        基于神經網絡的語言模型通過編碼輸入的方式,解決了稀疏性問題。Word嵌入層為每個單詞創建一個任意大小的向量,向量中同時包含了語義關系,連續的向量在下一個單詞的概率分布中創建了所需的粒度。此外,語言模型同時也是一個函數,所有的神經網絡都有大量的矩陣計算,所以無需存儲所有的n-gram計數來生成下一個單詞的概率分布。


        語言模型的演進


        盡管神經網絡解決了稀疏性問題,但語境問題仍然存在。首先,語言模型更有效地解決了語境問題——引入越來越多的語境詞來影響概率分布。其次,目標是創建一個架構,使模型能夠學習哪些語境詞更為重要。


        前文概述的第一個模型,是一個密集的(或隱含的)層和一個輸出層,堆疊在一個連續的單詞包(CBOW)Word2Vec模型之上。CBOW Word2Vec模型被訓練成從上下文中猜測單詞;Skip-Gram Word2Vec模型則相反,從單詞中猜測上下文。在項目實踐中,需要通過多個結構化的示例訓練 CBOW Word2Vec模型:輸入是在單詞之前和/或之后的n個單詞,從中可以看到,語境問題依然沒有得到解決。


        遞歸神經網絡(RNN)


        遞歸神經網絡(RNNs)是對這一問題的一個改進,RNN既可以是一個長短期記憶(LSTM),也可以是一個基于門控循環單元(GRU)單元的網絡,它們在選擇下一個單詞的同時考慮了所有先前的單詞。AllenNLP的ELMo進一步提出了這個概念,利用一個雙向的LSTM,將單詞計數前后的語境考慮進來。


        TRANSFORMERS


        基于RNN架構的主要缺點在于它們的序列性質,因為沒有并行化,長序列的訓練時間會飆升。解決這個問題的方法是采用Transformer架構。


        OpenAI的GPT和谷歌的BERT模型均采用了Transformer架構,與此同時,這些模型還采用了一種稱為“注意力”的機制,通過這種機制,模型可以學習在某些情況下哪些輸入比其他輸入更值得關注。


        在模型架構方面,有數量級飛躍的首先是RNN,尤其是LSTM和GRU,很好地解決了稀疏性問題,減少語言模型對磁盤空間的占用,其次是Transformer架構,使并行化成為可能,并創建了注意力機制。但是,架構并不是語言模型之所以優越的唯一考量。


        與GPT-1架構相比,除了規模上變大了之外,GPT-3實際上沒有什么新穎之處。GPT-3有1750億個參數,并且是在普通訓練集的大語料庫上訓練的。語言模型的半監督訓練策略,使得這在一定程度上成為可能,將省略一些單詞的文本作為訓練示例。GPT-3令人難以置信的力量在于,它或多或少閱讀了過去幾年出現在互聯網上的所有文本,而且能夠準確反映自然語言所包含的絕大多數復雜性。


        多用途訓練


        最后,我想回顧一下谷歌的T5模型。以前,語言模型被用于標準的自然語言處理任務,如詞性(POS)標注或經過輕微修改的機器翻譯。只要經過重新訓練,BERT就可以成為一個pos標記器,因為它具有理解自然語言底層結構的抽象能力。


        對于T5,無需對NLP任務進行任何修改,如果它獲取到一個帶標記的文本,它就知道用哪些標記來填充適當單詞的空白;它也可以回答問題,如果它在問題之后收到了一些語境信息,它會從中搜索出答案。否則,它會根據自己的知識得出答案。有趣的是:它在問答小測試中擊敗了自己的創造者。


        語言模型的未來


        我個人認為,這是離創造人工智能最近的領域。關于人工智能有很多非議,從市場營銷的角度來看,許多簡單的決策系統和神經網絡均可稱之為人工智能。根據定義,人工智能涉及到由機器執行的類人智能能力。遷移學習在計算機視覺領域很突出,遷移學習的概念對人工智能系統至關重要,同一模型可以完成廣泛的自然語言處理任務,并可以從輸入中推斷出該做什么,它讓我們離真正創造類人智能系統又近了一步。


        原文標題:A Beginner’s Guide to Language Models

        原文鏈接:https://builtin.com/data-science/beginners-guide-language-models


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: AI

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 白沙| 杭州市| 道孚县| 凤凰县| 休宁县| 铅山县| 泾阳县| 清河县| 留坝县| 孙吴县| 绵阳市| 广宁县| 米脂县| 华阴市| 大关县| 驻马店市| 封开县| 石台县| 开阳县| 汉寿县| 庆元县| 格尔木市| 黄龙县| 淮北市| 四子王旗| 沧州市| 泾源县| 蚌埠市| 微博| 嘉鱼县| 秦安县| 信阳市| 玛纳斯县| 留坝县| 玉山县| 麻城市| 广州市| 张家界市| 册亨县| 镇巴县| 勐海县|