句向量
不定长的句子用定长的向量表示,为NLP下游任务提供服务。
对于word embedding,训练完以后每个词对应一个向量,可以直观地判断embedding的好坏。
但是,对于sentence embedding,它的评测是没有ground truth的。只能将sentence embedding送入下游任务,根据在下游任务的表现来评测其质量。
换句话说,其实不存在单独的sentence embedding算法,只有嵌入在NLP系统中的sentence embedding模块。
应用
- 语义搜索:通过句向量相似性,检索语料库中与query最匹配的文本
- 文本聚类:文本转为定长向量,通过聚类模型可无监督聚集相似文本
- 文本分类:表示成句向量,直接用简单分类器即训练文本分类器
问答系统
对话系统
信息检索匹配
脉络
NLP获得句向量的方式可大致分为两种:
- 从词向量间接获取句向量
早期使用one-hot表示词,使用词袋表示文本,TF-IDF引入了单词的频率,上述方法可以归结为基于统计的词袋模型。2017年SIF算法提出用平滑倒词频获取所有词的权重,随后抹去共现信息。基于词向量获取句向量的方法,计算简便快速,却忽略了词本身的含义、词序对句子的影响。
- 直接获取句向量
2013年,Mikolov提出了word2vec模型,其中包含CBOW和skip-gram模型,掀开了词向量表达的新篇章。2014年,Mikolov又提出了Doc2Vec,借鉴word2vec模型的思想,包含PV-DM和PV-DBOW结构。2015年,基于skip-gram思想的skip-thought模型问世,模型根据输入句,预测其上下文,产生句向量副产物。2018年,quick-thought改进了skip-thought训练慢的问题,将