分类问题
假设有训练集样本
传统机器学习/统计方法
假设固定,训练一个
softmax/logistic regression
去更新权重。
通过softmax
计算后验概率:
并采用交叉熵损失进行优化(等同于最小化类别的负对数概率),交叉熵损失函数为:
神经网络方法
解决非线性问题和适用于更复杂场景
NLP中的分类方法
同时学习权重和
word vectors
命名实体识别(NER)
通常包括两部分:1)实体边界识别;2) 确定实体类别(人名、地名、机构名或其他)
目的:找到并对文本中的命名实体进行分类,主要包含人名、地名、机构名等。
难点:实体边界难找;很难保证是否是实体;很难知道某些未见过的实体的类别;命名实体可能有多个类别
window classification
思想:通过邻域的context window
对word
进行分类
做法:将window
中的vector
进行平均,再进行分类
问题:会丢失位置信息
window classifier: softmax
做法:将window
中所有的vector
进行concat
,再对这个新的vector
进行分类判断,如果center word
为某个类型的实体词(如地点),则希望对应有较高的分数。
具体而言,对于窗口大小为,concat
的新的vector
如下:
使用神经网络层计算得到非归一化的得分,结合softmax
并配合交叉熵损失函数进行优化。假设表示输入词向量,表示对应标签,假设有个类别,则对应类别为的概率为:
则交叉熵损失为:
此时通过反向传播求导更新参数和word vector
。
使用单层神经网络
单层神经网络包含一个线性层和一个非线性激活函数
再使用
softmax
计算最终概率或者使用非归一化的得分:对于
softmax
:对于非归一化得分:
接下来进行损失函数计算:
对于
softmax
:可使用交叉熵对于非归一化得分:
基本思想是让“真实”的窗口得分值变大,而语料库中其他窗口的得分值变小。对于之前的例子,假设表示
center word
为location
的得分,为center word
不是location
的得分,希望最小化,即希望的得分高于,但又不希望两个得分差距过大,故通常设定一个阈值,当时才有损失。max margin loss
公式如下:该公式不可微分,但为连续函数,可使用
SGD
优化器。