在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Subword Model的兩種模型解析

深度學習自然語言處理 ? 來源:博客 ? 作者:芙蕖 ? 2020-08-31 10:56 ? 次閱讀

之前介紹的模型都是基于詞向量的, 那么能不能換一個角度來表示語言。說英文的時候, 每個單詞都是由音節構成的, 而人們聽到了連續的音節就可以理解其中的含義, 而音節顯然比詞粒度更細。

首先,來梳理下word-level存在的幾個問題:

需要系統需要極大的詞匯量;

如果遇到了不正式的拼寫, 系統很難進行處理;

做翻譯問題時, 音譯姓名比較難做到。

為了解決這些問題, 一開始想到的是采用character級別的模型,即對26個字母訓練word2vec,每個詞由其字母的embedding拼接或者求平均得到。但這種方法梯度消失(爆炸)的問題也會更嚴重。

后來,人們就想用subword模型作為character和word的折中模型。subword模型主要有兩種,它們都能解決未登錄詞(OOV)的問題。第一種是模型結構和word模型完全一樣,只不過把word換成了subword。第二種則是word和character模型的雜交模型。

一、人類語言聲音:語音學和音系學

語音學(Phonetics)是一種非常基本的理論,只要是正常人,有著相同的人體器官和相同的發聲結構,就會遵循著相同的發聲規則和原理。

語音體系(Phonology)是有語義的聲音的合集,各國各文明的人都會制定自己的語音體系。

音素(Phoneme)是語音中劃分出來的最小的語音單位,分為元音和輔音

國際音標(由音素構成)按理來說可以表示所有的語音,但是會發現好多語音是沒有語義的,這時我們采取的辦法就是看音素的下一級(part of words)。

詞法學:一個n-grams的代替方案。在基于單詞的模型中存在一些問題:需要處理很大的詞匯表,在英語中單詞只要變個形態就是另一個單詞了,比如說:gooooood bye

二、字符級模型(Character-LevelModels)

通常針對字符級的模型有兩種處理思路:一種是把原有的詞向量分解處理,一種是把連接的語言分解成字符。

單詞嵌入可以由字符嵌入表示:

能為不知道的單詞生成嵌入

相似的拼寫有相似的嵌入

解決了oov問題

這兩種方法都被證明是成功的。后續也有很多的工作使用字符級的模型來解決NMT任務。但這些任務有一些共同的缺點,由于從單詞替換成字符導致處理的序列變長,速度變慢;由于序列變長,數據變得稀疏,數據之間的聯系的距離變大,不利于學習。于是2017年,Jason等人發表了論文Fully Character-Level Neural MachineTranslation without Explicit Segmentation 解決了這些問題。

論文的模型結構如圖所示:

首先是對輸入的character首先做一個embedding, 然后分別與大小為3,4,5的filter進行卷積運算,就相當于3-grams, 4-grams和5-grams。之后進行max-pooling操作,相當與選出了有語義信息的segment-embedding。之后將這些embedding送入Highway Network(相當于resnet, 解決了深層神經網絡不容易訓練的問題)后再通過一個單層的雙向GRU,得到最終的encoder的output。之后經過一個character-level的GRU(作為decoder)得到最終結果。

還有一篇2018年的文章(Revisiting Character-Based Neural Machine Translation with Capacity andCompression. 2018.Cherry, Foster, Bapna, Firat, Macherey, Google AI)中展示了純字符級模型的效果。此論文表明在一些復雜的語言中(比如捷克語),character級別的模型會大幅提高翻譯準確率,但在較為簡單的語言中(如英語法語),character級別的模型提升效果不顯著。同時,研究發現在模型較小時word-level的模型效果更好,在模型較大時character-level 的效果更好。如圖所示:

總之,現有的character-level的模型在NMT任務上可以更好的處理OOV的問題,可以理解為我們可以學習一些字符級別的語義信息幫助我們進行翻譯。

三、子詞模型(Sub-word models)

所謂subword,就是取一個介于字符和單詞之間成分為基本單元建立的模型。而所謂Byte Pair Encoding(一下簡稱BPE),就是尋找經常出現在一起的Byte對,合并成一個新的Byte加入詞匯庫中。即若給定了文本庫,若我們的初始詞匯庫包含所有的單個字符,則我們會不斷的將出現頻率最高的n-gram的pair作為新的n-gram加入詞匯庫中,直到達到我們的要求。

課程在這里介紹了介于word-level和char-leval之間的Sub-word models,主要一般有兩種結構,一種是仍采用和word-level相同的結構,只不過采用更小的單元word pieces來代替單詞;另一種是hybrid architectures, 主要部分依然是基于word, 但是其他的一些部分用characters

Hybrid architectures:主要的模型含有單詞,一些其他的含有字符、字節對的編碼。使用的是一個壓縮算法:將大部分頻繁出現的字節對標記為新的字節對。

3.1 Byte Pair Encoding(BPE)

Byte Pair Encoding,簡稱BPE,是一種壓縮算法。

給定了文本庫,我們的初始詞匯庫僅包含所有的單個的字符,然后不斷的將出現頻率最高的n-gram pair作為新的n-gram加入到詞匯庫中,直到詞匯庫的大小達到我們所設定的某個目標為止。如圖所示:

上述例子是,比如有一個初始的文本庫和詞匯庫。首先,可見此時出現頻率最高的n-gram pair是“e,s”,出現了9次,因此我們將“es”作為新詞加入到詞匯庫中同時更新文本庫。然后,這時詞匯庫中出現頻率最高的n-gram pair是“es,t”,出現了9次,因此我們將“est”加入詞匯庫中同時更新文本庫。依次類推,可以逐漸的通過增加新的n-gram的方式達到我們的目標。對于現實生活中有很多詞匯量非常大的task,這種通過BPE逐步建立詞匯庫的方式就顯得非常有用了。

使用這種方法可以自動生成vocab。

谷歌的NMT模型有兩個版本,版本一采用的是BPE模型,版本二對BPE模型進行了改進,稱為wordpiece mode。這種方法不在使用n-gram的計算來算,而是使用搜索算法搜索最大化的該語言模型的片段去選擇pieces。

另外還有一種模型叫sentencepiece,它直接從raw text中獲取,同時把空格視為一種特殊的token(_)

課程介紹了幾篇在這方面發展的論文,有用Character-level去產生詞向量的(LearningCharacter-level Representations for Part-of Speech Tagging),還有用char-level結合high-way網絡進行機器翻譯的。

課程分析用char-level得到詞向量的特點,經由他們直接輸出的word-embedding更傾向于在形狀上相似,輸入high-way之后,形狀上的相似會朝含義上的相似發展。如圖所示:

使用char-level的可以輕易解決,此沒有出現在詞庫的情況,如圖所示:

四、混合字符和詞級模型

4.1 Hybrid NMT

核心思想:大部分時候都使用word-level的模型來做translate,只有在遇到rare or unseen的words的時候才會使用character-level的模型協助。這種做法產生了非常好的效果。

混合模型即兩種方式并存的模型,在正常處理時采用word-level的模型,當出現奇怪的詞的后,使用char-level級的模型。

一篇論文的結構如圖所示:

可以看到輸入未知的單詞時,采用char-level進行編碼,輸出《 unk 》時也采用char-level級的進行解碼。同時訓練跟beam-search也時要同時對兩個結構進行。

4.2 Chars for word embeddings

采用subword的方式長生詞向量,課程中提到了FastText。主要思路如圖所示:

字符的卷積來生成詞嵌入

使用pos標記固定的窗口

五、FastText

使用n-grams和整個單詞來代表單詞。我們知道在word2vec方法中我們基于word-level的模型來得到每一個單詞的embedding,但是對于含有許多OOV單詞的文本庫word2vec的效果并不好。由此很容易聯想到,如果將subword的思想融入到word2vec中是不是會產生更好的效果呢?

FastText embeddings是一個word2vec like embedding。用where舉例, 它把單詞表示成了: “where = 《wh, whe, her,ere, re》, 《where》”這樣的形式。 注意這里的“《》”符號是表達了開始和結束。 這樣就可以有效地解決OOV的問題, 并且速度依然很快。

然后把它們加起來:

于是,就可以使用原有的word2vec算法來訓練得到對應單詞的embedding。其保證了算法速度快的同時,解決了OOV的問題,是很好的算法。

5.1 FastText和word2vec的區別

1. 相似處:

圖模型結構很像,都是采用embedding向量的形式,得到word的隱向量表達。

都采用很多相似的優化方法,比如使用Hierarchicalsoftmax優化訓練和預測中的打分速度。

2. 不同處:

模型的輸出層:word2vec的輸出層,對應的是每一個term,計算某term的概率最大;而fasttext的輸出層對應的是分類的label。不過不管輸出層對應的是什么內容,起對應的vector都不會被保留和使用。

模型的輸入層:word2vec的輸出層,是 context window 內的term;而fasttext 對應的整個sentence的內容,包括term,也包括 n-gram的內容。

3. 兩者本質的不同,體現在 h-softmax的使用:

Word2vec的目的是得到詞向量,該詞向量 最終是在輸入層得到,輸出層對應的 h-softmax也會生成一系列的向量,但最終都被拋棄,不會使用。

fastText則充分利用了h-softmax的分類功能,遍歷分類樹的所有葉節點,找到概率最大的label(一個或者N個)

FastText是一個能用淺層網絡取得和深度網絡相媲美的精度,并且分類速度極快的算法。按照作者的說法“在標準的多核CPU上,能夠訓練10億詞級別語料庫的詞向量在10分鐘之內,能夠分類有著30萬多類別的50多萬句子在1分鐘之內”。但是它也有自己的使用條件,它適合類別特別多的分類問題,如果類別比較少,容易過擬合。

六、寫到最后

本文介紹了Subword Model的兩種模型。對于第一種模型,其關鍵點在于怎樣得到subword,在此采用BPE算法來提取高頻Subword的形式。第二種被稱為雜交模型的方法相對簡單,是在文本中有這個word時就用word embedding,沒有的時候就用char embedding來學習word embedding,非常簡單。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Model
    +關注

    關注

    0

    文章

    340

    瀏覽量

    25094

原文標題:【NLP入門】通俗講解Subword Models

文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    請問如何將HSPICE和 IBIS兩種模型怎么轉換成TINA軟件中用?

    TI網站里,給出了一些期間的HSPICE和IBIS模型,但是現有的仿真工具 只有TINA這種,請問如何將HSPICE和 IBIS兩種模型怎么轉換成TINA軟件中用? 請高手給予解答。感謝!
    發表于 09-02 07:56

    請問這兩種機械手模型哪種實驗性能更好,可擴展性更好

    `我打算買個六軸機械手模型用來驗證自動運行算法,但不知道從機械角度上來來說哪種實驗性能更好,可擴展性更好,這兩種都是數字舵機帶動的。麻煩給出為什么的理由,謝謝!左上角那種好像是工業機械手的模型,右下角那種是什么呢?
    發表于 07-15 17:00

    突然發現有兩種電壓源和電流源等效模型

    今天看書才發現有兩種電壓源電流源等效變換, 之前一直沒注意. 1. 我以前一直是 電壓源和電阻串聯, 電流源和電阻并聯的模型. 這可以解釋得通 I*R = U2. 今天發現高頻書上是 電流源和電導
    發表于 03-14 14:31

    怎么實現兩種智能小車的建模與仿真?

    1.兩種智能小車的構造簡介在市面上常見的兩種智能小車都是基于輪式的,在某寶上面賣的最多的,各位在學生時代拿來應付課程設計和畢業設計用的各種小車分為兩種。1.后輪驅動,前輪阿克曼轉向的,通常后軸通過有
    發表于 08-30 06:08

    了解實際電源的兩種模型及其等效變換

    。 2 .了解實際電源的兩種模型及其等效變換。 3 .了解非線性電阻元件的伏安特性和靜態電阻、動態電阻的概念以及簡單的非線性電阻電路的圖解分析法。第1章電路的分析方法、1.3.3電壓源和電流源的等效變換、圖...
    發表于 09-06 07:57

    keras順序模型與函數式模型

    keras提供兩種搭建模型的方式: 1. 順序模型(也可看做是函數式模型的一特殊情況) 2. 函數式
    發表于 08-18 06:01

    機器人運動控制的兩種模型

    以六自由度模塊化機器人為對象,利用D-H坐標變換方法進行運動學分析,計算出各桿之間的齊次坐標變換矩陣,建立求解機器人逆運動學問題的兩種模型。并根據兩種模型應用vc++
    發表于 08-05 11:34 ?14次下載

    PWM控制器SG3525的兩種模型

    高頻開關電源的計算機輔助分析與設計(CAA/ CAD) 要求建立脈沖寬度調制(PWM) 控制器的有效模型. 介紹了SG3525 的兩種不同的宏模型. 模型Ⅰ提供了全功能等效電路, 可應
    發表于 01-10 12:12 ?94次下載

    機器人運動控制的兩種模型

    以六自由度模塊化機器人為對象,利用D-H坐標變換方法進行運動學分析,計算出各桿之間的齊次坐標變換矩陣,建立求解機器人逆運動學問題的兩種模型。并根據兩種模型應用vc++程
    發表于 07-20 15:33 ?24次下載

    兩種基于測量的微波非線性電路頻域黑箱模型

    大信號網絡分析和建模是射頻微波電路測量和設計中的關鍵技術。論文研究了兩種微波非線性電路頻域黑箱建模的新方法, X 參數和非線性散射函數模型。推出了兩種模型的相互關系,
    發表于 09-01 16:11 ?18次下載

    Verilog的兩種塊語句解析

    1. 塊語句有兩種,一是 begin-end 語句, 通常用來標志()執行的語句;一是 fork-join 語句,通常用來標志()執行的語句。 答案:順序,并行 解析: (1)be
    的頭像 發表于 06-18 15:16 ?3086次閱讀

    兩種MOS冗余驅動方案

    兩種MOS冗余驅動方案
    發表于 10-28 12:00 ?2次下載
    <b class='flag-5'>兩種</b>MOS冗余驅動方案

    理解什么是NLP Subword算法

    Subword算法如今已經成為了一個重要的NLP模型性能提升方法。自從2018年BERT橫空出世橫掃NLP界各大排行榜之后,各路預訓練語言模型如同雨后春筍般涌現,其中Subword算法
    的頭像 發表于 02-22 14:16 ?585次閱讀

    兩種常見的移相器電路原理解析

    移相器的電路原理可以有多種實現方式,以下是兩種常見的移相器電路原理。
    的頭像 發表于 09-19 11:02 ?3320次閱讀

    solidworks正版軟件:永久版權和訂閱許可 兩種購買方式解析和選擇

    SOLIDWORKS軟件分從購買方式上劃分為永久版權的形式和訂閱即年付費兩種方式,代理商碩迪科技向您詳細解析 SOLIDWORKS 的永久版權和訂閱許可的區別,各自的優劣勢以及適合的應用場景。以幫助您做出適合的決策。
    的頭像 發表于 12-16 16:45 ?489次閱讀
    solidworks正版軟件:永久版權和訂閱許可 <b class='flag-5'>兩種</b>購買方式<b class='flag-5'>解析</b>和選擇
    主站蜘蛛池模板: 天天干天天色天天干| 永久视频在线观看| 色视频免费观看| 色综合网址| 日本三级在线观看免费| 日本三级免费看| 噜色| 国产精品yy9299在线观看| 成人观看网站a| 天天操 夜夜操| 国产成人在线影院| 免费观看在线观看| 欧美丝袜一区| 亚洲色图图片| 日本五十交尾在线观看| 久久精品亚洲精品国产欧美| 国产精品免费拍拍拍| 校园春色亚洲欧美| 久综合色| 亚洲高清成人| 性欧美xxxx视频在线观看| 日本片免费观看一区二区| 久久综合九色综合精品| 91欧美精品激情在线观看| 欧美午夜免费观看福利片| 黄色网欧美| 亚洲视频欧美视频| 欧美三级不卡在线观线看高清| 国产大乳喷奶水在线看| 欧美超级碰碰| 一级大片视频| 特黄特黄视频| 国产一级在线观看www色| 天天干天天干天天干天天| 日韩高清在线日韩大片观看网址| 久久精品网站免费观看| 色多多www网站| www日本黄色| 爱操视频在线观看| 狠狠色丁香婷婷综合小时婷婷 | 欧美人与zoxxxx另类9|