<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【關(guān)于 fastText】 那些你不知道的事

          共 2898字,需瀏覽 6分鐘

           ·

          2021-03-02 09:42

          作者:楊夕

          項目地址:https://github.com/km1994/NLP-Interview-Notes

          個人論文讀書筆記:https://github.com/km1994/nlp_paper_study

          【注:手機(jī)閱讀可能圖片打不開!!!】



          一、fastText 動機(jī)篇

          1.1 word-level Model 是什么?

          • 介紹:基于word單詞作為基本單位的,這種方式雖然能夠很好的對詞庫中每一個詞進(jìn)行向量表示

          1.2 word-level Model 存在什么問題?

          • OOV 問題

            • 問題描述:容易出現(xiàn)單詞不存在于詞匯庫中的情況;

            • 解決方法:最佳語料規(guī)模,使系統(tǒng)能夠獲得更多的詞匯量;

          • 誤拼障礙

            • 問題描述:如果遇到了不正式的拼寫, 系統(tǒng)很難進(jìn)行處理;

            • 解決方法:矯正或加規(guī)則約束;

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

          1.3 Character-Level Model 是什么?

          • 介紹:基于 Character 作為基本單位的,這種方式雖然能夠很好的對字庫中每一個 Char 進(jìn)行向量表示

          1.4 Character-Level Model 優(yōu)點(diǎn)?

          • 能夠解決 Word-level 所存在的 OOV 問題;

          • 拼寫類似的單詞 具有類似的 embedding;

          1.5 Character-Level Model 存在問題?

          • Character-level 的輸入句子變長;

          • 數(shù)據(jù)變得稀疏;

          • 對于遠(yuǎn)距離的依賴難以學(xué)到;

          • 訓(xùn)練速度降低;

          1.6 Character-Level Model 問題的解決方法?

          • Lee 等 提出了利用多層 conv 和 pooling 和 highway layer 的方式來解決該問題,其結(jié)構(gòu)如下所示:

            • 輸入的字符首先需要經(jīng)過 Character embedding 層,并被轉(zhuǎn)化為 character embeddings 表示;

            • 采用 不同窗口大小的卷積核對輸入字符的 character embeddings 表示進(jìn)行卷積操作,論文中采用的窗口的大小分別為 3、4、5 ,也就是說學(xué)習(xí) Character-level 的 3-gram、4-gram、5-gram;

            • 對不同卷積層的卷積結(jié)果進(jìn)行 max-pooling 操作,即捕獲其最顯著特征生成 segment embedding;

            • segment embedding 經(jīng)過 Highway Network (有些類似于Residual network,方便深層網(wǎng)絡(luò)中信息的流通,不過加入了一些控制信息流量的gate);

            • 輸出結(jié)果 再經(jīng)過 單層 BiGRU,得到最終 的 encoder output;

            • 之后,decoder再利用Attention機(jī)制以及character level GRU進(jìn)行decode

          • 通過這種方式不僅能夠解決 Word-level 所存在的 OOV 問題,而且能夠捕獲 句子的 3-gram、4-gram、5-gram 信息,這個也是 后期 FastText 的想法雛形;


          二、 詞內(nèi)的n-gram信息(subword n-gram information) 介紹篇

          2.1 引言

          在前面,我們已經(jīng)介紹和比較了 word-level 和 character-level 的優(yōu)缺點(diǎn),并根據(jù)其特點(diǎn),提出一種介于 word-level Model 和 Character-level 之間的 Model —— Subword Model。

          那么,我們可不可以采取類似于上面的subword的思路來產(chǎn)生更好的word embedding呢?

          FAIR的FastText就是利用subword將word2vec擴(kuò)充,有效的構(gòu)建embedding。

          2.2 fastText 是什么?


          2.3 fastText 的結(jié)構(gòu)是什么樣?

          • 每個單詞通過嵌入層可以得到詞向量;

          • 然后將所有詞向量平均可以得到文本的向量表達(dá);

          • 在輸入分類器,使用softmax計算各個類別的概率;



          2.4 為什么 fastText 要使用詞內(nèi)的n-gram信息(subword n-gram information)?

          • 之前方法:

            • 以詞匯表中的獨(dú)立單詞作為基本單元來進(jìn)行訓(xùn)練學(xué)習(xí)的

            • 存在問題:

              • 低頻詞、罕見詞:由于在語料中本身出現(xiàn)的次數(shù)就少,得不到足夠的訓(xùn)練,效果不佳

              • 未登錄詞:如果出現(xiàn)了一些在詞典中都沒有出現(xiàn)過的詞,或者帶有某些拼寫錯誤的詞,傳統(tǒng)模型更加無能為力

          2.5 fastText 詞內(nèi)的n-gram信息(subword n-gram information) 介紹?

          • s1. 將一個單詞打散到字符級別;

          • s2. 利用字符級別的n-gram信息來捕捉字符間的順序關(guān)系

            • 目的:以此豐富單詞內(nèi)部更細(xì)微的語義

          • 舉例:

            • 對于一個單詞“google”,為了表達(dá)單詞前后邊界,我們加入<>兩個字符,即變形為“

              ”;
            • 抽取所有的tri-gram信息:G = { <go, goo, oog,ogl, gle, le>};

            • 通過這種方式:原始的一個單詞google,就被一個字符級別的n-gram集合所表達(dá);

          2.6 fastText 詞內(nèi)的n-gram信息 的 訓(xùn)練過程?

          • s1:每個n-gram都會對應(yīng)訓(xùn)練一個向量;

          • s2:原來完整單詞的詞向量就由它對應(yīng)的所有n-gram的向量求和得到;

          • s3:所有的單詞向量以及字符級別的n-gram向量會同時相加求平均作為訓(xùn)練模型的輸入;

          2.7 fastText 詞內(nèi)的n-gram信息 存在問題?

          • 由于需要估計的參數(shù)多,模型可能會比較膨脹

          • 壓縮模型的建議:

            • 采用hash-trick:由于n-gram原始的空間太大,可以用某種hash函數(shù)將其映射到固定大小的buckets中去,從而實現(xiàn)內(nèi)存可控;

            • 采用quantize命令:對生成的模型進(jìn)行參數(shù)量化和壓縮;

            • 減小最終向量的維度。

          三、 層次化Softmax回歸(Hierarchical Softmax) 介紹篇

          3.1 為什么要用 層次化Softmax回歸(Hierarchical Softmax) ?

          3.2 層次化Softmax回歸(Hierarchical Softmax) 的思想是什么?

          • 將一個全局多分類的問題,轉(zhuǎn)化成為了若干個二元分類問題,從而將計算復(fù)雜度從O(V)降到O(logV);

          • 每個二元分類問題,由一個基本的邏輯回歸單元來實現(xiàn)

          3.3 層次化Softmax回歸(Hierarchical Softmax) 的步驟?


          • 步驟:

            • 從根結(jié)點(diǎn)開始,每個中間結(jié)點(diǎn)(標(biāo)記成灰色)都是一個邏輯回歸單元,根據(jù)它的輸出來選擇下一步是向左走還是向右走;

            • 上圖示例中實際上走了一條“左-左-右”的路線,從而找到單詞w?。而最終輸出單詞w?的概率,等于中間若干邏輯回歸單元輸出概率的連乘積;



          四、fastText 存在問題?

          參考資料

          1. 神經(jīng)網(wǎng)路語言模型(NNLM)的理解

          2. NLP 面試題(一)和答案,附有參考URL



          瀏覽 108
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  色狠狠网| 操色逼网站 | 免费在线成人网站 | 日韩一级片免费视频 | 成人视频欧美 |