2 回答

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超4個(gè)贊
一個(gè)簡單的彈出窗口是我們可以使用另一個(gè) digit=numberOfWordsInVocab+1 來填充。但這不是需要更大的尺寸嗎?
不!那是一樣的大小。
a=np.full((5000,5000), 7)
a.nbytes
200000000
b=np.zeros((5000,5000))
b.nbytes
200000000
編輯:錯(cuò)別字

TA貢獻(xiàn)1765條經(jīng)驗(yàn) 獲得超5個(gè)贊
如果我必須使用預(yù)訓(xùn)練的詞向量作為神經(jīng)網(wǎng)絡(luò)中的嵌入層(例如 CNN),我該如何處理索引 0?
回答
通常,可以通過模型和目標(biāo)的加權(quán)成本來處理空條目。但是,在處理單詞和順序數(shù)據(jù)時(shí),事情可能有點(diǎn)棘手,可以考慮幾件事。讓我們做一些假設(shè)并進(jìn)行處理。
假設(shè)
我們從一個(gè)預(yù)訓(xùn)練的 word2vec 模型開始。
我們有不同長度的序列,最多有
max_lenght
單詞。
細(xì)節(jié)
Word2Vec 是一種學(xué)習(xí)從離散變量(詞標(biāo)記 = 詞唯一 id)到連續(xù)向量空間的映射(嵌入)的模型。
向量空間中的表示使得成本函數(shù)(CBOW,Skip-gram,本質(zhì)上是以雙向方式從上下文中預(yù)測單詞)在語料庫上被最小化。
閱讀基礎(chǔ)教程(如Google在Tensorflow教程上的 word2vec 教程)揭示了算法的一些細(xì)節(jié),包括負(fù)采樣。
實(shí)現(xiàn)是一個(gè)查找表。它比替代的 one-hot 編碼技術(shù)更快,因?yàn)?one-hot 編碼矩陣的維度很大(比如 10,000 個(gè)單詞的 10,000 列,連續(xù)單詞的
n
行n
)。因此查找(哈希)表明顯更快,并且它從嵌入矩陣中選擇行(對于行向量)。
任務(wù)
添加缺少的條目(無單詞)并在模型中使用它。
建議
如果丟失數(shù)據(jù)的成本有一些用途,例如使用該條目的預(yù)測并且該條目有標(biāo)簽,則可以按照建議添加一個(gè)新值(可以是 0 索引,但所有索引必須移動
i=i+1
并且嵌入矩陣應(yīng)該在位置 0 處有新行)。按照第一個(gè)建議,您需要訓(xùn)練添加的行。您可以對 NaN 類與全部使用負(fù)采樣。我不建議用它來處理缺失值。處理“未知單詞”類是一個(gè)很好的技巧。
對于每個(gè)比 更短的樣本,您可以通過常量 0 對這些條目的成本進(jìn)行加權(quán)
max_length
。也就是說,如果我們有一個(gè)詞標(biāo)記序列[0,5,6,2,178,24,0,NaN,NaN]
,那么對應(yīng)的權(quán)重向量是[1,1,1,1,1,1,1,0,0]
您應(yīng)該擔(dān)心重新索引單詞及其成本。在內(nèi)存中,幾乎沒有區(qū)別(
1
vsN
words,N
很大)。在復(fù)雜性方面,它可以稍后合并到初始標(biāo)記化函數(shù)中。預(yù)測和模型復(fù)雜度是一個(gè)更大的問題,也是對系統(tǒng)更重要的要求。有很多方法可以解決不同長度的問題(LSTM、RNN,現(xiàn)在我們嘗試使用 CNN 和成本技巧)。閱讀有關(guān)該問題的最新文獻(xiàn),我相信有很多工作要做。例如,請參閱A Convolutional Neural Network for Modeling Sentences論文。
添加回答
舉報(bào)