当前位置: 首页>编程笔记>正文

有關向量的重要結論,專題-句向量(Sentence Embedding)

有關向量的重要結論,專題-句向量(Sentence Embedding)

原始地址:https://github.com/imhuay/Algorithm_Interview_Notes-Chinese/blob/master/B-%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86/B-%E4%B8%93%E9%A2%98-%E5%8F%A5%E5%B5%8C%E5%85%A5.md

?

Reference

  • The Current Best of Universal Word Embeddings and Sentence Embeddings

Index

  • 基線模型
    • 基于統計的詞袋模型(BoW)
    • 基于詞向量的詞袋模型
      • 均值模型
      • 加權模型
    • 基于 RNN(任務相關)
    • 基于 CNN(任務相關)
  • 詞袋模型
    • [2018] Power Mean 均值模型
    • [2017] SIF 加權模型
  • 無監督模型
    • [2015] Skip-Thought Vector
    • [2018] Quick-Thought Vectors
  • 有監督模型
    • [2017] InferSent
    • [2017] Self-Attention
    • [2015] DAN & RecNN
  • 多任務學習
    • [2018] 基于多任務的 Sentence Embedding(微軟)
    • [2018] Universal Sentence Encoder(谷歌)
  • 參考文獻

基線模型

基于統計的詞袋模型(BoW)

  • 單個詞的 One-Hot 表示
  • 基于頻數的詞袋模型
  • 基于 TF-IDF 的詞袋模型
  • ...

基于詞向量的詞袋模型

均值模型

有關向量的重要結論,

其中?v_i?表示維度為?d?的詞向量,均值指的是對所有詞向量按位求和后計算每一維的均值,最后?s?的維度與?v?相同。

加權模型

BERT得到句向量、

其中?α?可以有不同的選擇,但一般應該遵循這樣一個準則:越常見的詞權重越小

[2017] SIF 加權模型

基于 RNN(任務相關)

  • 向量筆記整理,以最后一個隱狀態作為整個句子的 Embedding

  • 基于 RNN 的 Sentence Embedding 往往用于特定的有監督任務中,缺乏可遷移性,在新的任務中需要重新訓練;

  • 相似句生成。此外,由于 RNN 難以并行訓練的缺陷,導致開銷較大。

基于 CNN(任務相關)

  • 卷積的優勢在于提取局部特征,利用 CNN 可以提取句子中類似 n-gram 的局部信息;

  • 通過整合不同大小的 n-gram 特征作為整個句子的表示。

詞袋模型

[2018] Power Mean 均值模型

[4]

  • 本文是均值模型的一種推廣;通過引入“冪均值”(Power Mean)來捕捉序列中的其他信息;

  • 記句子?s=(x_1, x_2, ..., x_n)

    • x_i?為每個詞的詞向量,維度為?d
    • 普通的均值模型即?p=1?時的特例;
    • 特別說明,±∞?實際上指的是?max/min,而不是絕對值最大/最小
  • 本文通過拼接的方式來保留不同?p?的信息

    此時,Sentence Embedding 的維度應該是?K * d

  • 進一步的,文本還加入了在不同詞嵌入空間上的詞向量,依然通過拼接的方式保留信息

    • 所謂不同詞嵌入空間,指的就是使用不同算法在不同語料上訓練得到的詞向量

      此時,Sentence Embedding 的維度應該是?K * L * d

    • 本文使用了如下?4 種詞向量

      • GloVe embeddings (GV) trained on Common Crawl
      • Word2Vec trained on GoogleNews (GN)
      • Attract-Repel (AR) (Mrksic et al., 2017)
      • MorphSpecialized (MS) (Vulic et al., 2017)

[2017] SIF 加權模型

  • 文獻 [1]?提出了一個簡單但有效的加權詞袋模型 SIF?(Smooth Inverse Frequency),其性能超過了簡單的 RNN/CNN 模型

  • SIF?的計算分為兩步:
    1)?對句子中的每個詞向量,乘以一個權重?a/(a+p_w),其中?a?是一個常數(原文取?0.0001),p_w?為該詞的詞頻;對于出現頻率越高的詞,其權重越小;
    2)?計算句向量矩陣的第一個主成分?u,讓每個句向量減去它在?u?上的投影(類似 PCA);

  • 完整算法描述

無監督模型

[2015] Skip-Thought Vector

[2]

  • 類似 Word2Vec/語言模型 的思想,Sentence Embedding 作為模型的副產品。

  • 給定一個三元組?s_{i-1}, s_i, s_{i+1}?表示 3 個連續的句子。

  • 模型使用 Encoder-Decoder 框架;

  • 訓練時,由 Encoder 對?s_i?進行編碼;然后分別使用兩個 Decoder 生成前一句?s_{i-1}?和下一句?s_{i+1}

    • Encoder(GRU)

    • Decoder(帶窺孔的 GRU)

      其中?h_i?為 Encoder 的輸出,即表示?s_i?的 Sentence Embedding

    • Decoder?可以看作是以?Encoder?輸出為條件的神經語言模型

      語言模型,v?表示詞向量

    • 目標函數

  • OOV 詞的處理 TODO

[2018] Quick-Thought Vectors

[4]

  • 本文是基于 Skip-Thought Vector 的改進

  • Skip-Thought Vector 中給出前一句生成上一句和下一句的任務,被重新描述為一個分類任務:Decoder 作為分類器從一組候選句子中選擇正確的上一個/下一個句子。

    • 生成模型(Skip-Thought Vector)

    • 分類模型(Quick-Thought Vectors)

  • 該模型的一個主要優點是訓練速度比 Skip-Thought Vector 快,后者需要訓練 3 個 RNN 模塊。

  • 一些細節

    • batch size = 400,即一個 batch 為 400 個連續的句子;
    • context size = 3,即對給定句子,預測其上一句和下一句;
    • 負采樣:同一 batch 中除上下文句子,均作為 負例;
    • 開始訓練時,詞向量被初始化為?[-0.1, 0.1],沒有使用預訓練的詞向量;

有監督模型

[2017] InferSent

[5]

  • 本文使用有監督的方法,在自然語言推理(NLI)數據集上訓練 Sentence Embedding;

  • 本文認為從?NLI 數據集(比如?SNLI)中訓練得到的句向量也適合遷移到其他 NLP 任務中。

    • 就像在各種?CV 任務中使用基于 ImageNet 的模型(VGG, ResNet 等)來得到圖像特征一樣,在處理?NLP 任務之前可以先使用本文公開的模型來計算句子的特征。
  • 基本模型

    • 在 NLI 任務中,每個樣本由三個元素構成?(u, v, l)——其中?u?表示前提(premise),v?表示假設(hypothesis),l?為類標(entailment 1, contradiction 2, neutral 3)
    • 本文比較了 7 種編碼器:1)LSTM, 2)GRU, 3)bi-GRU, 4)bi-LSTM(mean pooling), 5)bi-LSTM(max pooling), 6)self-attention, 7)CNN

    • 注意:在 NLI 數據集中,句子?u?和?v?的地位不是等價的

[2017] Self-Attention

[3]

  • 本文提出使用二維矩陣作為句子表征,矩陣的行表示在句子不同位置的關注度,以解決句子被壓縮成一維向量時的信息損失。

[2015] DAN & RecNN

[9]

  • 原文模型僅用于分類,但也可用于有監督的學習 Sentence Embedding

    Universal Sentence Encoder(谷歌)

  • 基本模型,其中比較常用的是 DAN

    • DAN(Deep Averaging Network)

    • RecNN

多任務學習

  • InferSent 模型的成功,使大家開始探索不同的有監督任務中得到的 Sentence Embedding 在下游任務中的效果。
  • 多任務學習試圖在一次訓練中組合不同的訓練目標。

[2018] 基于多任務的 Sentence Embedding(微軟)

[6]

  • 本文認為為了能夠推廣到各種不同的任務,需要對同一句話的多個方面進行編碼。

  • 簡單來說,模型同時在多個任務多個數據源上進行訓練,但是共享相同的 Sentence Embedding。

  • 任務及數據集包括:

    • Skip-Thought(預測上一句/下一句)——BookCorpus
    • 神經機器翻譯(NMT)——En-Fr (WMT14) + En-De (WMT15)
    • 自然語言推理(NLI)——SNLI + MultiNLI
    • Constituency Parsing——PTB + 1-billion word
  • 本文模型與?Skip-Thought Vector?基本一致

    • 主要區別在于本文的 Encoder 部分使用的是?Bi-GRU,而 Decoder 部分完全一致;
    • 使用 GRU 而非 LSTM 的原因主要是為了速度;

[2018] Universal Sentence Encoder(谷歌)

[7]

  • 本文的目的是動態地適應各種的 NLP 任務,通過在不同的數據集和不同的任務上同時訓練。

  • 本文使用類似的多任務框架,區別在于使用的 Encoder 不同。

    [2018] 基于多任務的 Sentence Embedding(微軟)

  • 本文以兩種模型作為 Encoder

    • Transformer?[8]——更高的精度
    • DAN?(Deep Averaging Network) [9]——更快的速度
  • 一個可用的預訓練版本

    embed = hub.Module("https://tfhub.dev/google/universal-sentence-encoder/2")
    embeddings = embed(["The quick brown fox jumps over the lazy dog.","I am a sentence for which I would like to get its embedding"])sess.run(embeddings)

https://www.nshth.com/bcbj/338465.html
>

相关文章:

  • 有關向量的重要結論
  • BERT得到句向量
  • 向量筆記整理
  • 相似句生成
  • 與向量有關的最值問題
  • 詞向量模型
  • 向量序列定義
  • 向量典型例題
  • 編程語言難度排名,8 月最新編程語言排行榜
  • 手機usb調試被禁用怎么恢復,解決安卓手機USB接口被外設占用導致無法調試的問題
  • 手機上的安卓模擬器,連接手機模擬器
  • 搜狗輸入法怎么手寫和拼音一起輸入,零彝輸入法用戶協議
  • ubuntu自帶gcc編譯器嗎,安裝ubuntu20.04(安裝vim、gcc、VMtools、中文輸入法、漢化、修改IP、無法連網問題)
  • 輸入法哪個最好用,android ip格式化輸入法,Android設置默認輸入法
  • blkmov指令使用例子,ORB-SLAM2代碼解析
  • windows補丁kb3033929怎么安裝,Win8.1 kb2919355安裝不上怎么辦?
  • 淘寶店鋪如何增加流量,淘寶賣家開店怎么做有效減少淘寶垃圾流量
  • 商標使用必須加TM或R嗎,商標中R標和TM標的區別
  • 沒有商標可以上速賣通嘛,速賣通商標授權怎么弄?速賣通官方授權模板書分享
  • 商標中R跟C分別代表什么,商標TM和R有什么區別
  • 商標中R跟C分別代表什么,CSDN Markdown 商標標志 C、TM、R
  • 有關向量的重要結論,專題-句向量(Sentence Embedding)
  • 信息安全等級保護的5個級別,信息安全等級保護措施之網絡安全技術
  • 書是黃金屋下一句是什么,書中的“黃金屋”
  • gps定位,定位iowait問題
  • 渲染軟件哪個好用,Android平臺上基于OpenGl渲染yuv視頻
  • C# wpf 通過HwndHost渲染視頻
  • h5商城源碼,H5全新紅包直通車網站源碼 包含多款游戲已對接支付
  • android基礎面試題及答案,安卓手機系統開發教程!BTAJ面試有關散列(哈希)表的面試題詳解,大廠直通車!
  • 中交第一公路勘察設計研究院,緯地道路縱斷面設計教程_直通車 | 中交一公局公路勘察設計院有限公司招聘公告...
  • arduino怎么把程序傳到板上,STM32替換Arduino直通車
  • 記錄2015年年初跳槽的經歷!
  • 什么情況下可以跳槽,記錄 2015 年年初跳槽的經歷!
  • 聚合支付公司前十,聚合支付行業的2019年終總結大會!細品,你細品~
  • mastercam后處理論壇,mastercam2017后處理升級_如何升級Mastercam 9.1版后處理?
  • 動態表情包制作,android 視頻轉表情,視頻怎么轉gif?好用軟件分享,自己也能制作出搞笑表情包...
  • pc頁面怎么打開,頁面的版心html,關于PC端網頁版心及網頁自適應問題
  • webp圖片怎樣改成jpg,如何給圖片更改格式?jpg轉webp怎么操作