0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

你們了解Word2vec嗎?讀者一篇就夠了

深度學(xué)習(xí)自然語言處理 ? 來源:大數(shù)據(jù)文摘 ? 作者:Jay Alammar ? 2021-06-23 16:36 ? 次閱讀

嵌入(embedding)是機(jī)器學(xué)習(xí)中最迷人的想法之一。如果你曾經(jīng)使用Siri、Google Assistant、Alexa、Google翻譯,甚至智能手機(jī)鍵盤進(jìn)行下一詞預(yù)測(cè),那么你很有可能從這個(gè)已經(jīng)成為自然語言處理模型核心的想法中受益。

在過去的幾十年中,嵌入技術(shù)用于神經(jīng)網(wǎng)絡(luò)模型已有相當(dāng)大的發(fā)展。尤其是最近,其發(fā)展包括導(dǎo)致BERT和GPT2等尖端模型的語境化嵌入。

BERT:

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

Word2vec是一種有效創(chuàng)建詞嵌入的方法,它自2013年以來就一直存在。但除了作為詞嵌入的方法之外,它的一些概念已經(jīng)被證明可以有效地創(chuàng)建推薦引擎和理解時(shí)序數(shù)據(jù)。在商業(yè)的、非語言的任務(wù)中。像Airbnb、阿里巴巴、Spotify這樣的公司都從NLP領(lǐng)域中提取靈感并用于產(chǎn)品中,從而為新型推薦引擎提供支持。

在這篇文章中,我們將討論嵌入的概念,以及使用word2vec生成嵌入的機(jī)制。讓我們從一個(gè)例子開始,熟悉使用向量來表示事物。你是否知道你的個(gè)性可以僅被五個(gè)數(shù)字的列表(向量)表示?

個(gè)性嵌入:你是什么樣的人?

如何用0到100的范圍來表示你是多么內(nèi)向/外向(其中0是最內(nèi)向的,100是最外向的)?你有沒有做過像MBTI那樣的人格測(cè)試,或者五大人格特質(zhì)測(cè)試?如果你還沒有,這些測(cè)試會(huì)問你一系列的問題,然后在很多維度給你打分,內(nèi)向/外向就是其中之一。

五大人格特質(zhì)測(cè)試測(cè)試結(jié)果示例。它可以真正告訴你很多關(guān)于你自己的事情,并且在學(xué)術(shù)、人格和職業(yè)成功方面都具有預(yù)測(cè)能力。此處可以找到測(cè)試結(jié)果。

假設(shè)我的內(nèi)向/外向得分為38/100。

讓我們把范圍收縮到-1到1:

當(dāng)你只知道這一條信息的時(shí)候,你覺得你有多了解這個(gè)人?了解不多。人很復(fù)雜,讓我們添加另一測(cè)試的得分作為新維度。

我們可以將兩個(gè)維度表示為圖形上的一個(gè)點(diǎn),或者作為從原點(diǎn)到該點(diǎn)的向量。我們擁有很棒的工具來處理即將上場(chǎng)的向量們。

我已經(jīng)隱藏了我們正在繪制的人格特征,這樣你會(huì)漸漸習(xí)慣于在不知道每個(gè)維度代表什么的情況下,從一個(gè)人格的向量表示中獲得價(jià)值信息。

我們現(xiàn)在可以說這個(gè)向量部分地代表了我的人格。當(dāng)你想要將另外兩個(gè)人與我進(jìn)行比較時(shí),這種表示法就有用了。假設(shè)我被公共汽車撞了,我需要被性格相似的人替換。

處理向量時(shí),計(jì)算相似度得分的常用方法是余弦相似度:

1號(hào)替身在性格上與我更相似。指向相同方向的向量(長(zhǎng)度也起作用)具有更高的余弦相似度。

再一次,兩個(gè)維度還不足以捕獲有關(guān)不同人群的足夠信息。心理學(xué)已經(jīng)研究出了五個(gè)主要人格特征(以及大量的子特征),所以讓我們使用所有五個(gè)維度進(jìn)行比較:

使用五個(gè)維度的問題是我們不能在二維平面繪制整齊小箭頭了。這是機(jī)器學(xué)習(xí)中的常見問題,我們經(jīng)常需要在更高維度的空間中思考。但好在余弦相似度仍然有效,它適用于任意維度:

余弦相似度適用于任意數(shù)量的維度。這些得分比上次的得分要更好,因?yàn)樗鼈兪歉鶕?jù)被比較事物的更高維度算出的。

在本節(jié)的最后,我希望提出兩個(gè)中心思想:

1.我們可以將人和事物表示為代數(shù)向量(這對(duì)機(jī)器來說很棒?。?/p>

2.我們可以很容易地計(jì)算出相似的向量之間的相互關(guān)系。

詞嵌入

通過上文的理解,我們繼續(xù)看看訓(xùn)練好的詞向量實(shí)例(也被稱為詞嵌入)并探索它們的一些有趣屬性。

這是一個(gè)單詞“king”的詞嵌入(在維基百科上訓(xùn)練的GloVe向量):

[ 0.50451 , 0.68607 , -0.59517 , -0.022801, 0.60046 , -0.13498 , -0.08813 , 0.47377 , -0.61798 , -0.31012 , -0.076666, 1.493 , -0.034189, -0.98173 , 0.68229 , 0.81722 , -0.51874 , -0.31503 , -0.55809 , 0.66421 , 0.1961 , -0.13495 , -0.11476 , -0.30344 , 0.41177 , -2.223 , -1.0756 , -1.0783 , -0.34354 , 0.33505 , 1.9927 , -0.04234 , -0.64319 , 0.71125 , 0.49159 , 0.16754 , 0.34344 , -0.25663 , -0.8523 , 0.1661 , 0.40102 , 1.1685 , -1.0137 , -0.21585 , -0.15155 , 0.78321 , -0.91241 , -1.6106 , -0.64426 , -0.51042 ]

這是一個(gè)包含50個(gè)數(shù)字的列表。通過觀察數(shù)值我們看不出什么,但是讓我們稍微給它可視化,以便比較其它詞向量。我們把所有這些數(shù)字放在一行:

讓我們根據(jù)它們的值對(duì)單元格進(jìn)行顏色編碼(如果它們接近2則為紅色,接近0則為白色,接近-2則為藍(lán)色):

我們將忽略數(shù)字并僅查看顏色以指示單元格的值?,F(xiàn)在讓我們將“king”與其它單詞進(jìn)行比較:

看看“Man”和“Woman”彼此之間是如何比它們?nèi)我灰粋€(gè)單詞與“King”相比更相似的?這暗示你一些事情。這些向量圖示很好的展現(xiàn)了這些單詞的信息/含義/關(guān)聯(lián)。

這是另一個(gè)示例列表(通過垂直掃描列來查找具有相似顏色的列):

有幾個(gè)要點(diǎn)需要指出:

1.所有這些不同的單詞都有一條直的紅色列。它們?cè)谶@個(gè)維度上是相似的(雖然我們不知道每個(gè)維度是什么)

2.你可以看到“woman”和“girl”在很多地方是相似的,“man”和“boy”也是一樣

3.“boy”和“girl”也有彼此相似的地方,但這些地方卻與“woman”或“man”不同。這些是否可以總結(jié)出一個(gè)模糊的“youth”概念?可能吧。

4.除了最后一個(gè)單詞,所有單詞都是代表人。我添加了一個(gè)對(duì)象“water”來顯示類別之間的差異。你可以看到藍(lán)色列一直向下并在 “water”的詞嵌入之前停下了。

5.“king”和“queen”彼此之間相似,但它們與其它單詞都不同。這些是否可以總結(jié)出一個(gè)模糊的“royalty”概念?

類比

展現(xiàn)嵌入奇妙屬性的著名例子是類比。我們可以添加、減去詞嵌入并得到有趣的結(jié)果。一個(gè)著名例子是公式:“king”-“man”+“woman”:

e6454ffe-d3f6-11eb-9e57-12bb97331649.jpg

python中使用Gensim庫,我們可以添加和減去詞向量,它會(huì)找到與結(jié)果向量最相似的單詞。該圖像顯示了最相似的單詞列表,每個(gè)單詞都具有余弦相似性。

我們可以像之前一樣可視化這個(gè)類比:

由“king-man + woman”生成的向量并不完全等同于“queen”,但“queen”是我們?cè)诖思现邪?00,000個(gè)字嵌入中最接近它的單詞。

現(xiàn)在我們已經(jīng)看過訓(xùn)練好的詞嵌入,接下來讓我們更多地了解訓(xùn)練過程。但在我們開始使用word2vec之前,我們需要看一下詞嵌入的父概念:神經(jīng)語言模型。

語言模型

如果要舉自然語言處理最典型的例子,那應(yīng)該就是智能手機(jī)輸入法中的下一單詞預(yù)測(cè)功能。這是個(gè)被數(shù)十億人每天使用上百次的功能。

下一單詞預(yù)測(cè)是一個(gè)可以通過語言模型實(shí)現(xiàn)的任務(wù)。語言模型會(huì)通過單詞列表(比如說兩個(gè)詞)去嘗試預(yù)測(cè)可能緊隨其后的單詞。

在上面這個(gè)手機(jī)截屏中,我們可以認(rèn)為該模型接收到兩個(gè)綠色單詞(thou shalt)并推薦了一組單詞(“not” 就是其中最有可能被選用的一個(gè)):

我們可以把這個(gè)模型想象為這個(gè)黑盒:

但事實(shí)上,該模型不會(huì)只輸出一個(gè)單詞。實(shí)際上,它對(duì)所有它知道的單詞(模型的詞庫,可能有幾千到幾百萬個(gè)單詞)的按可能性打分,輸入法程序會(huì)選出其中分?jǐn)?shù)最高的推薦給用戶。

自然語言模型的輸出就是模型所知單詞的概率評(píng)分,我們通常把概率按百分比表示,但是實(shí)際上,40%這樣的分?jǐn)?shù)在輸出向量組是表示為0.4

自然語言模型(請(qǐng)參考Bengio 2003)在完成訓(xùn)練后,會(huì)按如下中所示法人三步完成預(yù)測(cè):

第一步與我們最相關(guān),因?yàn)槲覀冇懻摰木褪荅mbedding。模型在經(jīng)過訓(xùn)練之后會(huì)生成一個(gè)映射單詞表所有單詞的矩陣。在進(jìn)行預(yù)測(cè)的時(shí)候,我們的算法就是在這個(gè)映射矩陣中查詢輸入的單詞,然后計(jì)算出預(yù)測(cè)值:

現(xiàn)在讓我們將重點(diǎn)放到模型訓(xùn)練上,來學(xué)習(xí)一下如何構(gòu)建這個(gè)映射矩陣。

語言模型訓(xùn)練

相較于大多數(shù)其他機(jī)器學(xué)習(xí)模型,語言模型有一個(gè)很大有優(yōu)勢(shì),那就是我們有豐富的文本來訓(xùn)練語言模型。所有我們的書籍、文章、維基百科、及各種類型的文本內(nèi)容都可用。相比之下,許多其他機(jī)器學(xué)習(xí)的模型開發(fā)就需要手工設(shè)計(jì)數(shù)據(jù)或者專門采集數(shù)據(jù)。

我們通過找常出現(xiàn)在每個(gè)單詞附近的詞,就能獲得它們的映射關(guān)系。機(jī)制如下:

1.先是獲取大量文本數(shù)據(jù)(例如所有維基百科內(nèi)容)

2. 然后我們建立一個(gè)可以沿文本滑動(dòng)的窗(例如一個(gè)窗里包含三個(gè)單詞)

3. 利用這樣的滑動(dòng)窗就能為訓(xùn)練模型生成大量樣本數(shù)據(jù)。

當(dāng)這個(gè)窗口沿著文本滑動(dòng)時(shí),我們就能(真實(shí)地)生成一套用于模型訓(xùn)練的數(shù)據(jù)集。為了明確理解這個(gè)過程,我們看下滑動(dòng)窗是如何處理這個(gè)短語的:

在一開始的時(shí)候,窗口鎖定在句子的前三個(gè)單詞上:

我們把前兩個(gè)單詞單做特征,第三個(gè)單詞單做標(biāo)簽

這時(shí)我們就生產(chǎn)了數(shù)據(jù)集中的第一個(gè)樣本,它會(huì)被用在我們后續(xù)的語言模型訓(xùn)練中。

接著,我們將窗口滑動(dòng)到下一個(gè)位置并生產(chǎn)第二個(gè)樣本:

這時(shí)第二個(gè)樣本也生成了。

不用多久,我們就能得到一個(gè)較大的數(shù)據(jù)集,從數(shù)據(jù)集中我們能看到在不同的單詞組后面會(huì)出現(xiàn)的單詞:

在實(shí)際應(yīng)用中,模型往往在我們滑動(dòng)窗口時(shí)就被訓(xùn)練的。但是我覺得將生成數(shù)據(jù)集和訓(xùn)練模型分為兩個(gè)階段會(huì)顯得更清晰易懂一些。除了使用神經(jīng)網(wǎng)絡(luò)建模之外,大家還常用一項(xiàng)名為N-gams的技術(shù)進(jìn)行模型訓(xùn)練。

如果想了解現(xiàn)實(shí)產(chǎn)品從使用N-gams模型到使用神經(jīng)模型的轉(zhuǎn)變,可以看一下Swiftkey (我最喜歡的安卓輸入法)在2015年的發(fā)表一篇博客,文中介紹了他們的自然語言模型及該模型與早期N-gams模型的對(duì)比。我很喜這個(gè)例子,因?yàn)檫@個(gè)它能告訴你如何在營(yíng)銷宣講中把Embedding的算法屬性解釋清楚。

顧及兩頭

根據(jù)前面的信息進(jìn)行填空:

在空白前面,我提供的背景是五個(gè)單詞(如果事先提及到‘bus’),可以肯定,大多數(shù)人都會(huì)把bus填入空白中。但是如果我再給你一條信息——比如空白后的一個(gè)單詞,那答案會(huì)有變嗎?

這下空白處改填的內(nèi)容完全變了。這時(shí)’red’這個(gè)詞最有可能適合這個(gè)位置。從這個(gè)例子中我們能學(xué)到,一個(gè)單詞的前后詞語都帶信息價(jià)值。事實(shí)證明,我們需要考慮兩個(gè)方向的單詞(目標(biāo)單詞的左側(cè)單詞與右側(cè)單詞)。那我們?cè)撊绾握{(diào)整訓(xùn)練方式以滿足這個(gè)要求呢,繼續(xù)往下看。

Skipgram模型

我們不僅要考慮目標(biāo)單詞的前兩個(gè)單詞,還要考慮其后兩個(gè)單詞。

如果這么做,我們實(shí)際上構(gòu)建并訓(xùn)練的模型就如下所示:

上述的這種架構(gòu)被稱為連續(xù)詞袋(CBOW),在一篇關(guān)于word2vec的論文中有闡述。

還有另一種架構(gòu),它不根據(jù)前后文(前后單詞)來猜測(cè)目標(biāo)單詞,而是推測(cè)當(dāng)前單詞可能的前后單詞。我們?cè)O(shè)想一下滑動(dòng)窗在訓(xùn)練數(shù)據(jù)時(shí)如下圖所示:

這里粉框顏色深度呈現(xiàn)不同,是因?yàn)榛瑒?dòng)窗給訓(xùn)練集產(chǎn)生了4個(gè)獨(dú)立的樣本:

這種方式稱為Skipgram架構(gòu)。我們可以像下圖這樣將展示滑動(dòng)窗的內(nèi)容。

這樣就為數(shù)據(jù)集提供了4個(gè)樣本:

然后我們移動(dòng)滑動(dòng)窗到下一個(gè)位置:

這樣我們又產(chǎn)生了接下來4個(gè)樣本:

在移動(dòng)幾組位置之后,我們就能得到一批樣本:

重新審視訓(xùn)練過程

現(xiàn)在我們已經(jīng)從現(xiàn)有的文本中獲得了Skipgram模型的訓(xùn)練數(shù)據(jù)集,接下來讓我們看看如何使用它來訓(xùn)練一個(gè)能預(yù)測(cè)相鄰詞匯的自然語言模型。

從數(shù)據(jù)集中的第一個(gè)樣本開始。我們將特征輸入到未經(jīng)訓(xùn)練的模型,讓它預(yù)測(cè)一個(gè)可能的相鄰單詞。

該模型會(huì)執(zhí)行三個(gè)步驟并輸入預(yù)測(cè)向量(對(duì)應(yīng)于單詞表中每個(gè)單詞的概率)。因?yàn)槟P臀唇?jīng)訓(xùn)練,該階段的預(yù)測(cè)肯定是錯(cuò)誤的。但是沒關(guān)系,我們知道應(yīng)該猜出的是哪個(gè)單詞——這個(gè)詞就是我訓(xùn)練集數(shù)據(jù)中的輸出標(biāo)簽:

目標(biāo)單詞概率為1,其他所有單詞概率為0,這樣數(shù)值組成的向量就是“目標(biāo)向量”。

模型的偏差有多少?將兩個(gè)向量相減,就能得到偏差向量:

現(xiàn)在這一誤差向量可以被用于更新模型了,所以在下一輪預(yù)測(cè)中,如果用not作為輸入,我們更有可能得到thou作為輸出了。

這其實(shí)就是訓(xùn)練的第一步了。我們接下來繼續(xù)對(duì)數(shù)據(jù)集內(nèi)下一份樣本進(jìn)行同樣的操作,直到我們遍歷所有的樣本。這就是一輪(epoch)了。我們?cè)俣嘧鰩纵啠╡poch),得到訓(xùn)練過的模型,于是就可以從中提取嵌入矩陣來用于其他應(yīng)用了。

以上確實(shí)有助于我們理解整個(gè)流程,但這依然不是word2vec真正訓(xùn)練的方法。我們錯(cuò)過了一些關(guān)鍵的想法。

負(fù)例采樣

回想一下這個(gè)神經(jīng)語言模型計(jì)算預(yù)測(cè)值的三個(gè)步驟:

從計(jì)算的角度來看,第三步非常昂貴 - 尤其是當(dāng)我們將需要在數(shù)據(jù)集中為每個(gè)訓(xùn)練樣本都做一遍(很容易就多達(dá)數(shù)千萬次)。我們需要尋找一些提高表現(xiàn)的方法。

一種方法是將目標(biāo)分為兩個(gè)步驟:

1.生成高質(zhì)量的詞嵌入(不要擔(dān)心下一個(gè)單詞預(yù)測(cè))。

2.使用這些高質(zhì)量的嵌入來訓(xùn)練語言模型(進(jìn)行下一個(gè)單詞預(yù)測(cè))。

在本文中我們將專注于第1步(因?yàn)檫@篇文章專注于嵌入)。要使用高性能模型生成高質(zhì)量嵌入,我們可以改變一下預(yù)測(cè)相鄰單詞這一任務(wù):

將其切換到一個(gè)提取輸入與輸出單詞的模型,并輸出一個(gè)表明它們是否是鄰居的分?jǐn)?shù)(0表示“不是鄰居”,1表示“鄰居”)。

這個(gè)簡(jiǎn)單的變換將我們需要的模型從神經(jīng)網(wǎng)絡(luò)改為邏輯回歸模型——因此它變得更簡(jiǎn)單,計(jì)算速度更快。

這個(gè)開關(guān)要求我們切換數(shù)據(jù)集的結(jié)構(gòu)——標(biāo)簽值現(xiàn)在是一個(gè)值為0或1的新列。它們將全部為1,因?yàn)槲覀兲砑拥乃袉卧~都是鄰居。

現(xiàn)在的計(jì)算速度可謂是神速啦——在幾分鐘內(nèi)就能處理數(shù)百萬個(gè)例子。但是我們還需要解決一個(gè)漏洞。如果所有的例子都是鄰居(目標(biāo):1),我們這個(gè)”天才模型“可能會(huì)被訓(xùn)練得永遠(yuǎn)返回1——準(zhǔn)確性是百分百了,但它什么東西都學(xué)不到,只會(huì)產(chǎn)生垃圾嵌入結(jié)果。

為了解決這個(gè)問題,我們需要在數(shù)據(jù)集中引入負(fù)樣本 - 不是鄰居的單詞樣本。我們的模型需要為這些樣本返回0。模型必須努力解決這個(gè)挑戰(zhàn)——而且依然必須保持高速。

但是我們作為輸出詞填寫什么呢?我們從詞匯表中隨機(jī)抽取單詞

這個(gè)想法的靈感來自噪聲對(duì)比估計(jì)。我們將實(shí)際信號(hào)(相鄰單詞的正例)與噪聲(隨機(jī)選擇的不是鄰居的單詞)進(jìn)行對(duì)比。這導(dǎo)致了計(jì)算和統(tǒng)計(jì)效率的巨大折衷。

噪聲對(duì)比估計(jì)

http://proceedings.mlr.press/v9/gutmann10a/gutmann10a.pdf

基于負(fù)例采樣的Skipgram(SGNS)

我們現(xiàn)在已經(jīng)介紹了word2vec中的兩個(gè)(一對(duì))核心思想:負(fù)例采樣,以及skipgram。

Word2vec訓(xùn)練流程

現(xiàn)在我們已經(jīng)了解了skipgram和負(fù)例采樣的兩個(gè)中心思想,可以繼續(xù)仔細(xì)研究實(shí)際的word2vec訓(xùn)練過程了。

在訓(xùn)練過程開始之前,我們預(yù)先處理我們正在訓(xùn)練模型的文本。在這一步中,我們確定一下詞典的大小(我們稱之為vocab_size,比如說10,000)以及哪些詞被它包含在內(nèi)。

在訓(xùn)練階段的開始,我們創(chuàng)建兩個(gè)矩陣——Embedding矩陣和Context矩陣。這兩個(gè)矩陣在我們的詞匯表中嵌入了每個(gè)單詞(所以vocab_size是他們的維度之一)。第二個(gè)維度是我們希望每次嵌入的長(zhǎng)度(embedding_size——300是一個(gè)常見值,但我們?cè)谇拔囊部催^50的例子)。

在訓(xùn)練過程開始時(shí),我們用隨機(jī)值初始化這些矩陣。然后我們開始訓(xùn)練過程。在每個(gè)訓(xùn)練步驟中,我們采取一個(gè)相鄰的例子及其相關(guān)的非相鄰例子。我們來看看我們的第一組:

現(xiàn)在我們有四個(gè)單詞:輸入單詞not和輸出/上下文單詞: thou(實(shí)際鄰居詞),aaron和taco(負(fù)面例子)。我們繼續(xù)查找它們的嵌入——對(duì)于輸入詞,我們查看Embedding矩陣。對(duì)于上下文單詞,我們查看Context矩陣(即使兩個(gè)矩陣都在我們的詞匯表中嵌入了每個(gè)單詞)。

然后,我們計(jì)算輸入嵌入與每個(gè)上下文嵌入的點(diǎn)積。在每種情況下,結(jié)果都將是表示輸入和上下文嵌入的相似性的數(shù)字。

現(xiàn)在我們需要一種方法將這些分?jǐn)?shù)轉(zhuǎn)化為看起來像概率的東西——我們需要它們都是正值,并且 處于0到1之間。sigmoid這一邏輯函數(shù)轉(zhuǎn)換正適合用來做這樣的事情啦。

現(xiàn)在我們可以將sigmoid操作的輸出視為這些示例的模型輸出。您可以看到taco得分最高,aaron最低,無論是sigmoid操作之前還是之后。

既然未經(jīng)訓(xùn)練的模型已做出預(yù)測(cè),而且我們確實(shí)擁有真實(shí)目標(biāo)標(biāo)簽來作對(duì)比,那么讓我們計(jì)算模型預(yù)測(cè)中的誤差吧。為此我們只需從目標(biāo)標(biāo)簽中減去sigmoid分?jǐn)?shù)。

這是“機(jī)器學(xué)習(xí)”的“學(xué)習(xí)”部分?,F(xiàn)在,我們可以利用這個(gè)錯(cuò)誤分?jǐn)?shù)來調(diào)整not、thou、aaron和taco的嵌入,使我們下一次做出這一計(jì)算時(shí),結(jié)果會(huì)更接近目標(biāo)分?jǐn)?shù)。

訓(xùn)練步驟到此結(jié)束。我們從中得到了這一步所使用詞語更好一些的嵌入(not,thou,aaron和taco)。我們現(xiàn)在進(jìn)行下一步(下一個(gè)相鄰樣本及其相關(guān)的非相鄰樣本),并再次執(zhí)行相同的過程。

當(dāng)我們循環(huán)遍歷整個(gè)數(shù)據(jù)集多次時(shí),嵌入會(huì)繼續(xù)得到改進(jìn)。然后我們就可以停止訓(xùn)練過程,丟棄Context矩陣,并使用Embeddings矩陣作為下一項(xiàng)任務(wù)的已被訓(xùn)練好的嵌入。

窗口大小和負(fù)樣本數(shù)量

word2vec訓(xùn)練過程中的兩個(gè)關(guān)鍵超參數(shù)是窗口大小和負(fù)樣本的數(shù)量。

不同的任務(wù)適合不同的窗口大小。一種啟發(fā)式方法是,使用較小的窗口大小(2-15)會(huì)得到這樣的嵌入:兩個(gè)嵌入之間的高相似性得分表明這些單詞是可互換的(注意,如果我們只查看附近距離很近的單詞,反義詞通??梢曰Q——例如,好的和壞的經(jīng)常出現(xiàn)在類似的語境中)。使用較大的窗口大?。?5-50,甚至更多)會(huì)得到相似性更能指示單詞相關(guān)性的嵌入。在實(shí)際操作中,你通常需要對(duì)嵌入過程提供指導(dǎo)以幫助讀者得到相似的”語感“。Gensim默認(rèn)窗口大小為5(除了輸入字本身以外還包括輸入字之前與之后的兩個(gè)字)。

負(fù)樣本的數(shù)量是訓(xùn)練訓(xùn)練過程的另一個(gè)因素。原始論文認(rèn)為5-20個(gè)負(fù)樣本是比較理想的數(shù)量。它還指出,當(dāng)你擁有足夠大的數(shù)據(jù)集時(shí),2-5個(gè)似乎就已經(jīng)足夠了。Gensim默認(rèn)為5個(gè)負(fù)樣本。

結(jié)論

我希望您現(xiàn)在對(duì)詞嵌入和word2vec算法有所了解。我也希望現(xiàn)在當(dāng)你讀到一篇提到“帶有負(fù)例采樣的skipgram”(SGNS)的論文(如頂部的推薦系統(tǒng)論文)時(shí),你已經(jīng)對(duì)這些概念有了更好的認(rèn)識(shí)。

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴

原文標(biāo)題:圖解Word2vec,讀這一篇就夠了!

文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【書籍評(píng)測(cè)活動(dòng)NO.56】極速探索HarmonyOS NEXT:純血鴻蒙應(yīng)用開發(fā)實(shí)踐

    了解并掌握鴻蒙開發(fā)的核心技術(shù),以及鴻蒙應(yīng)用在實(shí)際開發(fā)中的應(yīng)用方法。 本書共分為四,共計(jì)16章,分別為鴻蒙開發(fā)基礎(chǔ)、鴻蒙開發(fā)進(jìn)階、HarmonyOS SDK 開放能力集
    發(fā)表于 01-20 16:53

    UVLED光固化機(jī)常用術(shù)語和單位簡(jiǎn)介,文章帶你全面了解

    在現(xiàn)代化的工業(yè)生產(chǎn)中,UVLED光固化機(jī)以其高效、環(huán)保的特點(diǎn),成為了眾多行業(yè)的得力助手。然而,對(duì)于初次接觸UVLED光固化機(jī)的朋友來說,那些專業(yè)術(shù)語和單位可能會(huì)讓人感到困惑。別擔(dān)心,今天我們就來
    的頭像 發(fā)表于 12-24 13:27 ?341次閱讀
    UVLED光固化機(jī)常用術(shù)語和單位簡(jiǎn)介,<b class='flag-5'>一</b><b class='flag-5'>篇</b>文章帶你全面<b class='flag-5'>了解</b>!

    《DNESP32S3使用指南-IDF版_V1.6》第章 本書學(xué)習(xí)方法

    :1,堅(jiān)持循序漸進(jìn)的思路編寫,從基礎(chǔ)到入門,從簡(jiǎn)單到復(fù)雜。2,將知識(shí)進(jìn)行分類介紹,簡(jiǎn)化學(xué)習(xí)過程,包括:基礎(chǔ)、入門、提高。3,將板卡硬件資源介紹獨(dú)立成
    發(fā)表于 11-20 09:54

    了解I2C總線

    電子發(fā)燒友網(wǎng)站提供《了解I2C總線.pdf》資料免費(fèi)下載
    發(fā)表于 10-08 11:13 ?2次下載
    <b class='flag-5'>了解</b>I<b class='flag-5'>2</b>C總線

    WORD里面插入波形圖中遇到的問題麻煩大佬幫忙看

    波形圖添加到WORD功能實(shí)現(xiàn)了沒有問題,但是插入的位置不是我想要的,然后在MS Office parameters 里面的書簽當(dāng)中添加了我在WORD里面定義的書簽然會(huì)就會(huì)報(bào)錯(cuò)41110. 麻煩各位大佬幫忙小弟解答下,剛學(xué)LA
    發(fā)表于 09-28 13:51

    用EEPROM存儲(chǔ)遇到的技術(shù)問題,看這就夠了!

    用EEPROM存儲(chǔ)遇到的技術(shù)問題,看這就夠了!
    的頭像 發(fā)表于 09-05 15:54 ?1196次閱讀

    《DNK210使用指南 -CanMV版 V1.0》第章本書學(xué)習(xí)方法

    ,堅(jiān)持循序漸進(jìn)的思路講解,從基礎(chǔ)到入門,從簡(jiǎn)單到復(fù)雜;2,將知識(shí)進(jìn)行分類介紹,簡(jiǎn)化學(xué)習(xí)過程;3,將板卡硬件資源介紹獨(dú)立成個(gè)文檔《DNK210硬件參考手冊(cè).pdf》。因此,讀者在學(xué)習(xí)本書的時(shí)候,我們
    發(fā)表于 08-28 17:57

    了解電商大促系統(tǒng)的高可用保障思路-獻(xiàn)給技術(shù)伙伴們

    的黑話和高大尚的論調(diào),而是希望有個(gè)體系化的知識(shí)讓讀者有所得。 、【知?dú)v史】電商大促的簡(jiǎn)介 1.1、什么是電商大促 電商大促是電商平臺(tái)組織的種大型銷售推廣活動(dòng),目的是通過提供各種優(yōu)惠、折扣等方法,提高商品銷售額和網(wǎng)站流量,增
    的頭像 發(fā)表于 08-22 15:04 ?249次閱讀
    <b class='flag-5'>一</b>文<b class='flag-5'>了解</b>電商大促系統(tǒng)的高可用保障思路-獻(xiàn)給技術(shù)伙伴們

    文章帶你了解Chenlink UV光固膠的主要應(yīng)用領(lǐng)域

    國產(chǎn)化替代。 最近也有很多客戶通過網(wǎng)絡(luò)找到Chenlink,詢問了解UV光固膠各個(gè)方面的信息。Chenlink作為UV光固膠廠家,今天就用文章整理出UV光固膠的主要應(yīng)用領(lǐng)域,如果大家也有類似用膠需求的話,可以通過來電、在線客
    的頭像 發(fā)表于 07-26 09:24 ?464次閱讀

    【《大語言模型應(yīng)用指南》閱讀體驗(yàn)】+ 基礎(chǔ)

    的章節(jié)包括統(tǒng)自然語言任務(wù)、大語言模型的訓(xùn)練過程和局限性分析,閱讀還算順利。 至此,基礎(chǔ)只能算是瀏覽完成,因?yàn)椴糠衷矸椒ú]有吃透,但盡管如此也是收獲頗豐,因?yàn)槲?b class='flag-5'>了解了大語言模型的基礎(chǔ)知識(shí)和應(yīng)用過程。
    發(fā)表于 07-25 14:33

    【《大語言模型應(yīng)用指南》閱讀體驗(yàn)】+ 俯瞰全書

    了解此書的主要內(nèi)容: 書分四,基礎(chǔ)、入門、進(jìn)階和展望。 基礎(chǔ)從人工智能起源開始、之后又介紹了機(jī)器學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)和大語言模型的基礎(chǔ)知識(shí),如果讀者學(xué)習(xí)過機(jī)器學(xué)習(xí)相關(guān)課程,那這個(gè)基礎(chǔ)
    發(fā)表于 07-21 13:35

    名單公布!【書籍評(píng)測(cè)活動(dòng)NO.38】OpenHarmony開發(fā)與實(shí)踐 | 基于紅莓RK2206開發(fā)板

    OpenHarmony操作系統(tǒng)開發(fā)和應(yīng)用的工程師、學(xué)生等讀者,也適合想要了解OpenHarmony操作系統(tǒng)的技術(shù)愛好者和初學(xué)者。讀者應(yīng)具備定的嵌入式開發(fā)基礎(chǔ)知識(shí)和C語言編程經(jīng)驗(yàn),以更
    發(fā)表于 07-19 10:57

    nlp自然語言處理模型有哪些

    : 詞嵌入(Word Embedding) 詞嵌入是將詞匯映射到高維空間的向量表示,使得語義相近的詞在向量空間中的距離更近。常見的詞嵌入模型有: Word2Vec:由Mikolov等人于2013年提出
    的頭像 發(fā)表于 07-05 09:57 ?846次閱讀

    iPad版微軟Word新增頁面邊框功能,提升文檔美觀度

    微軟公司今日宣布,啟動(dòng) Microsoft 365 Insider 項(xiàng)目的 iPad 版 Word 應(yīng)用程序的新功能測(cè)試活動(dòng)——頁面邊框功能開發(fā)完成。此項(xiàng)便利有用的功能有助于提升文檔整體美感。
    的頭像 發(fā)表于 05-18 14:05 ?608次閱讀

    網(wǎng)頁版Word添加復(fù)選框功能,實(shí)現(xiàn)任務(wù)跟蹤與習(xí)慣養(yǎng)成

    操作方法如下:進(jìn)入網(wǎng)頁版Word后,用戶可選用已有文檔進(jìn)行編輯或新建文檔試用此功能;點(diǎn)擊主菜單中的Checklist按鈕或以“Ctrl+,(逗號(hào))”快捷鍵實(shí)現(xiàn)插入;確認(rèn)任務(wù)已完成需選中左方方形圖示或按下Ctrl + Alt + Enter鍵。
    的頭像 發(fā)表于 02-23 14:38 ?765次閱讀