Text-CNN、Word2Vec、RNN、NLP、Keras、fast.ai-20180504

本文集僅為收錄自己感興趣、感覺不錯的文章與資源,方便日后查找和閱讀,所以排版可能會讓人覺得亂。內(nèi)容會不斷更新與調(diào)整。文中涉及公眾號的文章鏈接可以會失效,知道如何生成永久鏈接的小伙伴還望告知。


此前更新的不頻繁,盡量之后多更文。另外歡迎加群“Python交友娛樂會所”(QQ群:613176398)。


本文關(guān)鍵詞:Text-CNN、Word2Vec、Keras、RNN、NLP、fast.ai


2017知乎看山杯 從入門到第二

  • 利用一個暑假的時間,做了研究生生涯中的第一個正式比賽,最終排名第二,有些小遺憾,但收獲更多的是成長和經(jīng)驗。我們之前沒有參加過機器學(xué)習(xí)和文本相關(guān)的比賽,只是學(xué)過一些理論基礎(chǔ)知識,沒有付諸過實踐,看過的幾篇論文也多虧前輩的分享(一個是用深度學(xué)習(xí)(CNN RNN Attention)解決大規(guī)模文本分類問題 - 綜述和實踐,另一個是brightmart的 text_classification,里面用Keras實現(xiàn)了很多文本分類的模型)。
  • 下面對在這次比賽中用到的方法和收獲的經(jīng)驗,做一個簡單的總結(jié)和分享。
image

基于 word2vec 和 CNN 的文本分類 :綜述 & 實踐

  • 傳統(tǒng)的向量空間模型(VSM)假設(shè)特征項之間相互獨立,這與實際情況是不相符的,為了解決這個問題,可以采用文本的分布式表示方式(例如 word embedding形式),通過文本的分布式表示,把文本表示成類似圖像和語音的連續(xù)、稠密的數(shù)據(jù)。
  • 這樣我們就可以把深度學(xué)習(xí)方法遷移到文本分類領(lǐng)域了?;谠~向量和卷積神經(jīng)網(wǎng)絡(luò)的文本分類方法不僅考慮了詞語之間的相關(guān)性,而且還考慮了詞語在文本中的相對位置,這無疑會提升在分類任務(wù)中的準(zhǔn)確率。 經(jīng)過實驗,該方法在驗證數(shù)據(jù)集上的F1-score值達(dá)到了0.9372,相對于原來業(yè)務(wù)中所采用的分類方法,有20%的提升。

Text-CNN

Text-CNN 文本分類

  • TextCNN 是利用卷積神經(jīng)網(wǎng)絡(luò)對文本進(jìn)行分類的算法,由 Yoon Kim 在 “Convolutional Neural Networks for Sentence Classification” 一文 (見參考[1]) 中提出. 是2014年的算法.


    TextCNN-1

    TextCNN-2

文本分類需要CNN?No!fastText完美解決你的需求(后篇)

  • 想必通過前一篇的介紹,各位小主已經(jīng)對word2vec以及CBOW和Skip-gram有了比較清晰的了解。在這一篇中,小編帶大家走進(jìn)業(yè)內(nèi)最新潮的文本分類算法,也就是fastText分類器。fastText與word2vec的提出者之所以會想到用fastText取代CNN(卷積神經(jīng)網(wǎng)絡(luò))等深度學(xué)習(xí)模型,目的是為了在大數(shù)據(jù)情況下提高運算速度。

使用Keras進(jìn)行深度學(xué)習(xí):(三)使用text-CNN處理自然語言(上)

  • CNN模型首次使用在文本分類,是Yoon Kim發(fā)表的“Convolutional Neural Networks for Sentence Classification”論文中。在講解text-CNN之前,先介紹自然語言處理和Keras對自然語言的預(yù)處理。

fastText、TextCNN、TextRNN……這里有一套NLP文本分類深度學(xué)習(xí)方法庫供你選擇

[站外圖片上傳中...(image-dd1d2e-1525483118820)]
Another Twitter sentiment analysis with Python?—?Part 11 (CNN + Word2Vec)

  • This is the 11th and the last part of my Twitter sentiment analysis project.
    挺不錯的系列

Dive Into NLTK, Part XI: From Word2Vec to WordNet
挺不錯的系列

spacy.io

Using pre-trained word embeddings in a Keras model

  • In this tutorial, we will walk you through the process of solving a text classification problem using pre-trained word embeddings and a convolutional neural network.
  • The full code for this tutorial is available on Github.

Keras-RNN

結(jié)合DL with python的書一起看

image

循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)介紹2:keras代碼分析
目標(biāo):使用keras搭建RNN網(wǎng)路,使用推文數(shù)據(jù)訓(xùn)練模型

思路:準(zhǔn)備工作 -> 數(shù)據(jù)序列化 -> 得到詞嵌入矩陣 -> 訓(xùn)練網(wǎng)絡(luò)

  • 準(zhǔn)備工作:讀取相關(guān)庫函數(shù),讀入數(shù)據(jù)集,劃分訓(xùn)練集和測試集,
  • 數(shù)據(jù)序列化:將文本轉(zhuǎn)換為數(shù)字序列
  • 得到詞嵌入矩陣:讀取glove模型,得到詞嵌入矩陣
  • 訓(xùn)練網(wǎng)絡(luò):劃分訓(xùn)練集和驗證集,搭建簡單的RNN網(wǎng)絡(luò),訓(xùn)練網(wǎng)絡(luò)

100行深度學(xué)習(xí)文本分類

  • 深度學(xué)習(xí)常用的文本分類網(wǎng)絡(luò)有LSTM和GRU,同時CNN在文本分類中也有一定的效果。 本文將簡單實現(xiàn)一個LSTM文本分類框架。
    NLP文本分類實戰(zhàn): 傳統(tǒng)方法與深度學(xué)習(xí)
  • 文檔分類是指給定文檔p(可能含有標(biāo)題t),將文檔分類為n個類別中的一個或多個,本文以人機寫作為例子,針對有監(jiān)督學(xué)習(xí)簡單介紹傳統(tǒng)機器學(xué)習(xí)方法和深度學(xué)習(xí)方法。
  • 包含數(shù)據(jù)預(yù)處理:jieba、gensim特征提取,傳統(tǒng)ML方法Adaboost以及深度學(xué)習(xí)方法
  • 本文嘗試了多層CNN、并行CNN、RNN與CNN的結(jié)合、基于Hierarchical Attention的RNN、遷移學(xué)習(xí)、多任務(wù)學(xué)習(xí)、聯(lián)合模型學(xué)習(xí)。在單模型和聯(lián)合模型學(xué)習(xí)上,我們復(fù)現(xiàn)、借鑒了2017知乎看山杯比賽第一名陳云的方案,在此表示感謝。深度學(xué)習(xí)部分代碼都是使用Keras框架實現(xiàn)的。

NLP

image

用深度學(xué)習(xí)(CNN RNN Attention)解決大規(guī)模文本分類問題 - 綜述和實踐

  • 近來在同時做一個應(yīng)用深度學(xué)習(xí)解決淘寶商品的類目預(yù)測問題的項目,恰好碩士畢業(yè)時論文題目便是文本分類問題,趁此機會總結(jié)下文本分類領(lǐng)域特別是應(yīng)用深度學(xué)習(xí)解決文本分類的相關(guān)的思路、做法和部分實踐的經(jīng)驗。

從CNN視角看在自然語言處理上的應(yīng)用

  • 本文主要以CMU CS 11-747(Neural Networks for NLP)課程中Convolutional Networks for Text這一章節(jié)的內(nèi)容作為主線進(jìn)行講解。本文主要包括了對如下幾塊內(nèi)容的講解,第一部分是對于常見的語言模型在進(jìn)行文本表示時遇到的問題以及引入卷積神經(jīng)網(wǎng)絡(luò)的意義,第二部分是對于卷積神經(jīng)網(wǎng)絡(luò)模塊的介紹,第三部分主要是介紹一些卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于自然語言處理中的論文,第四部分主要是對這一篇綜述進(jìn)行總結(jié)。

深度學(xué)習(xí)在文本分類中的應(yīng)用

  • 本文總結(jié)了文本分類相關(guān)的深度學(xué)習(xí)模型、優(yōu)化思路以及今后可以進(jìn)行的一些工作。

鵝廠優(yōu)文 | 小姐姐如何利用TextCNN識別臟話

長文本的向量表達(dá)技術(shù)綜述

DL4NLP —— 序列標(biāo)注:BiLSTM-CRF模型做基于字的中文命名實體識別
這個博客也可以看看
Determined22

image

TextBoxes: 一個快速文本檢測器

NLP中自動生產(chǎn)文摘(auto text summarization)

用CNN分100,000類圖像
在這篇文章中我們嘗試了 用CNN分類113,287類圖像(MSCOCO)。

  • 實際上我們將每張訓(xùn)練集中的圖像認(rèn)為成一類。(當(dāng)然, 如果只用一張圖像一類,CNN肯定會過擬合)。同時,我們利用了5句圖像描述(文本),加入了訓(xùn)練。所以每一類相當(dāng)于 有6個樣本 (1張圖像+5句描述)。
  • 文章想解決的問題是instance-level的retrieval,也就是說 如果你在5000張圖的image pool中,要找“一個穿藍(lán)色衣服的金發(fā)女郎在打車?!?實際上你只有一個正確答案。不像class-level 或category-level的 要找“女性“可能有很多個正確答案。所以這個問題更細(xì)粒度,也更需要detail的視覺和文本特征。

fast.ai

image

Fast.ai 最實戰(zhàn)深度學(xué)習(xí)在線課程 Lesson1
Fast.ai 最實戰(zhàn)深度學(xué)習(xí)在線課程 Lesson1-7-搜狗微信
Fast.ai 深度學(xué)習(xí)實戰(zhàn)課程-騰訊視頻
在 fast.ai 課堂上,我總結(jié)的 8 個深度學(xué)習(xí)最佳實踐


深度學(xué)習(xí)+自然語言處理(NLP)”專欄索引
CRF和LSTM 模型在序列標(biāo)注上的優(yōu)劣?


句法分析(使用NLTK+Stanford nlp、LTP)
劉兵《Entity and aspect extraction for opinion mining 》翻譯筆記
哈工大車萬翔:NLP中的深度學(xué)習(xí)模型是否依賴于樹結(jié)構(gòu)?

Word2vec

image

無痛理解word2vec
大白話講解word2vec到底在做些什么
Deep Learning in NLP (一)詞向量和語言模型-來博士
NLP 秒懂詞向量Word2vec的本質(zhì)
word2vec前世今生
word2vec 中的數(shù)學(xué)原理詳解(一)目錄和前言
詞向量-paddlepaddle
詞向量-paddlepaddle-極客學(xué)院

回望2017,基于深度學(xué)習(xí)的NLP研究大盤點
張鈸院士:AI科學(xué)突破的前夜,教授們應(yīng)當(dāng)看到什么?
NLP 解決方案是如何被深度學(xué)習(xí)改寫的?
Semantic Data Retrieval: Search, Ranking, and Summarization-講義網(wǎng)站
神經(jīng)機器翻譯綜述
SEE: Syntax-aware Entity Embedding for Neural Relation Extraction
https://arxiv.org/abs/1801.03603

image

Word embeddings in 2017: Trends and future directions

(Stanford CS224d) Deep Learning and NLP課程筆記(二):word2vec

  • wordNet的缺點
  • one-hot encoding所有詞相似度都是0,且存在數(shù)據(jù)稀疏性和維度災(zāi)難的問題;
  • Distributional Representation。從大量語料中構(gòu)建一個co-occurrence矩陣來定義word representation。矩陣的構(gòu)造通常有兩種方式:基于document和基于windows。通過統(tǒng)計word與document共現(xiàn)的次數(shù)得到的矩陣被稱為word-document矩陣。這個矩陣一般被用于主題模型。相同主題的word之間往往有著較高的相似度。但該矩陣很難描述word的語法信息(例如POS tag)。我們在課堂上主要講授的是第二類矩陣:word-context矩陣。通過統(tǒng)計一個事先指定大小的窗口內(nèi)的word共現(xiàn)次數(shù),不僅可以刻畫word的語義信息,還在一定程度上反應(yīng)了word的語法結(jié)構(gòu)信息。co-occurrence矩陣定義的詞向量在一定程度上緩解了one-hot向量相似度為0的問題,但沒有解決數(shù)據(jù)稀疏性和維度災(zāi)難的問題。
  • SVD分解:低維詞向量的間接學(xué)習(xí)?;赾o-occurrence矩陣得到的離散詞向量存在著高維和稀疏性的問題,一個自然而然的解決思路是對原始詞向量進(jìn)行降維,從而得到一個稠密的連續(xù)詞向量。然而,高昂的計算復(fù)雜度(O(mn**2))是SVD算法的性能瓶頸。每一個新詞的加入都需要在一個新的矩陣上重新運行一遍SVD分解。
  • word2vec:低維詞向量的直接學(xué)習(xí)。word2vec模型背后的基本思想是對出現(xiàn)在上下文環(huán)境里的詞進(jìn)行預(yù)測(事實上,后面會看到,這種對上下文環(huán)境的預(yù)測本質(zhì)上也是一種對co-occurrence統(tǒng)計特征的學(xué)習(xí))。梯度計算需要對每個上下文窗口都計算出訓(xùn)練集中所有單詞的條件概率。這對于動輒上百萬的詞典而言,幾乎是一件不可能完成的任務(wù)。因此,Mikolov在他2013年發(fā)表的論文里提出了一些性能優(yōu)化的Hacks,包括近似歸一化的層次Softmax,和避免歸一化的負(fù)采樣技術(shù)。
  • 下一節(jié)課,學(xué)習(xí)結(jié)合二者優(yōu)勢的新的詞向量模型——Glove模型。

(Stanford CS224d) Deep Learning and NLP課程筆記(三):GloVe與模型的評估

  • 本節(jié)課繼續(xù)講授word2vec模型的算法細(xì)節(jié),并介紹一種新的基于共現(xiàn)矩陣的詞向量模型——GloVe模型。最后,重點介紹word2vec模型評估的兩種方式。
  • 負(fù)采樣(Negative Sampling)的似然函數(shù),避免了歸一化概率的計算。
  • GloVe模型
    上節(jié)課比較了基于統(tǒng)計的詞向量模型和基于預(yù)測的詞向量模型。前者以基于SVD分解技術(shù)的LSA模型為代表,通過構(gòu)建一個共現(xiàn)矩陣得到隱層的語義向量,充分利用了全局的統(tǒng)計信息。然而這類模型得到的語義向量往往很難把握詞與詞之間的線性關(guān)系(例如著名的King、Queen、Man、Woman等式)。后者則以基于神經(jīng)網(wǎng)絡(luò)的Skip-gram模型為代表,通過預(yù)測一個詞出現(xiàn)在上下文里的概率得到embedding詞向量。這類模型的缺陷在于其對統(tǒng)計信息的利用不充分,訓(xùn)練時間與語料大小息息相關(guān)。不過,其得到的詞向量能夠較好地把握詞與詞之間的線性關(guān)系,因此在很多任務(wù)上的表現(xiàn)都要略優(yōu)于SVD模型。既然兩種模型各有優(yōu)劣,那么能不能二者各取其長,構(gòu)造一個更強大的詞向量模型呢?這就是接下來要介紹的GloVe模型。在GloVe的原始論文里,作者首先分析了Skip-gram模型能夠挖掘出詞與詞之間線性關(guān)系的背后成因,然后通過在共現(xiàn)矩陣上構(gòu)造相似的條件,得到一個基于全局信息的詞向量模型——GloVe模型。
  • 模型的評估:在NLP的研究領(lǐng)域里,一個模型的評估通常有兩種方式:Intrinsic 和 Extrinsic。

Kaggle

數(shù)據(jù)挖掘進(jìn)階:kaggle競賽top代碼分享


怎樣使用github

MarkDown入門指南

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容