斯坦福CS224n NLP课程【三】——高级词向量表示
复习上一节的内容
如何获取Uo与Vc的vector,通过一个大的语料库进行搜索,以便获取到相应的vector,之后通过skip-gram的公式来进行计算获取词出现的概率。下图以deep为中心词,之后可以移动窗口,中心词变为learning
skip-gram的小技巧:使用二元逻辑回归,我们保留了想要优化和最大化中心词和外围词的内积想法, 相对于遍历整个语料库实际上只取一些随机单词并指明,这些从语料库其余部分取出的随机词是不同时出现的 其中的sigmoid函数可以称之为一个想要最大化这两个词同时发生概率的对数的项
我们对从语料库中抽取的随机单词进行重采样,而不是遍历所有不同的单词 为每个窗口取k个负样本 然后最小化这些随机词出现在中心词的概率 接着从简单的均匀分布或者一元模型分布中取样观测这些词大致出现的频率然后基于频率去采样
word2vec小结
使用word2vec发生了:什么使用目标函数将相似的词语放在相邻的空间里
一些思考 为什么不能直接计数 不使用概率 可以直接计数有了两种方式:window 和word-docunment
举例:以windows获取共现矩阵
共现矩阵可能出现的问题
由于共现矩阵的稀疏性很大,所以需要降维,使用维度比较低的vector
降维的方法是:奇异值分解SVD
讲解svd的链接:https://www.cnblogs.com/endlesscoding/p/10033527.html#1688367951
SVD的python代码
通过svd最终的获取的稠密矩阵
共现矩阵 一些有用的技巧
svd应用很有效
但是也有一些问题 不能把新词或者文档整合到整个模型中
直接计数vs直接预测
结合上述方法的优点,组合出较好的方法:GloVe 可以扩展到很大的语料库 一次只更新一个计数
Glove详解链接:https://blog.****.net/u014665013/article/details/79642083
如何评估word vector
分为内部评估和外部评估
内在评价 -词向量类比
一些例子:
超参数的选择 vector 维度 window 大小 分为对称 、不对称 两种
外部评价
处于实际任务或者至少后续类型下游任务的评估
简单的进行词分类
由于相似的单词聚在一起,我们能对其分类并且在分类不同类型的词时可能看不到训练数据集,但是对于其他可能的任务不太起作用例如情绪分析,因为优良程度不同的单词向量可能会出现在类似的语境中,当任务为情感分析时,可以随机初始化单词向量
之后使用softmax函数 逻辑回归的别称 进行优化