自然语言处理中的深度学习:从词嵌入到循环神经网络
1. 引言
在自然语言处理领域,传统基于解析和语义分析的系统在许多任务上取得了一定成功,但受限于真实文本中语言现象的无尽复杂性。鉴于大量机器可读文本的存在,基于数据驱动的机器学习方法或许更有效,下面我们将深入探讨深度学习在自然语言处理中的应用。
2. 词嵌入(Word Embeddings)
在神经网络中处理语言时,我们需要一种合适的方式将单词编码为输入向量。传统的独热编码(one - hot vector)虽简单,但无法捕捉单词间的相似性。
根据语言学家John R. Firth的观点“观其伴,知其词”,我们可以用单词所在短语的n - gram计数向量来表示单词。然而,原始的n - gram计数很繁琐,例如一个包含100,000个单词的词汇表,5 - gram的数量多达$10^{25}$个。
为了更好地泛化,我们可以将其降维为一个较小的密集向量,即词嵌入(Word embedding)。词嵌入是自动从数据中学习得到的低维向量。例如:
- “aardvark” = [-0.7, +0.2, -3.2, …]
- “abacus” = [+0.5, +0.9, -1.3, …]
- “zyzzyva” = [-0.1, +0.8, -0.4, …]
在特征空间中,相似的单词会有相似的向量。而且,词嵌入向量还有额外的特性,比如通过向量运算可以解决一些单词类比问题。例如,对于“Athens is to Greece as Oslo is to [what]?”,设Athens的向量为A,Greece的向量为B,Oslo的向量为C,未知单词的向量
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



