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

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

3天內(nèi)不再提示

fastText有兩大用途——文本分類和Word Embedding

深度學習自然語言處理 ? 來源:SimpleAI ? 作者:SimpleAI ? 2021-03-05 15:38 ? 次閱讀

今天我們來看 Mikolov 大佬 2016 年的另一大巨作——fastText。2013 年大佬在 Google 開源了 Word2Vec,2016 年剛就職于 FaceBook 就開源了 fastText,全都掀起了軒然大波。

fastText 模型有兩篇相關論文:

《Bag of Tricks for Efficient Text Classification》

《Enriching Word Vectors with Subword Information》

截至目前為止,第一篇有 1500 多引用量,第二篇有 2700 多引用量。

從這兩篇文的標題我們可以看出來 fastText 有兩大用途——文本分類和Word Embedding。

由于 fastText 模型比較簡單,所以我們可以把兩篇論文放在一起看。

1. Introduction

fastText 提供了簡單而高效的文本分類和 Word Embedding 方法,分類精度比肩深度學習而且速度快上幾個數(shù)量級。

舉個例子:使用標準的 CPU 可以在十分鐘的時間里訓練超過 10 億個單詞,在不到一分鐘的時間里可以將 50 萬個句子分到 31 萬個類別中。

可以看到 fastText 的速度有多驚人。

2. fastText

fastText 之所以能做到速度快效果好主要是兩個原因:N-Gram 和 Hierarchical softmax。由于 Hierarchical softmax 在 Word2Vec 中已經(jīng)介紹過了,所以我們只介紹一下 N-gram。

2.1 N-gram

N-gram 是一種基于統(tǒng)計語言模型的算法,常用于 NLP 領域。其思想在于將文本內(nèi)容按照字節(jié)順序進行大小為 N 的滑動窗口操作,從而形成了長度為 N 的字節(jié)片段序列,其片段我們稱為 gram。

以“谷歌是家好公司” 為例子:

二元 Bi-gram 特征為:谷歌 歌是 是家 家好 好公 公司

三元 Tri-gram 特征為:谷歌是 歌是家 是家好 家好公 好公司

當然,我們可以用字粒度也可以用詞粒度。

例如:谷歌 是 家 好 公司二元 Bi-gram 特征為:谷歌是 是家 家好 好公司三元 Tri-gram 特征為:谷歌是家 是家好 家好公司

N-gram 產(chǎn)生的特征只是作為文本特征的候選集,后面還可以通過信息熵、卡方統(tǒng)計、IDF 等文本特征選擇方式篩選出比較重要的特征。

2.2 Embedding Model

這邊值得注意的是,fastText 是一個庫,而不是一個算法。類似于 Word2Vec 也只是一個工具,Skip-Gram 和 CBOW 才是其中的算法。

?

fastText is a library for efficient learning of word representations and sentence classification.

fastText 在 Skip-Gram 的基礎上實現(xiàn) Word Embedding,具體來說:fastText 通過 Skip-Gram 訓練了字符級別 N-gram 的 Embedding,然后通過將其相加得到詞向量。

舉個例子:對于 “where” 這個單詞來說,它的 Tri-gram 為:“”。由于字符串首尾會有符號,所以這里用 < 表示前綴, > 表示后綴。textFast 是對 這些 Tri-gram 進行訓練,然后將這 5 個 tri-gram 的向量求和來表示 “where” 的詞向量。

這樣做主要有兩個好處:

低頻詞生成的 Embedding 效果會更好,因為它們的 N-gram 可以和其它詞共享而不用擔心詞頻過低無法得到充分的訓練;

對于訓練詞庫之外的單詞(比如拼錯了),仍然可以通過對它們字符級的 N-gram 向量求和來構(gòu)建它們的詞向量。

為了節(jié)省內(nèi)存空間,我們使用 HashMap 將 N-gram 映射到 1 到 K,所以單詞的除了存儲自己在單詞表的 Index 外,還存儲了其包含的 N-gram 的哈希索引

2.3 Classification Model

一般來說,速度快的模型其結(jié)構(gòu)都會比較簡單,fastText 也不例外,其架構(gòu)圖如下圖所示:

2279e3e0-7c22-11eb-8b86-12bb97331649.png

fastText Architecture

其中, 為一個句子的 N-gram 特征。

我們看到這個架構(gòu)是不是感覺似曾相似?

fastText 與 Word2Vec 的 CBOW 架構(gòu)是非常相似的,但與 CBOW 不同的是:fastText 輸入不僅是多個單詞 Embedding 向量,還將字符級別的 N-gram 向量作為額外的特征,其預測是也不是單詞,而是 Label(fastText 主要用于文本分類,所以預測的是分類標簽)。

3. Experiment

我們簡單看下 fastText 的兩個實驗——Embedding 和文本分類;

3.1 Embeddng

sisg 是 fastText 用于 Embedding 的模型,實驗效果如下:

3.2 Classification

分類實驗的精度 fastText 比 char-CNN、 char-RCNN 要好,但比 VDCNN 要差。(但這里注意:fastText 僅僅使用 10 個隱藏層節(jié)點 ,訓練了 5 次 epochs。)

在速度上 fastText 快了幾個數(shù)量級。(此處注意:CNN 和 VDCNN 用的都是 Tesla K40 的 GPU,而 fastText 用的是 CPU)

下面是標簽預測的結(jié)果,兩個模型都使用 CPU 并開了 20 個線程:

4. Conclusion

一句話總結(jié):fastText 是一個用于文本分類和 Embedding 計算的工具庫,主要通過 N-gram 和 Hierarchical softmax 保證算法的速度和精度。

關于 Hierarchical softmax 為什么會使 fastText 速度那么快?而在 Word2Vec 中沒有看到類似的效果?

我覺得是因為 fastText 的標簽數(shù)量相比 Word2Vec 來說要少很多,所以速度會變的非???。其次 Hierarchical softmax 是必要的,如果不同的話速度會慢非常多。

另外,fastText 可能沒有什么創(chuàng)新,但他卻異?;鸨?,可能有多個原因,其中包括開源了高質(zhì)量的 fastText,類似 Work2Vec,當然也會有 Mikolov 大佬和 Facebook 的背書。

總的來說,fastText 還是一個極具競爭力的一個工具包。

5. Reference

《Bag of Tricks for Efficient Text Classification》

《Enriching Word Vectors with Subword Information》

責任編輯:lq

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

    關注

    23

    文章

    4623

    瀏覽量

    93105
  • 文本分類
    +關注

    關注

    0

    文章

    18

    瀏覽量

    7331
  • 深度學習
    +關注

    關注

    73

    文章

    5510

    瀏覽量

    121338

原文標題:fastText:極快的文本分類工具

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

收藏 人收藏

    評論

    相關推薦

    如何使用自然語言處理分析文本數(shù)據(jù)

    媒體、新聞報道、用戶評論等)收集你感興趣的文本數(shù)據(jù)。 數(shù)據(jù)清洗 :去除無關字符(如HTML標簽、特殊符號等),確保文本數(shù)據(jù)干凈且一致。 2. 預處理 分詞 :將文本分割成有意義的單元(單詞、短語或句子),這取決于使用的語言和分析
    的頭像 發(fā)表于 12-05 15:27 ?342次閱讀

    生物芯片哪些分類

    全球首個生物芯片產(chǎn)品問世雖然已有20多年的時間,但生物芯片分類方式仍沒有完全統(tǒng)一的標準。比較常見的分類方式3種,分別是按用途、作用方式和成分來分類
    的頭像 發(fā)表于 12-03 15:42 ?310次閱讀

    放大電路的基本分析方法

    放大電路是電子學中的基礎組成部分,用于增強信號的幅度而不改變其基本特性。在電子工程中,放大電路的設計和分析是至關重要的。放大電路的基本分析方法主要有種:直流分析和交流分析。 直流分析 直流分析
    的頭像 發(fā)表于 09-23 10:40 ?652次閱讀

    普強成功榮登兩大榜單

    普強憑借其深厚的技術積累和創(chuàng)新能力,不斷推出高性能、高質(zhì)量的產(chǎn)品和解決方案,成功榮登兩大榜單,這是對普強卓越的技術實力和應用層面的肯定。
    的頭像 發(fā)表于 09-13 10:34 ?1147次閱讀

    雷達的基本分類方法

    電子發(fā)燒友網(wǎng)站提供《雷達的基本分類方法.pdf》資料免費下載
    發(fā)表于 09-11 09:09 ?6次下載

    動圖展示兩大電機系統(tǒng)的運行順序

    上一期的芝識課堂中,想必大家已經(jīng)了解了直流刷電機和無刷電機的基本驅(qū)動原理及相關的差異,今天我們就以動圖形式展示兩大電機系統(tǒng)的運行順序,幫助大家成為電機系統(tǒng)的掌控者!
    的頭像 發(fā)表于 07-19 14:26 ?744次閱讀
    動圖展示<b class='flag-5'>兩大</b>電機系統(tǒng)的運行順序

    利用TensorFlow實現(xiàn)基于深度神經(jīng)網(wǎng)絡的文本分類模型

    要利用TensorFlow實現(xiàn)一個基于深度神經(jīng)網(wǎng)絡(DNN)的文本分類模型,我們首先需要明確幾個關鍵步驟:數(shù)據(jù)預處理、模型構(gòu)建、模型訓練、模型評估與調(diào)優(yōu),以及最終的模型部署(盡管在本文中,我們將重點放在前四個步驟上)。下面,我將詳細闡述這些步驟,并給出一個具體的示例。
    的頭像 發(fā)表于 07-12 16:39 ?916次閱讀

    nlp自然語言處理模型哪些

    : 詞嵌入(Word Embedding) 詞嵌入是將詞匯映射到高維空間的向量表示,使得語義相近的詞在向量空間中的距離更近。常見的詞嵌入模型Word2Vec:由Mikolov等人
    的頭像 發(fā)表于 07-05 09:57 ?803次閱讀

    卷積神經(jīng)網(wǎng)絡在文本分類領域的應用

    在自然語言處理(NLP)領域,文本分類一直是一個重要的研究方向。隨著深度學習技術的飛速發(fā)展,卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,簡稱CNN)在圖像識別領域取得了
    的頭像 發(fā)表于 07-01 16:25 ?771次閱讀

    電機的分類哪些

    電機,作為現(xiàn)代工業(yè)、交通、家電等領域中不可或缺的重要設備,其種類繁多,功能各異。從工作電源、結(jié)構(gòu)和工作原理、起動與運行方式、用途、轉(zhuǎn)子結(jié)構(gòu)以及運轉(zhuǎn)速度等多個維度出發(fā),電機可以被劃分為多個類別。本文將詳細探討電機的分類,并結(jié)合相關數(shù)據(jù)和信息,對各類電機進行詳細介紹。
    的頭像 發(fā)表于 06-25 14:57 ?1412次閱讀

    交換機的基本分類

      交換機作為網(wǎng)絡通訊中的核心設備之一,其在網(wǎng)絡架構(gòu)中起著至關重要的作用。隨著信息技術的飛速發(fā)展,交換機也在不斷演進和革新,以滿足日益復雜的網(wǎng)絡需求。本文將對交換機的分類及其特點進行詳細介紹,以期為讀者提供清晰、深入的理解。
    的頭像 發(fā)表于 06-06 11:06 ?2193次閱讀

    鴻蒙UI界面——@ohos.measure (文本計算)

    : MeasureOptions): number 計算指定文本單行布局下的寬度。 系統(tǒng)能力: SystemCapability.ArkUI.ArkUI.Full 參數(shù): ? 參數(shù)名 類型 必填 說明 options
    的頭像 發(fā)表于 02-22 17:02 ?796次閱讀
    鴻蒙UI界面——@ohos.measure (<b class='flag-5'>文本</b>計算)

    了解如何使用PyTorch構(gòu)建圖神經(jīng)網(wǎng)絡

    圖神經(jīng)網(wǎng)絡直接應用于圖數(shù)據(jù)集,您可以訓練它們以預測節(jié)點、邊緣和與圖相關的任務。它用于圖和節(jié)點分類、鏈路預測、圖聚類和生成,以及圖像和文本分類。
    發(fā)表于 02-21 12:19 ?803次閱讀
    了解如何使用PyTorch構(gòu)建圖神經(jīng)網(wǎng)絡

    村田電感用途分類

    村田電感用途分類
    的頭像 發(fā)表于 02-18 14:20 ?386次閱讀

    交流接觸器的分類哪些

    觸點分類: 交流接觸器按照其內(nèi)部是否有機械觸點,可以分為觸點接觸器和無觸點接觸器兩大類。觸點接觸器:這是傳統(tǒng)且廣泛使用的接觸器類型,它們依靠物理觸點的閉合與斷開來控制電路的通斷。這
    的頭像 發(fā)表于 01-25 10:19 ?2020次閱讀