深入探索词嵌入:从word2vec到自然语言翻译
1. word2vec算法详解
word2vec算法在词嵌入领域具有重要地位。在其前向传播过程中,完成计算后进行反向传播并调整权重。该算法的一个显著特性是,每个词会产生两个嵌入:输入嵌入和输出嵌入。嵌入层中,每个输入词关联着K个权重(记为IWExy,其中IWE表示输入词嵌入),这里的K是词向量的大小;同样,输出层中每个输出词也关联着K个权重(记为OWExy,其中OWE表示输出词嵌入),且输出节点数量与输入词数量相同。
在最初的论文里,仅使用输入嵌入,而舍弃了输出嵌入。不过,Press和Wolf在2017年的研究表明,通过权重共享将输入和输出嵌入绑定在一起会带来益处。当输入和输出权重绑定时,同一上下文中词的嵌入之间的关系可通过数学运算来理解。对于单个输出神经元加权和的计算,是输入词嵌入与输出词嵌入的点积,训练网络使该点积接近1.0。点积为正值的条件是两个向量对应元素非零且符号相同,即向量相似。为实现训练目标,可确保同一上下文中所有词的向量彼此相似,这为算法能产生良好词嵌入提供了一定解释。
2. word2vec的矩阵形式
另一种描述word2vec机制的方式是从数学角度出发。首先创建两个矩阵,它们具有相同的维度,N行M列,其中N是词汇表中的词数,M是期望的嵌入宽度。一个矩阵用于中心词(输入词),另一个用于周围词(上下文)。
具体操作步骤如下:
1. 从文本中选择一个中心词及其周围的一些词。
2. 从输入嵌入矩阵中查找中心词的嵌入(选择一行),从输出嵌入矩阵中查找周围词的嵌入,这些是正样本。
3. 从输出嵌入矩阵中随机采样一些额外的嵌入,作为负样本。
超级会员免费看
订阅专栏 解锁全文
3434

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



