zoukankan      html  css  js  c++  java
  • word2vec原理

    (原创)

    word2vec是将单词转为向量,并为后续应用机器学习的算法做准备。 

    经典的模型有两种,skip-gramcbow

    其中,skip-gram是给定输入单词来预测上下文,而cbow相反,是给定上下文来预测输入单词。下面主要介绍skip-gram:

    1.skip-gram训练词对

    skip-gram首先设定所谓一个值( skip_window),作为一个单词选取它的上下文的单词的数量,

    这些词对,作为训练数据,如 “the quick brown fox jumps over lazy dog”,对于quick,有

    (quick,the),(quick,brown),(quick,fox)三个词对,作为quick的训练标签。

    2.word嵌入到k维空间,k维向量化

    接下来是对语料中单词的向量化处理,首先将语料中不重复的单词都拿出来成为词汇表,

    然后对其进行one-hot编码,如10000个单词,其中a编码为 [1,0,0,0....],这个时候单词已经转为了向量,但是只是这样并不能看出任意两词之间的相关性,而且词汇表如果大的话,导致维度灾难。

    Hinton提出了映射到K维向量的思想,基于这个思想用一个简单的多分类的神经网络来训练得到这些K为向量。

    输入层是n个one-hot编码的词,输出也是one-hot编码的词(对skipgram的词对进行训练),

    隐含层为 k个神经元节点,含有n*k的权重矩阵,经过这层将词向量转换为k维向量,

    再经softmax输出为n维的预测概率向量,优化残差函数,训练权重系数。

    最终训练结束后,这个n*k的权重矩阵的每一行就作为该单词的k维向量了。

  • 相关阅读:
    回溯、递归、DFS方法
    3-11日学习记录
    文本清洗总结
    归并排序学习
    3-9日学习笔记
    P3182 [HAOI2016]放棋子 错排问题
    P2880 [USACO07JAN]平衡的阵容Balanced Lineup 线段树 树状数组
    P3469 [POI2008]BLO-Blockade 强连通
    P2756 飞行员配对方案问题 网络流 二分图匹配
    P1823 [COI2007] Patrik 音乐会的等待 单调栈
  • 原文地址:https://www.cnblogs.com/randomstring/p/15707341.html
Copyright © 2011-2022 走看看