欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Word2Vec論文總結(jié)和實(shí)現(xiàn)是怎樣的

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)Word2Vec論文總結(jié)和實(shí)現(xiàn)是怎樣的,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

十年建站經(jīng)驗, 成都網(wǎng)站設(shè)計、網(wǎng)站制作客戶的見證與正確選擇。成都創(chuàng)新互聯(lián)提供完善的營銷型網(wǎng)頁建站明細(xì)報價表。后期開發(fā)更加便捷高效,我們致力于追求更美、更快、更規(guī)范。

一、總結(jié)

1.  word2vec可以在百萬數(shù)量級的詞典和上億的數(shù)據(jù)集上進(jìn)行高效的訓(xùn)練;該工具得到詞向量(word embedding)的訓(xùn)練結(jié)果,可以很好的度量詞與詞之間的相似性。

2. word2vec算法背后時一個淺層神經(jīng)網(wǎng)絡(luò)。word2vec算法或模型指的是計算word vector的CBOW模型和skip-gram模型。

Word2Vec論文總結(jié)和實(shí)現(xiàn)是怎樣的

3. Skip-gram的公式及說明

     當(dāng)時間窗口大小為m時,跳字模型需要最大化給定任一中心詞生成背景詞的概率為:Word2Vec論文總結(jié)和實(shí)現(xiàn)是怎樣的

損失函數(shù)中中心詞生成背景詞的概率可以使用 softmax 函數(shù)進(jìn)行定義:

Word2Vec論文總結(jié)和實(shí)現(xiàn)是怎樣的

說明:

Word2Vec論文總結(jié)和實(shí)現(xiàn)是怎樣的

4. CBOW公式及說明

Word2Vec論文總結(jié)和實(shí)現(xiàn)是怎樣的

Word2Vec論文總結(jié)和實(shí)現(xiàn)是怎樣的

5. 負(fù)采樣(negative sample)

負(fù)采樣每次讓一個訓(xùn)練樣本僅僅更新一小部分的權(quán)重 。 在論文中,作者指出指出對于小規(guī)模數(shù)據(jù)集,選擇5-20個negative words會比較好,對于大規(guī)模數(shù)據(jù)集可以僅選擇2-5個negative words。 大規(guī)模數(shù)據(jù)集反而取負(fù)采樣詞少,1)減少計算量,2)經(jīng)驗。負(fù)采樣最后會變成1,0(正負(fù)樣本)的邏輯回歸問題。

負(fù)采樣詞根據(jù)公式進(jìn)行選擇,Word2Vec論文總結(jié)和實(shí)現(xiàn)是怎樣的

一個單詞的負(fù)采樣概率越大,它被選中的概率越大。負(fù)采樣我這樣理解,現(xiàn)在需要取20個負(fù)樣本,語料庫中有1w個詞,每個詞都有根據(jù)頻率計算的概率(和是1),我現(xiàn)在隨機(jī)選0-1之間的數(shù),落在哪個位置就選哪個詞,選20次即可。

Word2Vec論文總結(jié)和實(shí)現(xiàn)是怎樣的

6. 層序softmax

在模型的訓(xùn)練過程中,通過Huffman編碼,構(gòu)造了一顆龐大的Huffman樹,同時會給非葉子結(jié)點(diǎn)賦予向量。我們要計算的是目標(biāo)詞w的概率,這個概率的具體含義,是指從root結(jié)點(diǎn)開始隨機(jī)走,走到目標(biāo)詞w的概率。因此在途中路過非葉子結(jié)點(diǎn)(包括root)時,需要分別知道往左走和往右走的概率。例如到達(dá)非葉子節(jié)點(diǎn)n的時候往左邊走和往右邊走的概率分別是: Word2Vec論文總結(jié)和實(shí)現(xiàn)是怎樣的

Word2Vec論文總結(jié)和實(shí)現(xiàn)是怎樣的Word2Vec論文總結(jié)和實(shí)現(xiàn)是怎樣的

由此,我們就可以使用隨機(jī)梯度下降在跳字模型和連續(xù)詞袋模型中不斷迭代計算詞典中所有詞向量 v 和非葉子節(jié)點(diǎn)的向量 u。每次迭代的計算開銷由 O(|V|) 降為二叉樹的高度 O(log|V|)。

二、實(shí)現(xiàn)

根據(jù)簡單語料,展示預(yù)料庫中詞關(guān)系,為相似度計算提供基礎(chǔ)。

# 1. 導(dǎo)入基礎(chǔ)包,全局參數(shù)
import torch
import numpy as np
import matplotlib.pyplot as plt
from torch import nn, optim
from torch.utils.data import TensorDataset, DataLoader

device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')

# 2. 語料及語料庫大小, 詞與索引關(guān)系
sentences = ['i like dog', 'jack hate coffee', 'i love milk', 'jack study natural language process',
             'word2vec conclude skip-gram and cbow model', 'jack like coffee', 'dog coffee milk']


word_list = ' '.join(sentences).split()
vocab = list(set(word_list))
vocab_size = len(vocab)

word2idx = {w:i for i, w in enumerate(vocab)}
idx2word = {i:w for i, w in enumerate(vocab)}

# 3. 窗口,skip_gram, 輸入輸出
window = 2
batch_size = 8

# 生成skip_gram
skip_gram = []
for center_idx in range(len(word_list)):
    center = word2idx[word_list[center_idx]]
    for context_idx in (list(range(center_idx - window, center_idx))
                                 + list(range(center_idx + 1, center_idx + 1 + window))):
        if context_idx < 0 or context_idx > len(word_list) - 1:
            continue
        else:
            context = word2idx[word_list[context_idx]]
        skip_gram.append([center, context])

def get_data():
    input_data = []
    target_data = []
    for i in range(len(skip_gram)):
        input_data.append(np.eye(vocab_size)[skip_gram[i][0]])
        target_data.append(skip_gram[i][1])
    return input_data, target_data

input, target = get_data()
input, target = torch.Tensor(input), torch.LongTensor(target)

# 4. 形成訓(xùn)練所需的dataloader
dataset = TensorDataset(input, target)
dataloder = DataLoader(dataset, batch_size, True)

# 5. 模型實(shí)現(xiàn),優(yōu)化器,損失函數(shù)
class Word2Vec(nn.Module):
    def __init__(self):
        super(Word2Vec, self).__init__()
        self.embed_size = 2
        self.W = nn.Parameter(torch.randn(vocab_size, self.embed_size).type(torch.Tensor))
        self.V = nn.Parameter(torch.randn(self.embed_size, vocab_size).type(torch.Tensor))

    def forward(self, x):
        # x[batch_size, vocab_size] one_hot
        out = torch.mm(torch.mm(x, self.W), self.V)
        return out

model = Word2Vec().to(device)
criteriom = nn.CrossEntropyLoss()
optimizer = optim.Adam(model.parameters(), lr=1e-3)

# 6. 訓(xùn)練
for epoch in range(2000):
    for i, (input_x, target_y) in enumerate(dataloder):
        input_x = input_x.to(device)
        target_y = target_y.to(device)
        pred = model(input_x)
        loss = criteriom(pred, target_y)

        optimizer.zero_grad()
        loss.backward()
        optimizer.step()

        if (epoch + 1) % 500 == 0 and i == 0:
            print(epoch + 1, loss.item())

# 7. 通過圖像展示向量之間的關(guān)系
for i, label in enumerate(vocab):
    W, WT = model.parameters()
    x,y = float(W[i][0]), float(W[i][1])
    plt.scatter(x, y)
    plt.annotate(label, xy=(x, y), xytext=(5, 2), textcoords='offset points', ha='right', va='bottom')

plt.show()

上述就是小編為大家分享的Word2Vec論文總結(jié)和實(shí)現(xiàn)是怎樣的了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)頁標(biāo)題:Word2Vec論文總結(jié)和實(shí)現(xiàn)是怎樣的
網(wǎng)頁網(wǎng)址:http://aaarwkj.com/article46/ijhdhg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、軟件開發(fā)、云服務(wù)器自適應(yīng)網(wǎng)站、微信公眾號、網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計公司
成人福利午夜一区二区| 欧美一区二区高清不卡| 亚洲国产香蕉视频在线播放| 久久综合热这里只有精品| 亚洲一区二区中文字幕av| 久久这里有精品免费观看| 日韩免费在线观看av| 溪乱毛片一区二区三区| 日韩一二三四区免费观看| 夫妻性生活在线视频一级片| 国产精品乱码一区二区视频 | 中文字幕亚洲精品熟女少妇| 伊人色综合久久天天五月婷| 福利成人午夜国产一区| 亚洲乱码一区二区av| 欧美国产日韩一区在线观看| 国产剧情av在线资源| av资源中文字幕在线天堂| 人妻中出中文字幕一区二区| 中文字幕精品人妻在线| 三级日本午夜在线观看| 国产精品一级自拍视频| 国产精品伊人久久精品| 高清大片免费看一区二区| 日本午夜理论视频在线播放| 国产精品推荐不卡一区| 亚洲五月六月激情综合| 丰满熟女人妻中文字幕免费| 国产精品日韩伦理一区二区| 日韩一区欧美中文字幕| 国产日韩亚洲欧美精品专区 | 亚洲综合精品久久久一区| 91大神午夜在线观看| 麻豆映画传媒在线播放| 婷婷激情亚洲综合综合久久| 中文字幕乱码日韩一二三区| 中文字幕日韩高清乱码| 国产专区亚洲精品欧美| 蜜桃视频国产在线观看| 欧美日韩久久亚洲精品| 色哟哟精品丝袜一区二区|