【python、nlp】Word2vec的CBOW模式(文本张量表示)

2024-01-09 15:04:05

给定一段用于训练的文本语料,再选定某段长度(窗口)作为研究对象,使用上下文词汇预测目标词汇。

假设我们给定的训练语料只有一句话:Hope?can?set?you?free(愿你自由成长),窗口大小为3,因此模型的第一个训练样本来自Hope?can?set,因为是CBOW模式,所以将使用Hope和set作为输入,can作为输出,在模型训练时,?Hope,can,set等词汇都使用它们的one-hot?编码,如图所示:每个one-hot编码的单词与各自的变换矩阵(即参数矩阵3x5,这里的3是指最后得到的词向量维度)相乘之后再相加,得到上下文表示矩阵(3x1)。

接着,将上下文表示矩阵与变换矩阵(参数矩阵5x3,所有的变换矩阵共享参数)相乘,得到5x1的结果矩阵,它将与我们真正的目标矩阵即can的one-hot编码矩阵(5x1)进行损失的计算,然后更新网络参数完成一次模型迭代。

最后窗口按序向后移动◇重新更新参数◇直到所有语料被遍历完成,得到最终的变换矩阵(3x5),这个变换矩阵与每个词汇的one-hot编码(5x1)相乘,得到的3x1的矩阵就是该词汇的word2vec张量表示.

文章来源:https://blog.csdn.net/David_Hzy/article/details/135478734
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。