Showing posts with label _AI:2022. Show all posts
Showing posts with label _AI:2022. Show all posts

Friday, December 10, 2021

Introduction to Natural Language Processing

Introduction to Natural Language Processing

2020/07/13

-----

一、Introduction to Natural Language Processing


https://pixabay.com/zh/photos/especially-message-positive-setting-5243208/

前言:

本篇為 NLP 的簡介。一開始先介紹 CV 的向量,接著再介紹 NLP 的向量。圖像跟文字雖然各有其特性,但是進到向量層級後,主要都是數學的運算。所以奉勸想要深入 CV 或 NLP 的同好,基本的 CV 跟 NLP 知識,都是深度學習的常識,都要掌握起來。

接下來是 LSTM,基本的時間序列運算單元。Seq2seq 與 Attention 運用 LSTM 架構 Codec 進行機器翻譯等 NLP 任務。ConvS2S 將 LSTM 換成一維卷積可以平行運算,並將 Attention 拆解成 QKV。Transformer 則分別在 Encoder 與 Decoder 端有 Multi-head 的 Self-attention。

GPT-1 運用 Transformer 的 Encoder 架構單向的預訓練模型。ELMo 是雙向的 LSTM 預訓練模型。BERT 吸收 ELMo 設計,運用 Transformer 的 Decoder 架構雙向的預訓練模型。

-----

二、Outline


http://hemingwang.blogspot.com/2020/07/introduction-to-natural-language.html

Introduction to Natural Language Processing

◎ Vector
◎ Word2vec(Word to Vector)

◎ LSTM(Long Short-Term Memory)
◎ Seq2seq(Sequence to Sequence)
◎ Attention
◎ ConvS2S(Convolutonal Sequence to Sequence)
◎ Transformer

◎ BERT(Bidirectional Encoder Representations from Transformers)

-----

三、Pixel


http://hemingwang.blogspot.com/2017/03/ailenet-f6.html

說明:

本次介紹深度學習的自然語言處理。由於不少人認為 CV 或 NLP 兩者差距很大,因此在進入 NLP 之前,我們利用三張圖片講一點 CV 跟 NLP 共通之處:向量。CV 處理的是數位圖片,由像素構成,像素的值,在灰階而言,代表明暗度。三張 RGB 的灰階圖片,可以構成彩色圖片。

-----

四、3D Vector


https://c3d.libretexts.org/CalcPlot3D/CalcPlot3D-Help/section-vectorexplorations.html

說明:

如果我們把一張灰階圖片,按照像素的值 3D 化,那圖片就變成向量,每個像素是空間上的一個點。

-----

五、Conv3


https://medium.com/coinmonks/paper-review-of-vggnet-1st-runner-up-of-ilsvlc-2014-image-classification-d02355543a11

說明:

影像的特徵之一,是點與附近的點關連性很大,跟遠處的點則不一定。所以數位影像處理,我們會運用一個小的濾波器,譬如 3x3 或 5x5,進行處理。經典的分類模型 VGGNet,反覆運用 3x3 的卷積核(濾波器)串成較大的卷積核,越後面的視野越大。

點跟附近的點關連性很大,點跟自己位置的點關連性也很大。所以有 1x1 Convolution 或 Conv1,其實跟標準的卷積不一樣。Conv1 可以將同一層的 Feature Maps 壓縮成較少的張數或擴展成較多的張數。壓縮是減少運算量而保留訊息,擴展主要是調整維度的一致性以便運算。相關的文章有 NIN、SENet、SKNet。

以上,我們用三張圖,簡單介紹 CV 的向量。

語言跟影像有一個很大的差異是圖像通常用語言進行 label,而在語言每個字跟每個字是互相 label,所以海量資料的預訓練模型 BERT 目前是 NLP 的主流。

-----

六、One Hot Encoding


https://hackmd.io/@allen108108/SJ42exwlH

說明:

自然語言要用電腦進行處理,第一步還是要先把文字向量化。

一般是 one hot encoding。假設一本字典有三千個字,我們可以用一個維度三千的陣列代表一個字,然後依序編碼。

One hot encoding 有兩個主要缺點:第一,同義詞或同類別的詞無法從數值上看出關係。第二,稀疏矩陣佔的空間很大。

-----

七、Word Embedding

如果我們把高維度的向量壓縮成低維度的向量,譬如 3000 變成 512,就能解決上面兩個問題:同義詞與佔用空間。經典的演算法是 Word2vec。

-----

八、King - Man + Woman = Queen


https://arxiv.org/abs/1708.02709

說明:

舉一個經典的例子,經過 Word2vec 之後,King(向量) - Man (向量)+ Woman(向量) = Queen(向量)。

-----

九、Word2vec


https://arxiv.org/abs/1301.3781

https://medium.com/@tengyuanchang/%E8%AE%93%E9%9B%BB%E8%85%A6%E8%81%BD%E6%87%82%E4%BA%BA%E8%A9%B1-%E7%90%86%E8%A7%A3-nlp-%E9%87%8D%E8%A6%81%E6%8A%80%E8%A1%93-word2vec-%E7%9A%84-skip-gram-%E6%A8%A1%E5%9E%8B-73d0239ad698

說明:

Word2vec 其實由兩個演算法構成,CBOW 跟 Skip-gram。CBOW 利用周邊的字預測中間的字,Skip-gram 利用中間的字預測周邊的字。

-----

一0、Skip-gram


https://lilianweng.github.io/lil-log/2017/10/15/learning-word-embedding.html

說明:

以下我們簡單解說 Skip-gram。

-----

一一、Skip-gram Model



https://zhuanlan.zhihu.com/p/27234078

說明:

首先進行 one hot encoding,這是輸入層的資料。隱藏層只有一層,也沒有激活函數,隱藏層的神經元數目,就是詞向量的維度。最後則是輸出層,輸出層的輸出個數,跟 one hot encoding 的維度相同。這裡會轉換成 softmax,以便成為一個機率分布。

-----

一二、Skip Gram Data



https://zhuanlan.zhihu.com/p/27234078

訓練時會先有一個 sliding window 滑過所有句子。假定 window 大小為 5,則在句子中間,一次會有四筆訓練資料產生。反向傳播法一般會在 LeNet 這個主題說明,在此則不展開。

-----

一三、Skip-gram Result


https://zhuanlan.zhihu.com/p/27234078

說明:

訓練完後,輸入層跟隱藏層的神經元之間的權重,是一個陣列,每一列代表一個字的 word embedding。

以上簡單用八張圖說明 Word2vec。

-----

一四、RNN


http://hemingwang.blogspot.com/2019/09/understanding-lstm-networks.html

說明:

RNN 是處理時間序列的運算單元。跟時間有關的資料,都適合用 RNN 處理,譬如音樂、語音、震動的值、等等。語言轉成向量後,也可以用 RNN 來處理。RNN 構造簡單,但有很多缺點,後來有較複雜的設計。

-----

一五、LSTM


http://hemingwang.blogspot.com/2019/09/understanding-lstm-networks.html

說明:

基於 RNN,產生了 LSTM。三門設計,第一個門是忘記門,也就是上一筆資料要保留多少訊息。第二個門是輸入門。第三個門是輸出門。三門設計可以保留訊息到比較後面,中途流失較少。

最早在 LeNet,激活函數用 sigmoid。此處激活函數用 tanh。而 sigmoid 在此的用途是當「門」,讓通過的資料百分比,控制在 0 與 1 之間。

-----

一六、Stock


https://lilianweng.github.io/lil-log/2017/07/08/predict-stock-prices-using-RNN-part-1.html

說明:

這裡列出一個 LSTM 預測股價的應用。

-----

一七、Seq2seq


https://papers.nips.cc/paper/5346-sequence-to-sequence-learning-with-neural-networks

https://medium.com/@gau820827/%E6%95%99%E9%9B%BB%E8%85%A6%E5%AF%AB%E4%BD%9C-ai%E7%90%83%E8%A9%95-seq2seq%E6%A8%A1%E5%9E%8B%E6%87%89%E7%94%A8%E7%AD%86%E8%A8%98-pytorch-python3-31e853573dd0

說明:

Seq2seq,運用 LSTM 把一串字壓縮成一個向量。然後再轉成對應的字串。

比方說,英文可以轉德文,論文可以轉摘要,摘要可以轉標題,關鍵字可以轉短文,等等。

怎麼做?靠訓練。

以英德翻譯為例,首先有一個資料集,裡面是對應的英文句子跟德文句子,丟進去後,輸出要跟丟進去的德文句子越接近越好。用反向傳播法 BPTT 讓損失函數的值越來越小,訓練完成後,你丟英文句子進去,對應的德文句子就跑出來了。

-----

一八、Seq2seq


https://jeddy92.github.io/JEddy92.github.io/ts_seq2seq_intro/

說明:

GRU 是有別於 LSTM 的運算單元。設計上較簡單,但是較不容易理解。效能上則是類似,兩者用的人都很多。

-----

一九、Attention


https://arxiv.org/abs/1409.0473

https://medium.com/@bgg/seq2seq-pay-attention-to-self-attention-part-1-%E4%B8%AD%E6%96%87%E7%89%88-2714bbd92727

說明:

一個句子若很長,壓縮成向量後,就容易損失訊息。每一個輸出的字,都分配有一個向量,描述其跟每個輸入字的關連性,就比壓縮成單一向量解碼要精確的多。

-----

二0、Attention


https://zhuanlan.zhihu.com/p/37601161

說明:

較易理解的架構。

-----

廿一、Attention


https://arxiv.org/abs/1508.04025

https://zhuanlan.zhihu.com/p/54743941

說明:

展開後可以得到一個矩陣。

-----

廿二、ConvS2S


https://arxiv.org/abs/1705.03122

https://www.telesens.co/2019/04/21/understanding-incremental-decoding-in-fairseq/

說明:

ConvS2S 相較於 Attention,有三個主要的貢獻:

一、將 LSTM 換成一維卷積,方便平行運算。
二、將文字向量分解成 Query、Key、Value。
三、有八層 Attention Tables。

其實這些概念都不是它獨創,只是它整合的不錯。另外,它的成果也很快就被 Transformer 超越了。但位於 Attention 跟 Transformer 之間,是一篇很好的中介論文。

-----

廿三、ConvS2S


https://arxiv.org/abs/1705.03122

https://zhuanlan.zhihu.com/p/27464080

說明:

八層。

-----

廿四、QKVC


http://deeplearning.hatenablog.com/entry/convs2s

說明:

Transformer 的 QKV,在 ConvS2S 已經出現了。實際上,這個概念來自 End-to-End Memory Networks 與 Key-Value Memory Networks。

-----

廿五、Self-Attention


https://jalammar.github.io/illustrated-transformer/

說明:

Transformer 在 Encoder 端與 Decoder 端,都有 Self-Attention。圖中可以看到,it 可以指 The animal,也可以表示 tired。

-----

廿六、QKV


https://lilianweng.github.io/lil-log/2018/06/24/attention-attention.html

Query、Key、Value。大致上 Key 可以代表 index,Value 則是文字的內涵意義。

Encoder 與 Decoder,除了各自有自己的 QKV Self-Attention 編碼,另外實際解碼時,Q 在 decoder 端,K、V 在 encoder 端。

-----

廿七、PKV


https://medium.com/@joealato/attention-in-nlp-734c6fa9d983

說明:

從 Attention 到 Key-Value 到 QKV。

-----

廿八、QKV


https://jalammar.github.io/illustrated-transformer/

說明:

QKV 怎麼來的?靠訓練。

-----

廿九、STORM


https://bloody-disgusting.com/news/3285841/massive-twister-highlights-into-the-storm-poster/

說明:

深度學習的十篇基礎論文。前五篇 CV,以 LeNet、NIN、ResNet 三篇 CNN 開始,另外有 FCN 與 YOLOv1 兩個 CNN 的應用。後五篇 NLP,除了一開始 LSTM 是運算單元,後續四篇 Seq2seq、Attention、ConvS2S、Transformer,都可以理解成 Source Target Output Relational Model(STORM),是一個 Encoder-Decoder 的 Codec 架構,English-Deutsche 的英德翻譯是 Encoder-Decoder 的一個典型應用。

-----

三0、BERT


https://arxiv.org/abs/1810.04805

https://zhuanlan.zhihu.com/p/58430637

說明:

Transformer Encoder-Decoder 的架構。

GPT-1 是運用 Transformer Decoder 的單向預訓練模型。
BERT 是運用 Transformer Encoder 的雙向預訓練模型。

ELMo 是運用 LSTM 的雙向預訓練模型。

-----

卅一、GPT and Transformer Decoder


https://leemeng.tw/gpt2-language-model-generate-chinese-jing-yong-novels.html

GPT-1 是單向的 Transformer Decoder 模型。GPT-2 一下子又超越 BERT。

-----

卅二、GPT-1


https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdf

https://blog.csdn.net/qq_35883464/article/details/100173045

說明:

GPT 採用兩階段過程:先利用語言模型進行預訓練,再通過 Fine-tuning 的模式解決下游任務。

-----

卅三、ELMo


https://medium.com/saarthi-ai/elmo-for-contextual-word-embedding-for-text-classification-24c9693b0045

說明:

ELMo 是個雙向的 LSTM 語言模型。可以考慮到之前的文字,也可以考慮到以後的文字。另外,對於一字多義的問題,則是以拼接不同層的向量來解決。在訓練過程中,不同層可以學到不同的概念。

-----

卅四、BERT and Transformer Encoder


https://leemeng.tw/attack_on_bert_transfer_learning_in_nlp.html

說明:

BERT 是一個雙向的 Transformer Encoder 模型。

-----

卅五、Two Pretraining Methods


https://leemeng.tw/attack_on_bert_transfer_learning_in_nlp.html

說明:

有預測中間字跟預測下個句子兩種預訓練方法,概念來自 Word2vec 的 CBOW 與 Skip-gram。

-----

卅六、Four Tasks


https://leemeng.tw/attack_on_bert_transfer_learning_in_nlp.html

說明:

微調後,可以執行四大類 NLP 任務。

-----

卅七、BERT Family


https://www.analyticsvidhya.com/blog/2019/10/8-ambitious-data-science-projects-github/

說明:

基本上,目前的 NLP 幾乎都是 BERT 的延伸。

-----

References

[1] The Star Also Rises: AI 三部曲(深度學習:從入門到精通)
https://hemingwang.blogspot.com/2019/05/trilogy.html

[2] The Star Also Rises: 全方位 AI 課程(精華篇)
https://hemingwang.blogspot.com/2020/01/all-round-ai-lectures-highlight.html

Friday, August 13, 2021

06C_Word2vec

06C_Word2vec

2020/07/18

-----

一、Word2vec Family


Fig. Word2vec(圖片來源)。

-----

二、Outline


https://hemingwang.blogspot.com/2020/07/06cword2vec.html

06C_Word2vec

◎ Word2vec v1:CBOW and Skip-gram。
◎ Word2vec v2:Hierarchical Softmax and Negative Sampling。
◎ Word2vec v3:Simplfied Word2vec v1 and v2。

◎ LSA:Co-occurrence  Matrix + SVD。
◎ GloVe:Word2vec + LSA
◎ fastText v1:CBOW and w(t) to Label。
◎ fastText v2:Skip-gram and Word to Subword。
◎ WordRank:Word Embedding to Word Ranking

-----

三、Word2vec


https://medium.com/@tengyuanchang/%E8%AE%93%E9%9B%BB%E8%85%A6%E8%81%BD%E6%87%82%E4%BA%BA%E8%A9%B1-%E7%90%86%E8%A7%A3-nlp-%E9%87%8D%E8%A6%81%E6%8A%80%E8%A1%93-word2vec-%E7%9A%84-skip-gram-%E6%A8%A1%E5%9E%8B-73d0239ad698

說明:

Word2vec 是詞嵌入的代表性演算法,包含 CBOW,連續詞袋與 Skip-gram 兩個模型。CBOW 利用周邊的字預測中間的字,類似英文的克漏字測驗。Skip-gram 則利用中間的字預測周邊的字。兩種方法都可以獲得詞向量。

-----

四、King - Man + Woman = Queen


https://arxiv.org/abs/1708.02709

說明:

英文的 word 從 one hot encoding 轉成 vector 之後,便可進行向量的運算。經典的例子是 King - Man + Woman = Queen。由這個「等式」,我們可以理解到,向量的某個維度,代表性別,某個維度,代表社會地位的高低。

-----

五、Regression Model


https://www.deeplearningbook.org/

// Page 119。

說明:

在進入 Word2vec 之前,我們還是先回顧一下回歸分析。為什麼要先回顧回歸分析,因為 Word2vec 對第一次接觸的人來說,會顯的很複雜,所以我們先舉一個簡單的例子,並且是大家原來就很熟悉的。下一張圖片的 LeNet 模型,其實是一個很複雜的回歸模型。而 Word2vec,又是一個簡化後的 CNN 模型。回歸模型是大家最熟悉的,LeNet 也許是第二熟悉的。

-----

六、CNN Model



http://hemingwang.blogspot.com/2018/02/deep-learninglenet-bp.html

說明:

LeNet 也許是深度學習中,最為大家熟悉的 CNN 模型。LeNet 比 Word2vec 複雜很多,但是由於學習 Word2vec 之前,大家多半已經掌握 LeNet,所以我們利用 LeNet 來學習 Word2vec。簡單說,Word2vec 只有三層,輸入層、隱藏層、輸出層。輸出層到隱藏層之間的神經網路連接,在還沒進入激活函數之間,可以視為矩陣轉換。配合輸入的 one hot encoding,矩陣的列,就變成每個字的詞向量。

-----

七、Back Propagation


http://hemingwang.blogspot.com/2018/02/deep-learninglenet-bp.html

說明:

同樣的,在模型,輸入、輸出對應的資料集,以及損失函數決定後,Word2vec 也是用 Back Propagation 來學習詞向量,也就是神經網路的權重。

-----

八、CBOW


https://lilianweng.github.io/lil-log/2017/10/15/learning-word-embedding.html

說明:

橙色的部分,輸入層到隱藏層的之間的神經網路連結,其實是個矩陣。矩陣的值,也就是我們要學習的詞向量。綠色的部分,是隱藏層到輸出層的矩陣轉換,也就是預測周邊(或者是下一個字)的機率。在 Word2vec 裡面,這個部分不會被當作詞向量使用,但是在 ConvS2S 或者 Transformer 的 QKV,Query、Key、Value 的分解裡面,綠色這個部分,代表 Query。簡單說,Key 是 one hot encoding,輸入層。Value 是文字的涵義,也就是詞向量,橙色的部分。Query 是下個字的機率分布,也就是綠色的部分。

以上是 Word2vec 跟 QKV 的關係,是我在寫這段文字的時候,忽然冒出來的。這個理解,我認為接近正確。但此刻我尚未確定。

-----

九、Skip-gram


https://lilianweng.github.io/lil-log/2017/10/15/learning-word-embedding.html

說明:

這個是 Skip-gram 的模型。第一次看不容易理解,因為它畫的是矩陣而不是神經網路。Skip-gram 剛剛已經簡單介紹過。淺藍色的部分是重點,從輸入層的 one hot encoding,會變成隱藏層的詞向量。然後會對應到輸出層的機率。輸入層的 x 與輸出層的 y,就代表訓練用資料集的一筆資料,一個 word pair。

-----

一0、PKV


https://medium.com/@joealato/attention-in-nlp-734c6fa9d983

說明:

從 Attention 到 Key-Value 到 QKV。以 Word2vec 為例,Query 對應到隱藏層到輸出層之間的矩陣。Key 對應到輸入層的 one hot encoding。Value 對應到輸入層與隱藏層之間的矩陣。

-----

一一、Skip-gram Model



https://zhuanlan.zhihu.com/p/27234078

說明:

這張圖可能是網路上,Skip-gram 的經典。雖然輸入層到隱藏層的神經連結被簡化了,但是隱藏層到輸出層標示的很清楚,特別是輸出的部分。

-----

一二、Skip Gram Data



https://zhuanlan.zhihu.com/p/27234078

說明:

以圖左第四列為例,假定 sliding window 的長度是 5,那麼 fox 周邊的四個字分別是 quick、brown、jumps、over。

-----

一三、Skip-gram Result


https://zhuanlan.zhihu.com/p/27234078

說明:

訓練後的結果會有一個詞向量的表,one hot encoding 的特性可以萃取出對應的詞向量。

-----

一四、Weight Matrix of Word2vec


https://mc.ai/deep-nlp-word-vectors-with-word2vec/

說明:

本圖會比說明的文字更清楚。

-----

一五、Softmax


https://pojenlai.wordpress.com/2016/02/27/tensorflow%E8%AA%B2%E7%A8%8B%E7%AD%86%E8%A8%98-softmax%E5%AF%A6%E4%BD%9C/

說明:

進入 hierarchical softmax 之前,先看一下 softmax。

一樣,公式會比文字說明清楚。

-----

一六、Huffman Coding


https://hemingwang.blogspot.com/2020/08/huffman-coding.html

說明:

Huffman coding 嘗試用最少的位元代表頻率最高的字。作法:可參考上方連結。

演算法:

一、將 word 依頻率排序,由小到大。
二、將最小頻率的兩個值組成一棵樹,即兩個頻率相加,得到新頻率。回到一。若最後剩下兩個頻率值,則可組成最後的霍夫曼樹。

-----

一七、Hierarchical Softmax 一


「原始的 Word2Vec 使用 softmax 得到最終的詞彙概率分佈,詞彙表往往包含上百萬個單詞,如果針對輸出中每一個單詞都要用 softmax 計算概率的話,計算量是非常大的。解決辦法之一就是 Hierarchical Softmax。相比於原始的 softmax 直接計算每個單詞的概率,Hierarchical Softmax 使用一顆二元樹來得到每個單詞的概率。被驗證的效果最好的二元樹類型是霍夫曼樹。」

「霍夫曼樹中有 V-1 個中間節點,V 個葉節點。葉節點與單詞表中 V 個單詞一一對應。首先根據單詞出現的頻率構造一顆霍夫曼樹,出現頻率高的單詞霍夫曼編碼就短,更加靠近根節點。原來的 Word2Vec 模型結構會被改變,隱藏層後直接和霍夫曼樹中每一個非葉節點相連,如下圖所示(相當於輸出層中只有 V-1 個神經元節點)。然後再每一個非葉節點上計算二分概率(也就是用 Sigmoid 函數進行激活),這個概率是指從當前節點隨機遊走的概率,可以任意指定是向左遊走的概率,還是向右游走的概率。從根節點到目標單詞的路徑是唯一的,將中間非葉節點的遊走概率相乘就得到了最終目標單詞的概率。」

這樣只用計算樹深度個輸出節點的概率就可以得到目標單詞的概率。霍夫曼樹的深度基本是 logV,所以此時的計算複雜度就降為了 O (logV)。另外,高頻詞非常接近樹根,其所需要的計算次數將進一步減少,這也是使用霍夫曼樹的一個優點。

https://zhuanlan.zhihu.com/p/66417229

-----

一八、Hierarchical Softmax 二



說明:

原本 Softmax 的輸出層,假定是 V 個字的機率。Hierarchical Softmax 的輸出層,則改為 V - 1 個霍夫曼樹的節點。

以上面 CBOW 的例子為例,輸入為 the dog and the,預測是 cat,不用更新原本 10,000 個例子,只要更新 1、2、5、三個節點,讓其機率分別是左、右、右,使其輸出為 cat。

-----

一九、Hierarchical Softmax 三


https://sunjackson.github.io/2017/08/01/fb7b83894c233646897598c40c328c23/

http://building-babylon.net/2017/08/01/hierarchical-softmax/

https://zhuanlan.zhihu.com/p/53425736

說明:

這是一般的範例圖片,實在不容易直接從圖片理解。

-----

二0、Negative Sampling


https://python5566.wordpress.com/2018/03/17/nlp-%E7%AD%86%E8%A8%98-negative-sampling/comment-page-1/

http://mccormickml.com/2017/01/11/word2vec-tutorial-part-2-negative-sampling/

https://zhuanlan.zhihu.com/p/53425736

-----

廿一、Negative Sampling


https://medium.com/@tengyuanchang/%E8%AE%93%E9%9B%BB%E8%85%A6%E8%81%BD%E6%87%82%E4%BA%BA%E8%A9%B1-%E7%90%86%E8%A7%A3-nlp-%E9%87%8D%E8%A6%81%E6%8A%80%E8%A1%93-word2vec-%E7%9A%84-skip-gram-%E6%A8%A1%E5%9E%8B-73d0239ad698

說明:

Negative Sampling

Positive sample:(fox, quick)。1 個。
Negative samples:(fox, word_not_quick)。9999 個。

小規模數據集:選 5 ~ 20 個 negative samples。
大規模數據集:選 2 ~ 5 個 negative samples。

-----

廿二、TF-IDF - term frequency–inverse document frequency


https://medium.com/nanonets/topic-modeling-with-lsa-psla-lda-and-lda2vec-555ff65b0b05

-----

廿三、LSA1


https://www.analyticsvidhya.com/blog/2018/10/stepwise-guide-topic-modeling-latent-semantic-analysis/

-----

廿四、LSA2


https://www.analyticsvidhya.com/blog/2018/10/stepwise-guide-topic-modeling-latent-semantic-analysis/

-----

廿五、GloVe


https://towardsdatascience.com/word-embeddings-for-nlp-5b72991e01d4

-----

廿六、GloVe in a Picture


https://dudeperf3ct.github.io/lstm/gru/nlp/2019/01/28/Force-of-LSTM-and-GRU/

-----

廿七、GloVe Loss


https://medium.com/@jonathan_hui/nlp-word-embedding-glove-5e7f523999f6

-----

廿八、GloVe Alpha


Fig. Weighting Function []。

-----

廿九、fastText


https://www.jiqizhixin.com/articles/2020-07-03-14

-----

三0、fastText v1



https://www.twblogs.net/a/5ba122282b71771a4da89d89

-----

卅一、fastText v2


https://blog.csdn.net/u012931582/article/details/83818374

-----

卅二、WordRank


https://leovan.me/cn/2018/10/word-embeddings/

-----

卅三、NNLMs


https://www.jiqizhixin.com/graph/technologies/c61ba3b9-40e2-4864-a941-9adc19e6792e

-----

References

[1] Word2vec v1
Mikolov, Tomas, et al. "Efficient estimation of word representations in vector space." arXiv preprint arXiv:1301.3781 (2013).
https://arxiv.org/pdf/1301.3781.pdf

[2] Word2vec v2
Mikolov, Tomas, et al. "Distributed representations of words and phrases and their compositionality." Advances in neural information processing systems. 2013.
https://papers.nips.cc/paper/5021-distributed-representations-of-words-and-phrases-and-their-compositionality.pdf

[3] Word2vec v3
Rong, Xin. "word2vec parameter learning explained." arXiv preprint arXiv:1411.2738 (2014).
https://arxiv.org/pdf/1411.2738.pdf

[4] GloVe
Pennington, Jeffrey, Richard Socher, and Christopher Manning. "Glove: Global vectors for word representation." Proceedings of the 2014 conference on empirical methods in natural language processing (EMNLP). 2014.
https://www.aclweb.org/anthology/D14-1162

[5] fastText v1
Joulin, Armand, et al. "Bag of tricks for efficient text classification." arXiv preprint arXiv:1607.01759 (2016).
https://arxiv.org/pdf/1607.01759.pdf

[6] fastText v2
Bojanowski, Piotr, et al. "Enriching word vectors with subword information." Transactions of the Association for Computational Linguistics 5 (2017): 135-146.
https://www.mitpressjournals.org/doi/pdfplus/10.1162/tacl_a_00051

[7] WordRank
Ji, Shihao, et al. "Wordrank: Learning word embeddings via robust ranking." arXiv preprint arXiv:1506.02761 (2015).
https://arxiv.org/pdf/1506.02761.pdf