语料库
WordNet可能是最著名的象征意义的语料库,由普林斯顿大学研发。它将意思相近的单词归为一组,并且表示组与组之间的层次联系。举个例子,它认为“轿车”和“汽车”指的是同一个物体,都是属于一类交通工具。 ConceptNet是来自麻省理工学院的语义网络。它表示的关系比WordNet更广。例如,ConceptNet认为“面包”一词往往出现在“烤面包机”附近。 FrameNet是伯克利大学的一个项目,它试图用框架对语义归档。框架表示各种概念及其相关的角色 。例如:“购买”这个行为,包括卖方、买方和交易商品。计算机能够通过搜索触发框架的关键词来“理解”文字。这些框架需要手动创建,它们的触发词也需要手动关联。
马尔科夫模型(Markov Model)
根据观察信号来推测发送信号,条件概率。
马尔科夫链:随机变量的时间序列S1,S2…Sn,随机过程,任意时刻t,对应状态St都是随机的,假设任何一个状态的取值,只与前一个状态有关。
隐马尔科夫模型 (HMM)
任一时刻t的状态St是不可见的,在每个时刻t输出的一个符号Qt,,Qt只与St有关。(马尔科夫假设和独立输出假设)
最大熵模型(Maximum Entropy Model,MEM)
保留全部的不确定性,将风险降到最小,需要对一个随机事件的概率分布进行预测时,我们的预测应当满足所有的已知条件,而对未知条件不做任何假设。应用:词性标注、句法分析。
最大熵马尔科夫模型MEMM
MEMM结合了HMM和MEM,直接采用条件概率模型P(St|Qt),从而使观察输出可以用特征表示,借助最大熵框架进行特征选择。是一个有向图和无向图的混合模型,其主体还是有向图框架,MEMM的参数训练过程非常高效,缺点是存在标记偏置问题(原因:1.熵低的状态转移分布会忽略他们的观察输出,2.和HMM模型一样,参数训练过程是自左向右依据前面已经标注的标记进行的,一旦实际测试时前面的标记不能确定,MEMM往往很难处理)
贝叶斯网络
是马尔科夫链的推广,加权的有向图。
条件随机场(Conditional random fields,CRFs)
是隐马尔科夫模型的推广,一种特殊的概率图模型,与贝叶斯网络的区别-无向图。是用来标注和划分序列结构数据的概率化结构模型,状态节点集合Y,观察变量节点集合X,整个CRFs的量化墨香就是这两个集合的联合概率分布P(X,Y),根据最大熵原则找到符合所有边缘分布,同时使得熵达到最大的模型。
比较
相对于HMM,CRF的主要有点事它的条件随机性,住需要考虑当前已经出现的观测状态的特性,没有独立性的严格要求,杜宇真个序列内部的信息和外部的观测信息均可有效利用,避免了MEMM和其他针对线性序列模型的条件马尔科夫模型会出现的标识偏置问题。
CRF具有MEMM的一切优点,两者之间的区别在于,MEMM使用每一个状态的指数模型来计算给定前一个状态下当前状态的条件概率,而CRF用单个指数模型来计算给定观察序列与整个标记序列的联合概率,因此,不同状态的不同特征权重可以相互交换代替。
• HMM模型是对转移概率和表现概率直接建模,统计共现概率。
• MEMM模型是对转移概率和表现概率建立联合概率,统计时统计的是条件概率,但MEMM容易陷入局部最优,是因为MEMM只在局部做归一化。
• CRF模型中,统计了全局概率,在 做归一化时,考虑了数据在全局的分布,而不是仅仅在局部归一化,这样就解决了MEMM中的标记偏置(label bias)的问题。
文本相似性判断方法
基于向量的TF-IDF方法、隐性语义索引法LSI、基于汉明距离的相似度计算方法、基于语义的相似度计算方法,基于模型工具的相似度计算方法。
对于隐性语义索引方法需要大量的历史数据,同时需要利用上下文信息,汉明码距的文本相似性,通常是用来处理快速模糊匹配领域的,它的基本单位是一个个汉字,利用语义分析计算文本的相似度,依赖语料库进行相似性判断,对于语料库中没有的词汇不能判断其相似性,另外,语料库对于一些专有名词领域,相似度比较效果不是很明显。
LDA
基于概率的方法计算文本相似度,是一个三层的贝叶斯网络模型,通过将文本映射到主题空间,一个文章由若干主题随即组成,从而获得文本同话题之间的关系。基于矩阵分解模型实现,本质上是对矩阵进行降维操作,通过计算内积来计算相似性,因此计算语料比较费时,同时,每个词的划分是不明确的。
LSI隐语义索引法,借助奇异值分解SVD的思想,首先对所有文档进行中文分词,生成词项-文档的矩阵,该矩阵通过SVD可以转化为一个新的降维词项-文档的矩阵,任意两个文本的相似性可以通过两个向量之间的内积来计算,矩阵中的每个词代表了那个词在我文档中的权重。
LDA假设:话题是单词上的多项式分布,而文档是话题上的多项式分布。
词袋假设:文本中的单词彼此是独立可交换的。
MCMC:马尔科夫链蒙特卡洛理论,事件是一个一个发生的,下一个事件的发生只由当前发生的事决定。
MCMC方法就是构造合适的马尔科夫链进行抽样而使用蒙特卡洛方法进行积分计算。
word2vec
通过神经网络模型实现,对语料训练过程是高效的,划分明确,一个词只能出现在一个划分中,有两种模型,CBOW和Skip-gram模型,python和MLlib中实现了Skip-gram。
word2vec通过训练,可以把对文本内容的处理简化为K维向量空间中的向量运算,而向量空间上的相似度可以用来表示文本语义上的相似度。因此,word2vec输出的词向量可以被用来做很多NLP相关的工作,比如聚类、找同义词、词性分析等等
Distributed Representation词向量
传统的统计语言模型是表示语言基本单位(一般为句子)的概率分布函数, 这个概率分布也就是该语言的生成模型。一般语言模型可以使用各个词语条件概 率的形式表示:上下文无关模型,n-gram,n-pos,基于决策树的语言模型,最大熵模型,自适应语言模型。
NNLM( Neural Network Language Model)神经网络语言模型
是一个前馈或递归神经网络,输出层采用softmax函数(多分类的LR),输入变量x被映射,
采用随机梯度算法更新梯度,softmax模型使得概率取值为(0,1),因此不会出现概率为0的情况,也就是自带平滑,无需传统的n-gram模型中的那些复杂的平滑算法(平滑算法的思想就是将极大似然改为贝叶斯)。
CBOW模型
Continuous Bag-of-Words Model ,与前向NNLM类似,不同点在于CBOW去掉了最耗时的非线性隐层且所有词共享隐层,CBOW模型预测的是
从输入层到隐层所进行的操作实际就是上下文向量的加权。
CBOW有两种可选的算法:层次softmax和Negative Sampling。层次 Softmax 算法结合了 Huffman 编码,每个词 w 都可以从树的根结点沿着唯一一条路径被访问到。
Skip-Gram模型
Skip-Gram 模型的图与 CBOW 正好方向相反.从图中看应该 Skip-Gram 应该预测概率
与 CBOW 类似,Skip-Gram 也有两种可选的算法:层次 Softmax 和 Negative Sampling。
Mikolov 关于超参数的建议如下:
1. 模型架构:Skip-gram 更慢一些,但是对低频词效果更好;对应的 CBOW
则速度更快一些。
2. 训练算法:层次 softmax 对低频词效果更好;对应的 negative sampling 对
高频词效果更好,向量维度较低时效果更好。
3. 高频词亚采样:对大数据集合可以同时提高精度和速度,sample 的取值
在 1e-3 到 1e-5 之间效果最佳。
4. 词向量的维度:一般维度越高越好,但并不总是这样。
5. 窗口大小:Skip-gram一般10左右,CBOW一般5左右。