NLP 中不同词嵌入技术的比较 - KDnuggets


如果计算机可以开始理解莎士比亚,这不是令人难以置信吗?还是像 JK 罗琳那样写小说?这在几年前是不可想象的。自然语言处理(NLP) 和自然语言生成(NLG) 的最新进展大大提高了计算机更好地理解基于文本的内容的能力。
为了理解和生成文本,NLP 驱动的系统必须能够识别单词、语法和大量语言细微差别。对于计算机来说,这说起来容易做起来难,因为它们只能理解数字。
为了弥补这一差距,NLP 专家开发了一种称为词嵌入的技术,可将词转换为其数值表示。转换后,NLP 算法可以轻松消化这些学习到的表示以处理文本信息。
词嵌入将词映射为实值数值向量。它通过标记序列(或句子)中的每个单词并将它们转换为向量空间来实现。词嵌入旨在捕获文本序列中词的语义。它为具有相似含义的单词分配相似的数字表示。
让我们来看看 NLP 中一些最有前途的词嵌入技术。
 
1. TF-IDF——词频-逆文档频率
TF-IDF 是一种机器学习 (ML) 算法,它基于查找文本中单词相关性的统计度量。文本可以是文档或各种文档(语料库)的形式。它是两个指标的组合:词频 (TF) 和逆文档频率 (IDF)。
TF-IDF 算法用于解决更简单的 ML 和 NLP 问题。它更适合用于信息检索、关键字提取、停用词(如“a”、“the”、“are”、“is”)去除和基本文本分析。它不能有效地捕捉序列中单词的语义。
 

2. Word2Vec——捕获语义信息
Word2Vec 由 Tomas Mikolov 和谷歌的其他研究人员于 2013 年开发,是一种用于解决高级 NLP 问题的词嵌入技术。它可以迭代大量文本以学习单词之间的关联或依赖关系。
Word2Vec 通过使用余弦相似度度量找到单词之间的相似度。如果余弦角为 1,则表示单词重叠。如果余弦角为 90,则表示单词是独立的或没有上下文相似性。它为相似的词分配相似的向量表示。
Word2Vec 提供两种基于神经网络的变体:Continuous Bag of Words (CBOW) 和 Skip-gram。在CBOW中,神经网络模型以各种词作为输入,预测与输入词的上下文密切相关的目标词。另一方面,Skip-gram 架构将一个词作为输入并预测其密切相关的上下文词。
CBOW 速度快,可以为频繁词找到更好的数值表示,而 Skip Gram 可以有效地表示稀有词。Word2Vec 模型擅长捕捉单词之间的语义关系。例如,一个国家与其首都的关系,就像巴黎是法国的首都,柏林是德国的首都。它最适合执行语义分析,在推荐系统和知识发现中都有应用。
 
3. GloVe——词表示的全局向量
GloVe 由 Jeffery Pennington 和斯坦福大学的其他研究人员开发,扩展了 Word2Vec 的工作,通过计算全局词-词共现矩阵来捕获文本语料库中的全局上下文信息。
Word2Vec 仅捕获单词的本地上下文。在训练期间,它只考虑相邻的词来捕捉上下文。GloVe 会考虑整个语料库并创建一个大型矩阵,该矩阵可以捕获语料库中单词的共现情况。
GloVe 结合了二词向量学习方法的优点:矩阵分解(如潜在语义分析(LSA))和局部上下文窗口方法(如 Skip-gram)。GloVe 技术具有更简单的最小二乘成本或误差函数,可降低训练模型的计算成本。由此产生的词嵌入是不同的并且得到了改进。
GloVe 在词类比和命名实体识别问题上的表现要好得多。它在某些任务中优于 Word2Vec,而在其他任务中则与之竞争。然而,这两种技术都擅长捕捉语料库中的语义信息。
 
4. BERT—— 来自 Transformer 的双向编码器表示
BERT 于 2019 年由 Google推出,属于一类基于 NLP 的语言算法,称为Transformers。BERT 是一个大规模的预训练深度双向编码器变压器模型,有两种变体。BERT-Base 有 1.1 亿个参数,BERT-Large 有 3.4 亿个参数。
为了生成词嵌入,BERT 依赖于注意力机制。它生成高质量的上下文感知或上下文化的词嵌入。在训练过程中,嵌入通过通过每个 BERT 编码器层进行细化。对于每个单词,注意力机制根据左侧的单词和右侧的单词捕获单词关联。词嵌入也进行了位置编码,以跟踪句子中每个词的模式或位置。
BERT 比上面讨论的任何技术都更先进。它创建了更好的词嵌入,因为该模型是在大量词库和维基百科数据集上进行预训练的。BERT 可以通过微调特定任务数据集上的嵌入来改进。
不过,BERT 最适合语言翻译任务。它已针对许多其他应用程序和领域进行了优化。