word representation 词汇表征
如果用one-hot表示词汇集中的word,只能存储这个单词在这个词表中的索引,无法表示单词的语义,更无法计算不同单词之间的相似度/关联度。
如果选取n个features, 每个feature 再用数据大小表征当前单词和这个feature的关联度,可以更好的表征单词语义和计算单词之间的相似度,从而进行词嵌入,进一步进行猜词计算

引入坐标系的概念,如果n个特征代表n 个维度,比如300个维度,那么每个单词就像嵌入在这个300维空间中, 会自然的发现类似的或者同类的单词会聚集在一起
使用t-sne 算法通过降维到2维可以实现词分布的可视化

词嵌入应用
实体识别 ==> 迁移学习
因为现在每个单词是通过词嵌入表征的,所以如果对于已经识别的实体,对于现在要识别的实体,只需要对比特征向量的相似度,就可以进行识别
另外,对于词汇表中未出现的单词,通过进行特征向量转换后,自然可以加入词汇表中,从而可以直接进行相似度计算
词嵌入方便进行迁移学习,尤其是大批量词嵌入模型应用与小批量垂类领域时,需要重新进行词嵌入的新词是少数,可以直接使用词嵌入模型中已存在的大多数语义逻辑,从而进行迁移学习

词嵌入迁移过程
词嵌入word embedding 和 之前的人脸识别的 face encoding 思路一致,可以认为是意思一样的术语
更多: 文本摘要(text summarization)文本解析(co-reference resolution)解析( parsing)
类比推理
使用余弦相似度算法或者其他可以计算相似度的算法,可以对两个已知单词进行向量计算,得到向量关系,从而推理出问题中单词在相同向量,即类比关系中对应的单词
比如 Q: man 对应 woman 那么 king 对应 ?
a: eman - e_woman = e_king - e?

e? = e_king - e_man + e_woman
如果向量 e? 和 e_king - e_man + e_woman 相似度值越高,即词语语义越相似,越接近正确答案
使用余弦计算相似度
两个向量夹角角度的余弦值,夹角为90度时,余弦值为0, 夹角为0度时,余弦值为1, 夹角为180度时,余弦值为-1,相反方向

词嵌入矩阵
所有词汇表中的单词进行特征向量表示后,组成的矩阵,如果跟原来one-shot表示法中某个单词w的向量进行点积运算可以直接得到该单词w 的特征向量表示
E · O_w = e_w
使用word embedding 进行模型训练
整体步骤都是将样本数据(一个句子)中单词分为目标值和输入值后,形成监督学习模型,然后进行训练
- 将目标值转成特征向量,摊平所有的向量值
- 引入softmax 激活函数,计算目标值出现的概率,取概率最大的值与目标值对比
- 计算损失函数,重新训练
词嵌入矩阵的训练过程
优化
固定输入单词数量,如上例,输入值为推测词前面的所有6个单词,300维的特征摊平后,输入值为300 * 6 = 1800维
如果固定单词数量为4,输入单词数量减少,那么特征向量的维度也会减少,模型输入值减少,从而可以减少训练时间
固定输入单词数着窗口,可以方便的处理任意长度的句子,因为这样模型的输入结构就是固定的尝试使用不同的上下文选取窗口大小进行训练
最近4个
左右各4个
最近1个
附件的一个使用 Word2Vec 中的 Skip-grams 算法进行训练
Skip-grams 先固定输入上下文,在根据不同窗口规则选取目标值,生成监督学习数据对


softmax 分类 的问题就是要全量计算所有的概率,然后取概率最大的值,这样计算量非常大
负采样
选取一对正确的目标值和上下文,作为输入, 输出为正确的flag 1, 作为正采样样本
然后随机生成k个负采样样本,负采样样本输入值中的上下文和正采样样本一致, 目标值随机选取,输出为错误的flage 0
正采样样本和负采样样本一起组成监督学习样本对 进行训练
这样做的好处,相当于原来要判断单词集合中所有单词是不是正确答案,错误答案是远多于正确答案的,现在只要判断k个单词生成的错误答案,避免了每次判断所有的单词,从而大大减少计算量
负采样单词的获取为了避免取到极高频词或者极低频词,一般用下面的概率公式判断当前单词概率,决定是否要采样,f(w) 为单词出现频率
情感分类
将评论中单词进行特征向量转换后进行均值计算,最后对计算结果进行softmax 分类
但这样没有考虑单词之间的语序和重复出现的频率问题,会导致预测结果不准确
可以使用RNN 进行训练, 解决单词语序引起的语义失真问题
语义纠偏
