2021年B站-主站技術(shù)中心-算法開發(fā)崗面試題5道!
文 | 七月在線
編 | 小七

目錄
FIGHTING
問題1:介紹word2vec,負采樣的細節(jié)
問題2:fasttext的改進,特征hash的作用
問題3:用rand2實現(xiàn)rand5
問題4:介紹一下Bert以及三個下游任務
問題5:除了Bert其他預訓練模型的拓展
問題1:介紹word2vec,負采樣的細節(jié)
word2vec是google于2013年開源推出的一個詞向量表示的工具包,其具體是通過學習文本來用詞向量的方式表征詞的語義信息,即通過一個低維嵌入空間使得語義上相似的單詞在該空間內(nèi)的距離很近。有兩種模型:CBOW和skip-Gram,其中CBOW模型的輸入是某一個特征詞的上下文固定窗口的詞對應的詞向量,而輸出就是該特定詞的詞向量;Skip-Gram模型的輸入是特定的一個詞的詞向量,輸出就是特定詞對應的上下文固定窗口的詞向量。
現(xiàn)在我們看下Word2vec如何通過Negative Sampling負采樣方法得到neg個負例;如果詞匯表的大小為V,那么我們就將一段長度為1的線段分成V份,每份對應詞匯表中的一個詞。當然每個詞對應的線段長度是不一樣的,高頻詞對應的線段長,低頻詞對應的線段短。
每個詞w的線段長度由下式?jīng)Q定︰
在word2vec中,分子和分母都取了3/4次冪如下:
在采樣前,我們將這段長度為1的線段劃分成M等份,這里M>>V,這樣可以保證每個詞對應的線段都會劃分成對應的小塊。而M份中的每一份都會落在某一個詞對應的線段上。在采樣的時候,我們只需要從M個位置中采樣出neg個位置就行,此時采樣到的每一個位置對應到的線段所屬的詞就是我們的負例詞。
在word2vec中,M取值默認為10^8。
問題2:fasttext的改進,特征hash的作用
fastText模型架構(gòu)和word2vec中的CBOW很相似,不同之處是fastText預測標簽而CBOW預測的是中間詞,即模型架構(gòu)類似但是模型的任務不同。
對于word2vec來說,詞向量的加和求平均會丟失詞順序的信息,為了彌補這一點Fasttext增加了N-gram特征,將n-gram當成一個詞,也用embedding來表示,所以look-up矩陣為[vocab+n_gram_num, dim]。由于n-gram的數(shù)量遠大于word的數(shù)量,完全存儲不現(xiàn)實,所以fasttext采用hash桶的方式,將所有n-gram都哈希到buckets桶中,哈希到同一個桶中的n-gram共享embedding vector,潛在的問題是存在哈希沖突,當然如果桶buckets取足夠大時,可以避免這個問題。
問題3:用rand2實現(xiàn)rand5
該題為leetocde470.用 Rand7()實現(xiàn)Rand10(),下面給出解法。
首先需要找到兩個規(guī)律,規(guī)律—︰
已知rand_N()可以等概率的生成[1, N]范圍的隨機數(shù)
那么∶
(rand_X()- 1)×Y + rand_Y()==>可以等概率的生成[1,X* Y]范圍的隨機數(shù)
即實現(xiàn)了rand_XY()
規(guī)律二:
要實現(xiàn)rand10(),就需要先實現(xiàn)rand_N(),并且保證N大于10且是10的倍數(shù)。這樣再通過rand_N()%10+1就可以得到[1,10]范圍的隨機數(shù)了。
最后,由于生成的49不是10的倍數(shù),故需要采用'拒絕采樣',也就是說如果某個采樣結(jié)果不在范圍內(nèi)就要丟棄它,如代碼如下:
時間復雜度:O(1)
空間復雜度:o(1)
參考: https:/leetcode-cn.com/problems/implement-rand10-using-rand7/solution/cong-zui-ji-chu-de-jiang-qi-ru-he-zuo-dao-jun-yun-/
問題4:介紹一下Bert以及三個下游任務
Bert模型是一種自編碼語言模型,其主要結(jié)構(gòu)是transformer的encoder層,其主要包含兩個訓練階段,預訓練與fine-tuning,其中預訓練階段的任務是Masked Language Model(完形填空)和Next Sentence Prediction。
下游任務︰句子對分類任務,單句子分類任務,問答任務,單句子標注任務。
問題5:除了Bert其他預訓練模型的拓展
RoBERTa模型在Bert模型基礎上的調(diào)整︰
訓練時間更長,Batch_size更大,(Bert 256,RoBERTa 8K)–訓練數(shù)據(jù)更多(Bert 16G,RoBERTa 160G)
移除了NPL (next predict loss)
動態(tài)調(diào)整Masking機制
Token Encoding:使用基于bytes-level 的BPE
— 今日學習推薦 —
七月【圖像分類與圖像搜索】 卷積神經(jīng)實踐解決車輛識別問題,價值千元課程,限時1分秒殺!
課程鏈接:https://www.julyedu.com/course/getDetail/256
本課程是CV高級小班的前期預習課之一,主要內(nèi)容包含卷積神經(jīng)網(wǎng)絡基礎知識、卷積網(wǎng)絡結(jié)構(gòu)、反向傳播、圖像特征提取、三元組損失等理論,以及目標檢測和圖像搜索實戰(zhàn)項目,理論和實戰(zhàn)結(jié)合,打好計算機視覺基礎。
戳↓↓“閱讀原文” 1分秒殺【圖像分類與圖像搜索】課程!









