【NLP高頻面試題】詞表徵

2021-02-13 AINLP


詞彙的表示哪些方法?

可以分為以下四類:

基於one-hot、tf-idf等的詞袋模型

基於矩陣分解的主題模型:LSA(SVD)、pLSA、LDA

基於詞向量的固定表徵:word2vec、fastText、glove

基於詞向量的動態表徵:elmo、GPT、bert

 

怎麼理解詞向量的分布式假設?

最早是 Hinton 於 1986 年提出的,可以克服 one-hot representation 的缺點。其基本想法是:

概念上而言,它是指把一個維數為所有詞的數量的高維空間嵌入到一個維數低得多的連續向量空間中,每個單詞或詞組被映射為實數域上的向量,向量的每一維度都沒有實際意義,而整體代表一個具體概念。

訓練邏輯:相同上下文語境的詞有似含義,也就是有相似的向量。

應用:所有這些向量放在一起形成一個詞向量空間,而每一向量則為該空間中的一個點,在這個空間上引入「距離」,則可以根據詞之間的距離來判斷它們之間的(詞法、語義上的)相似性了。

 

獨熱表示以及分布式表示的各種詞向量的特點是什麼?

獨熱表示 :維度災難、語義鴻溝;

分布式表示 (distributed representation) :

矩陣分解(LSA):利用全局語料特徵,但SVD求解計算複雜度大;

基於NNLM/RNNLM的詞向量:詞向量為副產物,存在效率不高等問題;

word2vec、fastText:優化效率高,但是基於局部語料;

glove:基於全局預料,結合了LSA和word2vec的優點;

elmo、GPT、bert:結合動態上下文

 

NNLM指什麼?

屬於早期語言模型及詞向量的研究,其主要目的是語言模型,輸入上文,預測當前單詞,而詞向量只是一個副產物,但後來的word2vec模型是受NNLM啟發,即利用語言模型任務來訓練詞向量。

 

word2vec的兩種模型分別是什麼?

CBOW 和 Skip-Gram;

CBOW 在已知上下文的情況下,預測中心詞;Skip-Gram在已知中心詞的情況下預測上下文。

 

word2vec和NNLM的異同點是什麼?

相同點:本質上都是以語言模型為任務訓練模型。

不同點:NNLM主要是以語言模型為任務,詞向量只不過是一個副產物,而word2vec雖然其本質也是語言模型,但是其最終的目的在於詞向量本身,因此做了許多優化來提高計算效率。

考慮到sofmax歸一化需要遍歷整個詞彙表,當語料庫規模變大、詞彙表增長時,計算開銷不切實際,採用hierarchical softmax 和negative sampling進行優化,hierarchical softmax 實質上生成一顆帶權路徑最小的哈夫曼樹,讓高頻詞搜索路徑變小;negative sampling更為直接,實質上是將一個多分類問題轉化為二分類問題。

 

Skip-gram 模型針對參數量過大,難以訓練,提出的優化方案有哪些?

 

Skip-Gram中如何採樣負樣本?

根據頻率相關的一個經驗公式進行採樣,頻率越高,採樣到的可能性越大,一個詞在整篇文本中出現的頻率越高,它出現在訓練詞周圍的概率自然也相對較高,那它就是很好的幹擾項,即噪聲。

 

傳統的詞向量有什麼缺點?

傳統方式得到的詞向量是固定表徵的,無法解決一詞多義或者說上下文語境的問題。為此引入基於語言模型的動態表徵方法:elmo、GPT、bert。

 

詞向量訓練中的OOV問題如何解決?

字符級表示或sub-word表示,如CharCNN、FastText和 Byte-Pair Encoding。

 

ELMO的原理是什麼?

基本思想是根據輸入的句子作為上下文,來具體計算每個詞在上下文中的表徵,在具體的訓練中,基於雙向雙層lstm作為模型,語言模型為任務。

 

在訓練完ELMO之後,如何應用於下遊任務?

在訓練完biLM後,假設biLM有L層,則對於每一個詞彙,總共會有2L+1個輸出向量,因為每一層LSTM都會有前向和後向兩個向量輸出,而每個詞彙自己有embedding層的向量,因此總共是2L+1個。可以對這些層進行加權相加,或者只取某些層作為詞彙的表徵,再接入下遊任務對應的模型結構中。

 

fastText的特點是什麼?

fastText訓練詞向量時會考慮subword;

結構與CBOW類似,但學習目標是人工標註的文本分類結果;

採用hierarchical softmax對輸出的分類標籤建立哈夫曼樹,樣本中標籤多的類別被分配短的搜尋路徑

 

glove的特點是什麼?

Global Vector融合了矩陣分解Latent Semantic Analysis (LSA)的全局統計信息和local context window優勢。融入全局的先驗統計信息,可以加快模型的訓練速度,又可以控制詞的相對權重。

與LSA的聯繫:

LSA(Latent Semantic Analysis)可以基於co-occurance matrix構建詞向量,實質上是基於全局語料採用SVD進行矩陣分解,然而SVD計算複雜度高;glove可看作是對LSA一種優化的高效矩陣分解算法,採用Adagrad對最小平方損失進行優化;

與word2vec的聯繫:

word2vec應用局部語料庫進行訓練,基於滑窗進行特徵提取;而glove的滑窗是為了構建co-occurance matrix,基於全局語料,可見glove需要事先統計共現概率;因此,word2vec可以進行在線學習,glove則需要統計固定語料信息。word2vec是無監督學習,同樣由於不需要人工標註;glove通常被認為是無監督學習,但實際上glove還是有label的,即共現次數。word2vec損失函數實質上是帶權重的交叉熵,權重固定;glove的損失函數是最小平方損失函數,權重可以做映射變換。

總體來看,glove可以被看作是更換了目標函數和權重函數的全局word2vec。

參考:

https://blog.csdn.net/u014665013/article/details/79642083

https://blog.csdn.net/u014665013/article/details/79642083

 

首先根據語料庫去構建一個co-ocurrence matrix共現矩陣,其中每一個元素代表單詞和上下文詞在特定的上下文窗口內共同出現的次數,並且GloVe還提出了一個 decreasing weighting ,就是基於兩個詞在上下文窗口中的距離d,去給一個權重1/d,也就是說距離遠的兩個詞,佔總計數的權重就小;構建詞向量和共現矩陣之間的近似關係。

 

如何理解elmo、GPT、bert中的單/雙向語言模型?

GPT採用單向語言模型,elmo和bert採用雙向語言模型。

但是,實際上elmo是兩個單向語言模型(方向相反)的拼接,這種融合特徵的能力比bert基於mask方式進行一體化融合特徵方式弱,並非真正的同時的「雙向」。

GPT和bert都採用Transformer,Transformer是encoder-decoder結構,GPT的單向語言模型採用decoder部分,decoder的部分見到的都是不完整的句子,訓練後的模型針對文本生成任務;bert的雙向語言模型則採用encoder部分,採用了完整句子,訓練後的模型擅長做特徵提取及語義表徵工作。

 

bert的主要創新點是什麼?

在pre-train方法上,用了Masked LM和Next Sentence Prediction兩種方法分別捕捉詞語和句子級別的representation。

 

預訓練和finetuning之間不匹配,bert如何解決?

bert並不總是用實際的[MASK]token替換被「masked」的詞彙。相反,訓練數據生成器隨機選擇15%的token。例如在這個句子「my dog is hairy」中,它選擇的token是「hairy」。然後,執行以下過程:

數據生成器將執行以下操作,而不是始終用[MASK]替換所選單詞:

80%的時間:用[MASK]標記替換單詞,例如,my dog is hairy → my dog is [MASK]

10%的時間:用一個隨機的單詞替換該單詞,例如,my dog is hairy → my dog is apple

10%的時間:保持單詞不變,例如,my dog is hairy → my dog is hairy. 這樣做的目的是將表示偏向於實際觀察到的單詞。

Transformer encoder不知道它將被要求預測哪些單詞或哪些單詞已被隨機單詞替換,因此它被迫保持每個輸入token的分布式上下文表示。此外,因為隨機替換隻發生在所有token的1.5%(即15%的10%),這樣便不會損害模型的語言理解能力。

 

bert有什麼缺陷?

mask的位置獨立;

mask標誌存在train-finetune差異;

NSP的設計過於簡單;

生成任務表現不佳:預訓練過程和生成過程的不一致,導致在生成任務上效果不佳;

無法文檔級別的NLP任務,只適合於句子和段落級別的任務。

 

預訓練語言模型未來更多的探索方向是什麼?

復興語言模型:進一步改進語言模型目標,不斷突破模型的上界;

大數據、大算力:將大數據、大算力推到極致;

更快的推斷:輕量級模型是否有可能達到SOTA效果?

引入更豐富的知識信息,更精細的調參,更有價值的MASK策略;

統一條件生成任務框架,如基於XLNet統一編碼和解碼任務,同時可考慮更快的解碼方式。

由於微信平臺算法改版,公號內容將不再以時間排序展示,如果大家想第一時間看到我們的推送,強烈建議星標我們和給我們多點點【在看】。星標具體步驟為:

(1)點擊頁面最上方"AINLP",進入公眾號主頁。

(2)點擊右上角的小點點,在彈出頁面點擊「設為星標」,就可以啦。

感謝支持,比心

進群請添加AINLP小助手微信 AINLPer(id: ainlper),備註NLP技術交流

推薦閱讀

這個NLP工具,玩得根本停不下來

徵稿啟示| 200元稿費+5000DBC(價值20個小時GPU算力)

完結撒花!李宏毅老師深度學習與人類語言處理課程視頻及課件(附下載)

從數據到模型,你可能需要1篇詳實的pytorch踩坑指南

如何讓Bert在finetune小數據集時更「穩」一點

模型壓縮實踐系列之——bert-of-theseus,一個非常親民的bert壓縮方法

文本自動摘要任務的「不完全」心得總結番外篇——submodular函數優化

Node2Vec 論文+代碼筆記

模型壓縮實踐收尾篇——模型蒸餾以及其他一些技巧實踐小結

中文命名實體識別工具(NER)哪家強?

學自然語言處理,其實更應該學好英語

史丹福大學NLP組Python深度學習自然語言處理工具Stanza試用

關於AINLP

AINLP 是一個有趣有AI的自然語言處理社區,專注於 AI、NLP、機器學習、深度學習、推薦算法等相關技術的分享,主題包括文本摘要、智能問答、聊天機器人、機器翻譯、自動生成、知識圖譜、預訓練模型、推薦系統、計算廣告、招聘信息、求職經驗分享等,歡迎關注!加技術交流群請添加AINLPer(id:ainlper),備註工作/研究方向+加群目的。

閱讀至此了,分享、點讚、在看三選一吧🙏

相關焦點

  • 深度學習的NLP工具
    一鍵為不同應用下載預訓練詞表徵,預訓練語言模型,常用的數據集和預訓練模型。glove = nlp.embedding.create('glove', source='glove.6B.50d')baby_glove, infant_glove = glove['baby'], glove['infant']
  • 復旦邱錫鵬教授:2020最新NLP預訓練模型綜述
    nlp領域的發展比cv領域相對緩慢的原因是什麼呢?相比於cv領域,「nlp領域的劣勢在於有監督數據集大小非常小」(除了機器翻譯),導致深度學習模型容易過擬合,不能很好地泛化。但是相反,nlp領域的優勢在於,存在大量的無監督數據集,如果能夠充分利用這類數據進行訓練,那麼勢必能夠提升模型的能力以及在下遊任務中的表現。
  • PTMs|2020最新NLP預訓練模型綜述
    背景「nlp、cv領域的傳統方法極度依賴於手動特徵工程」。例如nlp中的log-linear、CRF模型等,cv中各種抽取特徵的模型,如sift特徵等。深度學習中本質上是一種表示學習,能夠一定程度上避免手動的特徵工程。
  • 資源| 史丹福大學NLP組開放神經機器翻譯代碼庫(附論文)
    本論文展示了一個全新的能實現開放詞彙神經機器翻譯(open vocabulary NMT)的詞-字符解決方法。我們建立了一個混合的系統,能夠實現大部分的詞級(word level)翻譯,並可查閱罕見詞的字母組成。我們字符級的循環神經網絡能計算源詞的表徵,並能在需要時恢復未知的目標詞。
  • 資源|備戰金九銀十,LeetCode高頻面試題合集
    而最高效的準備方式,不外乎刷題、刷題、刷題。刷題就不得不提 LeetCode 了~俗話說的好:LeetCode刷不好,一面都過不了。所以,今天就將一些 LeetCode 大廠高頻面試題整理成合集分享給大家,希望能助大家一臂之力~分享連結:https://www.turingtopia.com/article/details/64afe54fb4014475a24c47e0d1dbbaa1
  • 【CMU 2017秋季】深度學習NLP課程,PPT+視頻+課程表
    : LM Code Examples (https://github.com/neubig/nn4nlp2017-code/tree/master/02-lm)課程視頻: LM Lecture Video(https://youtu.be/tNC9tpGqQb0)9/5 分布語義和詞向量
  • 雅思聽力高頻同義詞轉換介紹
    因此,只要同學們對劍橋中的高頻同義轉換詞瞭若指掌,那麼你就真正能夠洞若觀火,處變不驚了。   一、答案類高頻同義轉換詞   標題的意思是文中以下詞彙在聽力原文中高頻出現,而且是以答案形式出現的。但是我們知道雅思聽力的遊戲規則是「所聽即所得」,那麼這類題目一般以選擇題形式出現。下面我們對這些重點詞彙或詞組做一下總結。
  • 這些NLP高頻試題你可能還不會
    每天十道 NLP 精華練習題,讓你一步步在 NLP 之路越走越遠!同時,我們非常歡迎大家發表自己在機器學習/深度學習面試當中所遇到的各種問題~ -自然語言處理- 為什麼需要詞向量?
  • 英語面試(口試)常用高頻詞彙突破
    英語面試、英語口試高頻詞彙小結。包含如下幾部分詞彙:自我介紹用詞、教育經歷和受教育程度用詞、工作經歷和工作業績用詞、個人資料和個人檔案介紹用詞、應聘職位和業餘特長用詞等。單詞後附中文釋義。A4大小圖片,精排版,無亂碼,可保存到手機或直接下載列印。辛苦整理,免費分享,大愛無疆!
  • 2019斯坦福CS224n、CMU NLP公開課視頻開放啦
    目前 CS 11-747 已經更新了 14 個課時,從詞嵌入、注意力機制到強化學習都有涉及。以下展示了這兩項 NLP 公開課的資源地址,愛可可老師將視頻和字幕都上傳到了 B 站。包括詞嵌入、依存關係解析、神經機器翻譯、語音識別和語義消歧等。此外在 19 年的新課程中,它還會重點介紹最近非常流行的 Transformer 和預訓練表徵,這些系統化的新內容真的很令人期待。
  • LeetCode Top 100 高頻算法題 49. Group Anagrams
    由於公眾號做了改版,為了保證公眾號的文章可以準時推送到你手裡,大家記得點擊上方藍色」菜鳥名企夢「,將咱們的公眾號 加星標置頂 ,在此真誠的表示感謝~LeetCode Top 100高頻算法題,即LeetCode上最高頻的100道求職面試算法題。
  • LeetCode Top 100 高頻算法題 03:Longest Substring
    LeetCode Top 100高頻算法題,即LeetCode上最高頻的100道求職面試算法題。
  • LeetCode Top 100 高頻算法題 02:Add Two Numbers
    近期公眾號沒怎麼更新,這周末再和大家聊聊近期在字節的工作~LeetCode Top 100這個專欄對小夥伴找工作非常有幫助,所以這個專欄一定會繼續下去~LeetCode Top 100高頻算法題
  • LeetCode Top 100 高頻算法題 15. 3Sum
    LeetCode Top 100高頻算法題,即LeetCode上最高頻的100道求職面試算法題。
  • LeetCode Top 100 高頻算法題45. Jump Game II
    由於公眾號做了改版,為了保證公眾號的文章可以準時推送到你手裡,大家記得點擊上方藍色」菜鳥名企夢「,將咱們的公眾號 加星標置頂 ,在此真誠的表示感謝~LeetCode Top 100高頻算法題,即LeetCode上最高頻的100道求職面試算法題。
  • LeetCode Top 100 高頻算法題 53. Maximum Subarray
    由於公眾號做了改版,為了保證公眾號的文章可以準時推送到你手裡,大家記得點擊上方藍色」菜鳥名企夢「,將咱們的公眾號 加星標置頂 ,在此真誠的表示感謝~LeetCode Top 100高頻算法題,即LeetCode上最高頻的100道求職面試算法題。
  • LeetCode Top 100 高頻算法題 21. Merge Two Sorted Lists
    LeetCode Top 100高頻算法題,即LeetCode上最高頻的100道求職面試算法題
  • LeetCode Top 100 高頻算法題 05:Longest Palindromic Substring
    LeetCode Top 100高頻算法題,即LeetCode上最高頻的100道求職面試算法題
  • LeetCode Top 100 高頻算法題42. Trapping Rain Water
    LeetCode Top 100高頻算法題,即LeetCode上最高頻的100道求職面試算法題。小編和實驗室同學之前面試找工作,也只刷了劍指offer和這top 100算法題,在實際面試中也遇到了很多LeetCode上的原題。
  • 維詞APP暑假開學檢測卷——7天掃除高頻易錯題
    根據全國大數據得出來的錯題整理,可以有效的反饋出學生的易錯點,學生只有發現自己的失分點,才能更好的彌補漏洞。No.1全國大數據整理高頻易錯題檢測分為7關,每關20分鐘,復現錯誤頻率較高的英漢互譯題。綜合檢測:根據全國大數據錯題數據,復現不同題型錯題率最高的題。