以 word2vec 中的CBOW模型为例
CBOW模型原理通过训练上游任务达到训练embedding的效果。
我们可以通过 代码示例, 和 数据流的 shape 的变化把握该模型究竟如何工作的。
上游任务 通过句子中的上下文 预测中心词。
首先对数据进行预处理;
#Create windows
# 将向量压平 变成一个一维列表
flatten = lambda outer_list: [item for inner_list in outer_list for item in inner_list]
# 句子结构: windows_size target_word window_size
windows = flatten([list(nltk.ngrams([MASK_TOKEN]*args.window_size + sentence.split(' ') + \
[MASK_TOKEN] * args.window_size, args.window_size * 2 + 1)) \
for sentence in tqdm(cleaned_sentences)])</

本文以word2vec的CBOW模型为例,解释如何通过预处理数据和神经网络pipeline来训练词嵌入。预处理包括滑动窗口采样,不足长度用MASK_TOKEN填充。模型输入通过embedding层,其中vocab_size和embed_size是关键参数。经过数值化处理,数据被送入神经网络,线性层计算损失并进行反向传播更新权重,最终目的是获取训练好的embedding参数。
最低0.47元/天 解锁文章
851

被折叠的 条评论
为什么被折叠?



