斯坦福CS224n NLP课程【三】——高级词向量表示

复习上一节的内容

如何获取Uo与Vc的vector,通过一个大的语料库进行搜索,以便获取到相应的vector,之后通过skip-gram的公式来进行计算获取词出现的概率。下图以deep为中心词,之后可以移动窗口,中心词变为learning

斯坦福CS224n NLP课程【三】——高级词向量表示

 skip-gram的小技巧:使用二元逻辑回归,我们保留了想要优化和最大化中心词和外围词的内积想法, 相对于遍历整个语料库实际上只取一些随机单词并指明,这些从语料库其余部分取出的随机词是不同时出现的 其中的sigmoid函数可以称之为一个想要最大化这两个词同时发生概率的对数的项

斯坦福CS224n NLP课程【三】——高级词向量表示

 我们对从语料库中抽取的随机单词进行重采样,而不是遍历所有不同的单词 为每个窗口取k个负样本 然后最小化这些随机词出现在中心词的概率 接着从简单的均匀分布或者一元模型分布中取样观测这些词大致出现的频率然后基于频率去采样

斯坦福CS224n NLP课程【三】——高级词向量表示

 斯坦福CS224n NLP课程【三】——高级词向量表示

 word2vec小结 

使用word2vec发生了:什么使用目标函数将相似的词语放在相邻的空间里

斯坦福CS224n NLP课程【三】——高级词向量表示

 一些思考 为什么不能直接计数 不使用概率  可以直接计数有了两种方式:window 和word-docunment

斯坦福CS224n NLP课程【三】——高级词向量表示

 斯坦福CS224n NLP课程【三】——高级词向量表示

 举例:以windows获取共现矩阵

斯坦福CS224n NLP课程【三】——高级词向量表示

 斯坦福CS224n NLP课程【三】——高级词向量表示

 共现矩阵可能出现的问题

斯坦福CS224n NLP课程【三】——高级词向量表示

 由于共现矩阵的稀疏性很大,所以需要降维,使用维度比较低的vector

斯坦福CS224n NLP课程【三】——高级词向量表示

 降维的方法是:奇异值分解SVD

讲解svd的链接:https://www.cnblogs.com/endlesscoding/p/10033527.html#1688367951

斯坦福CS224n NLP课程【三】——高级词向量表示

 

 SVD的python代码

斯坦福CS224n NLP课程【三】——高级词向量表示

 通过svd最终的获取的稠密矩阵

斯坦福CS224n NLP课程【三】——高级词向量表示

 共现矩阵 一些有用的技巧

斯坦福CS224n NLP课程【三】——高级词向量表示

 svd应用很有效

斯坦福CS224n NLP课程【三】——高级词向量表示

 但是也有一些问题 不能把新词或者文档整合到整个模型中

斯坦福CS224n NLP课程【三】——高级词向量表示

 直接计数vs直接预测

斯坦福CS224n NLP课程【三】——高级词向量表示

 结合上述方法的优点,组合出较好的方法:GloVe 可以扩展到很大的语料库 一次只更新一个计数

Glove详解链接:https://blog.csdn.net/u014665013/article/details/79642083

斯坦福CS224n NLP课程【三】——高级词向量表示

 斯坦福CS224n NLP课程【三】——高级词向量表示

 如何评估word vector

分为内部评估和外部评估

斯坦福CS224n NLP课程【三】——高级词向量表示

 内在评价 -词向量类比

斯坦福CS224n NLP课程【三】——高级词向量表示

 斯坦福CS224n NLP课程【三】——高级词向量表示

 一些例子:

斯坦福CS224n NLP课程【三】——高级词向量表示

 超参数的选择 vector 维度 window 大小 分为对称 、不对称 两种

斯坦福CS224n NLP课程【三】——高级词向量表示

 外部评价

处于实际任务或者至少后续类型下游任务的评估

斯坦福CS224n NLP课程【三】——高级词向量表示

 简单的进行词分类

由于相似的单词聚在一起,我们能对其分类并且在分类不同类型的词时可能看不到训练数据集,但是对于其他可能的任务不太起作用例如情绪分析,因为优良程度不同的单词向量可能会出现在类似的语境中,当任务为情感分析时,可以随机初始化单词向量

斯坦福CS224n NLP课程【三】——高级词向量表示

 之后使用softmax函数 逻辑回归的别称 进行优化

斯坦福CS224n NLP课程【三】——高级词向量表示

 斯坦福CS224n NLP课程【三】——高级词向量表示