引领先锋|基于深度学习的文本数据特征提取方法之Word2Vec(一)

作者:Dipanjan (DJ) Sarkar
编译:ronghuaiyang
导读介绍了基于深度学习的文本数据特征提取方法 , 一步一步动手代码实践 , 非常清楚 , 包括了Word2Vec , 后面还会有Glove和FastText 。
引领先锋|基于深度学习的文本数据特征提取方法之Word2Vec(一)介绍
处理非结构化文本数据非常困难 , 尤其是试图构建一个可以像人类一样解释和理解自由流动的自然语言的智能系统时 。 你需要能够处理和转换嘈杂的、非结构化的文本数据 , 并将其转换为可由任何机器学习算法理解的结构化、向量化格式 。 自然语言处理、机器学习或深度学习都属于人工智能的范畴 , 它们都是该行业的有效工具 。 根据我之前的文章 , 需要记住的一点是 , 任何机器学习算法都是基于统计、数学和优化原理的 。 因此 , 他们没有足够的智能来开始处理原始的、原生的文本 。 上一篇文章中 , 我们介绍了一些从文本数据中提取有意义的特征的传统的策略 。 在本文中 , 我们将研究更高级的特征工程策略 , 这些策略通常利用深度学习模型 。 更具体地说 , 我们将介绍Word2Vec、GloVe和FastText模型 。
动机
我们已经多次讨论过 , 特征工程是创建性能更好的机器学习模型的秘诀 。 请始终记住 , 即使出现了自动化特征工程 , 你仍然需要理解应用这些技术背后的核心概念 。 否则它们就只是黑盒子 , 你就不知道如何对你试图解决的问题进行调整 。
传统模型的缺点
传统的(基于计数的)文本数据特征工程策略包括了一大类的模型 , 这些模型通常称为词袋模型 。 包括词频、TF-IDF(词频逆文档频率)、N-grams等等 。 虽然它们是从文本中提取特征的有效方法 , 但是由于模型本身就是一袋非结构化的单词 , 我们丢失了额外的信息 , 比如每个文本文档中围绕邻近单词的语义、结构、序列和上下文 。 这为我们探索更复杂的模型提供了足够的动力 , 这些模型可以捕捉这些信息 , 并为我们提供单词的向量特征表示 , 即通常所说的嵌入 。
词嵌入的需求
虽然这有一定的道理 , 但是我们到底是哪来的动力去学习和构建这些词嵌呢?在语音或图像识别系统中 , 所有的信息都已经以丰富密集的特征向量的形式存在于高维数据集中 , 如声谱和图像像素强度 。 然而 , 当涉及到原始文本数据时 , 尤其是基于计数的模型(如词袋) , 我们处理的是单独的单词 , 这些单词可能有自己的标识符 , 但是不能捕获单词之间的语义关系 。 这就导致了文本数据中的巨大稀疏的词向量 , 因此 , 如果我们没有足够的数据 , 我们可能会得到糟糕的模型 , 甚至由于维数诅咒而过度拟合 。
引领先锋|基于深度学习的文本数据特征提取方法之Word2Vec(一)音频 , 图像和文本的特征表示的对比
为了克服词袋模型没有语义以及特征稀疏的缺点 , 我们需要利用向量空间模型(VMS) , 这样 , 我们就可以把单词嵌入到基于语义和上下文的连续向量空间中 。 事实上 , 语义分布领域的分布假设告诉我们 , 在相同上下文中出现的单词语义上是相似的 , 具有相似的意义 。 简单地说 , “一个词的特征取决于和它一起出现的词” 。 有一篇著名的论文详细讨论了这些各种类型的语义词向量 , 这个文章是‘Don’t count, predict! A systematic comparison of context-counting vs. context-predicting semantic vectors’ 。 这篇文章我们不会深入讨论 , 但简而言之 , 上下文词向量有两种主要的方法 。 基于计数的方法 , 比如Latent Semantic Analysis (LSA)可以用于计算某些词和它的相邻的词一起出现频率的统计度量 , 然后基于这些度量构建dense的向量 。 基于神经网络的语言模型的预测方法试着从相邻的单词中预测单词 , 观察语料库中的单词序列 , 在这个过程中 , 它学习分布表示 , 给我们dense的词嵌入 。 我们将在本文中重点介绍这些预测方法 。


推荐阅读