自然语言处理——使用深度学习解决NLP问题
传统方法的局限性:
一:数据稀疏性:
语言是离散的符号系统,每个字符,单词都是离散型随机变量。而机器学习模型只接受向量。所以为了将文本转换成向量,通常要将离散符号按照其索引编码为One-hot向量。
然而近义词之间并不能通过这种方式编码成相似的向量。
将任意词语表示为固定长度为n的稠密向量,并且稠密向量的维度远小于词表体积,可以好好地解决相似性问题,并且由于向量的长度变短,能显著降低模型参数的数量。
这种思路被称为“词向量”。
二:人工特征工程的不足:
高级NLP任务需要有复杂的特征。然而传统的自然语言处理使用的是手工制定的特征模板。比如中文分词:使用的是上一个字符和当前字符的组合。命名实体识别:前后两个单词与当前单词经常组合。这样的特征模板会带来数据稀疏的困扰。即便有前人对特征工程的研究工作。他们使得某些数据集有相应的特征模板,但不适合所有领域。
三:误差传播问题:
流水线式的作业方式存在严重的误差传播问题,前一个模块产生的错误被输入到下一个模块中会产生更大的错误。
深度学习入门:
可以自动学习事物的向量表示(vectorial representation)的模型。在深度学习中,相对于传统机器学习,特征模版被多层感知机替代。
多层感知机通过权重矩阵对样本的上一个特征进行线性变换,通过非线性函数对特征强度进行激活。通常将输出层的特征输入到softmax函数得到一个后验概率分布。
然后将该分布与经验分布的交叉熵作为损失函数。由于该损失函数为非凸函数,一般采用梯度下降法进行优化。
(更多详见Pattern recognition and machine learning)
后验概率分布与先验概率分布:https://blog.csdn.net/qq_40597317/article/details/82388164