如何评估词向量化的优劣?
构造词向量的方法有很多,如何评估词向量的优劣?
随着深度学习的发展及其在工程上的落地,Embedding技术便成为模型的标准组件,那么Embedding的原理是什么?本文老剖析一下Embedding的原理。
深度学习已经成为 AI 的标配技术,在 NLP 领域更是大放异彩。而NLP中分类任务是应用上最基础的任务,具体包括新闻标题分类、情感倾向性分析、情绪识别、意图识别、关系分类、事件类型判断、语义相似识别等等。本文总结一下文本分类中的一些Tricks。
在SGD中,我们提到过每次选取批量样本计算梯度和实际的梯度存在误差,这个梯度误差的直观体现是损失曲线呈现震荡下行。于是,为了缓解这个SGD中梯度误差我们可以通过最近一段时间内的平均梯度来代替当前时刻的梯度,进而缓解梯度带来的随机性。文本就从这个方向着手解决问题。
从机器学习角度来看,一个完整的任务包括模型、评估、优化,本系列谈的就是优化。机器学习模型的训练其实就是参数学习,通常是通过一定的优化算法来寻找一组可以最小化结构风险的参数。而最常见的优化算法是梯度下降算法(SGD),基于SGD可以引申出很大的优化算法。本系列打算探讨优化算法的改进与变化逻辑。
深度学习(机器学习)算法 = 模型表征 + 模型评估 + 优化算法,而基本上所有的机器学习算法都在损失函数下转化为某种形式的优化问题,可以说模型训练就是一个数值优化过程。
词法分析、句法分析和语义分析是NLP的三大任务系。其中词法分析包括分词(word tokenization)、词性标注和命名实体识别,今天这里梳理中文分词(chinese word segment,CWS)的思路和方法。我们知道,在英语中,单词之间的自然分界符是空格,这样便于切分。然而,中文中词与词之间并没有这样天然的特点,因此,对文本以词汇粒度进行划分,中文比英文要复杂得多困难很多。
更新:更新或添加部分分词算法和一些补充链接。
在没有词向量之前,计算机对文本的理解局限在字符编码(如 ASCII、UTF8),然而这类编码并不是数字,不具备物理意义或数学意义,这意味着不能进行浮点数相关的操作。词向量出现后,计算机突破原有局限,可以进行数值计算,并引入统计学习方法,可以开始“模仿”人类处理文字、语言的能力。
最近在学习NLP的时候发现,语义匹配是一个相对有趣的子领域。表面上看是计算两个句子的相似度,但是在具体的场景中,可以完成排序、搜索等工程性很重的功能。这里梳理一下语义匹配的发展。后期有机会在深入这个领域。
在深度学习中,模型的权重可以看作是随机向量或随机矩阵,在模型训练前往往需要参数初始化。参数初始化方法有很多,包括固定值初始化、随机初始化、预训练初始化。对于大型模型来说,好的初始化能够帮助模型收敛;差的初始化可能让模型效果变差,甚至根本无法收敛。