1)为什么使用对数似然函数作为损失函数?(解释:“对数损失函数”与“极大似然估计下的对数似然函数”在本质上是等价的)
2) 自然语言处理中最重要的一个技术就是统计语言模型;
统计语言模型是用来确定一个句子的概率的概率模型,常用的包括:n-gram 模型和神经网络;
n-gram模型本质上认为下一个词的概率依赖于前面n-1个词;于是需要根据语料库,进行词频统计;考虑到特殊情况,需要利用平滑化进一步处理;
3)这里额外介绍一些机器学习的通用套路:
对特定问题建模时,先为其构造一个目标函数,然后对这个目标函数进行优化,从而求得一组最优参数,最后利用这组最优参数对应的模型来进行预测。
4)神经概率语言模型-->词向量
5)通常机器学习的输入是已知的,而在此处的神经概率语言模型中,输入的词向量也是训练得到的。
6)神经网络语言模型vs n-gram模型优势:
- 词语之间相似性可通过词向量体现
- 词向量模型自带平滑化功能,其概率计算公式可以体现(softmax函数)
- 神经网络语言模型也有其不足:里面有很多参数需要学习(隐藏层和输出层之间)
7)词向量:将自然语言以数学化的方式表示,使机器能够识别
- one-hot
- distributied representation(LSA,LDA 都可以用来得到该表示)
8)词向量和语言模型在训练完后可同时得到
9)语言模型的一个评价指标是SENNA
10)词向量在不同语言下,具有相似位置结构,可以用来进行不同语言间的翻译
11)word2vec里的两个重要模型:CBOW(连续词袋模型)和Skip-gram模型
这两个模型的作用刚好相反,CBOW是用目标单词上下文(前后n个单词)预测该目标单词;Skip-gram是用目标单词来预测上下文单词。
针对这两个模型,word2vec给出两套框架来计算:hierarchical softmax 和 negative sampling
12)神经概率语言模型与CBOW模型在结构上有若干区别,虽然整体框架相似。
13) 既然CBOW和Skip-gram 都是用来学习词向量,而且结构基本相似,除了思路相反以外,那么这两个模型在下效果上怎样?
(一种说法是cbow对低频词更有利,只要周围词训练的好,目标低频词效果也相应提升;同时cbow比skip-gram更快)
14)Negative Sampling vs Hierarchical Softmax,更加简化,大幅提高性能
负采样算法:高频词被选为负样本概率大,低频词就概率小
15)负采样为何就能替代Hierarchical?而hierarchical中huffman tree的优势又在哪里?它起到的作用是什么?(给不同词频的词以不同的概率)(hierarchical 中并没有考虑负例,只是使训练集中的样本似然度最大化)
16)word2vec的缺点是:没有考虑语序