一篇很好的参考文章:深度学习算法在自然语言处理中的一些心得

简介: 对于初涉深度学习的初学者,本文作者根据自己的学习经验,分享了自己的学习笔记,是一份很好的关于深度学习的学习参考

更多深度文章,请关注: https://yq.aliyun.com/cloud


作者简介:Frank ChungHTC Research Engineering Blog编辑,专注于各种计算机技术的研究和探索。个人主页:https://medium.com/@frank_chung

以下为译文:


深度学习逐渐在NLP(自然语言处理)上发挥重要作用。 在此我就NLP问题的一些技术演变做一些简单阐述。


N元语法模型

连续文本序列to be or not to be可以通过以下方式来建模:

一元语法(单个词): to,be,or,not,to,be

二元语法(两个词): to be, be or, or not, not to, to be

三元语法(三个词): to be or, be or not, or not to, not to be

N元语法模型可以解决下一个词预测的问题,例如,如果前面的词是“to be or not to”,6元语法模型可以预测下一个词的可能是“be”:

P(be|to be or not to) = C(to be or not to be) / C(to be or not to)

词频-逆向文件频率(TF-IDF)

TF-IDF表示了单词的重要性。

一个单词的词频(TF)是该单词在文档中出现的次数:

TF(“cow” in document) = C(“cow” in document)/C(all words in document)


一个单词的文件频率是指包含这个单词的文件在所有文件中占的数量

DF(“cow”) = log(C(all documents)/C(documents contain “cow”))


例如,如果文档1中的cow出现4次,并且文档1包含100个词,则文档1上的单词cow的词语频率为0.04 如果cow存在于100个文档中并且总共有10000个文档,则cow的文档频率为log10000/100= 2。因此,TF-IDF0.04 * 2 = 0.08

潜在语义分析(LSA

LSA应用TF-IDF来计算词和文档之间的关系。

09361bd04c0ff0d3badfc90af1424d3e1c2833f4

m个单词和n个文档


令X是一个矩阵,其中元素(i,j)意味着文档j中的词i的TF-IDF。 然后我们可以通过矩阵乘积𝑿𝑿ᵀ获得两个词的相关性,并通过矩阵积获得两个文档的相关性。


词向量

通过神经网络,出现了一种共享矩阵C的概念,该矩阵C可以将每个词投影到特征向量中,并且将该向量作为神经网络的输入来训练主要任务。

81458a722cec520993ec6000c97589b129ebad85


假设特征空间的维数为M,词汇量为V,矩阵C为| V | * M,C(Wt)的映射结果为1 * M向量

假设特征空间的维度为M,词汇为V,则投影C| V | * M矩阵。 输入层包含N元语法模型中的N-1个之前的单词,其由1| V |编码表示。 输出层由| V |组成词汇表中单词的概率。


词嵌入

Word2vec是一个两层神经网络,可以提取一个词的特征向量,这被称为“词嵌入”。word2vec应用CBOW或Skip-gram网络来训练投影矩阵,而不是通过训练预测下一个单词的方式。

fe7538310bd11f19ecb4ce0751a9c0c16c1cbb42

连续单词包(CBOW)通过将周围单词输入到输入层来预测中心词的方式来训练投影矩阵。 Skip-gram网络则是通过应用中心词来预测其周围词来训练投影矩阵。 两种方式都可以用来训练用于词嵌入提取的投影矩阵。

词相似

5d7b68ba887334945e934bf9f2b1ab697da86ba2

与'Sweden'相关的单词

为了找出目标词的相关词,我们可以计算词汇表中所有其他词的余弦相似性(距离)。

bae4ad6a1df11408ec2cf4e590c50f08dd219eab

向量偏移

00dd4e5e6a9d4cdea769ecebeb1e357861437e08

给出China->Beijing, 找出Japan->?


给定单词a,绑定c的单词向量,如果ab = cd这样的关系,我们可以通过V𝚍=V𝐜+V𝐛-V𝐚)找到结果d 然后在词汇表中找出的词向量具有V𝐝的最小余弦距离的单词。


33410d54ee56ae8368f7ef28530b69e3dd24ce94

通过向量偏移找到的相关单词



递归神经网络

无论CBOW还是Skip-gram模型都只考虑相邻的N个词来训练神经网络。因此如果N变得非常大,则这两种方式都可能行不通。 为了克服这个缺点,递归神经网络(RNN)应运而生:

fe4ee56cc6d1a0edc66dbe503e88a82573a0bbb6

传统神经网络


考虑上述用于训练NLP问题的传统神经网络,每个词被输入到用于词向量的投影矩阵W,并且由隐藏层R转换为输出S.在这种情况下,R的输入大小固定为5 * M(假设词向量中有M个特征)。 如果N被改变为6,则R不能被扩展。

fdb247e2d0aa4442472eb9d3b02176565322ebbf

递归神经网络


在递归神经网络中,代替隐藏层R,我们一次只训练两个向量与隐藏层A,并递归地合并两个词。 这样A的输入大小始终为2 * M


循环神经网络

由于递归神经网络不容易实现,因此就提出了循环神经网络(RNN)来处理相同的问题。

a034dc82d17c38e8b4c812cd61c73183ace524ed

循环神经网络的输入只有一个词,并将隐藏层的输出重定向到输入的一部分。 整个输入大小为| V | + MM是前面单词的特征数,V是词汇表的大小)。

4e3cf39900a11cf15ec62a276be24fbf0594e636

上述示例是用于下一字符预测的示例。 h”被反馈到隐藏层以获得其词向量,并且该向量被反馈到具有“e”的输入的一部分。 在训练所有词之后,可以训练隐藏层(投影矩阵)的参数。


案例学习

1eb4ec3a4d016dcfc7a4b8d7698435206ba05b6e

表1. 不同方法训练的词向量的句法规则


4dcc5ef6db5d8012001ee8ebae52add34caeea73

表2. 词向量的不同的训练方法的语义规律


1和表2表明:1.无论在语法或语义实验中,来自RNN的单词向量都比LSA更准确。2. 如果在应用RNN时增加单词向量的维度,则准确度会因此增加。

8d805e5e17aafceb6d7c8c73157a0bd1c6933dd1

表3 微软的完成句子挑战

3表明,如果使ship-gram网络将投影矩阵预训练到已存在的RNN,则测试精度会变得更好。

0252c5e43b980b1c2efbe5833a2f5093037aa842

表4. CBOW与Skip-gram的对比


表4表明Skip-gram训练结果比CBOW的好。


引用

SemEval: 词之间的语义关系。

Microsoft sentence completion challenge: 填写一个句子中错过的单词

数十款阿里云产品限时折扣中,赶紧点击领劵开始云上实践吧!


本文由北邮@爱可可-爱生活 老师推荐,阿里云云栖社区组织翻译。


文章原标题《Notes for deep learning on NLP》,作者:Frank Chung,译者:friday012

文章为简译,更为详细的内容,请查看原文

相关文章
|
10小时前
|
机器学习/深度学习 算法 调度
深度学习|改进两阶段鲁棒优化算法i-ccg
深度学习|改进两阶段鲁棒优化算法i-ccg
|
10小时前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习在自然语言处理中的应用与挑战
【5月更文挑战第11天】 随着人工智能技术的飞速发展,深度学习已经成为了自然语言处理(NLP)领域的核心动力。本文旨在探讨深度学习技术在NLP中的创新应用,并分析当前面临的主要挑战和潜在的解决途径。我们将重点讨论循环神经网络(RNN)、卷积神经网络(CNN)以及最新的变换器模型(Transformers),这些模型在文本分类、机器翻译和语音识别等任务中取得了显著成效。文章还将涉及深度学习模型的可解释性问题、数据依赖性和计算资源要求等关键议题,为未来的研究方向提供参考。
|
10小时前
|
机器学习/深度学习 自然语言处理 算法
深度学习算法简介(二)
深度学习算法简介(二)
|
10小时前
|
机器学习/深度学习 自然语言处理 算法
深度学习算法简介(一)
深度学习算法简介(一)
|
10小时前
|
机器学习/深度学习 自然语言处理 算法
Python遗传算法GA对长短期记忆LSTM深度学习模型超参数调优分析司机数据|附数据代码
Python遗传算法GA对长短期记忆LSTM深度学习模型超参数调优分析司机数据|附数据代码
|
10小时前
|
机器学习/深度学习 编解码 自然语言处理
如何评价深度学习在自然语言处理、计算机视觉等领域的应用成果?
【5月更文挑战第3天】如何评价深度学习在自然语言处理、计算机视觉等领域的应用成果?
31 6
|
10小时前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习在图像识别中的应用与挑战探索机器学习中的自然语言处理技术
【4月更文挑战第30天】 随着人工智能技术的飞速发展,深度学习已经成为计算机视觉领域的核心动力。本文将探讨深度学习在图像识别任务中的关键技术、应用实例以及面临的主要挑战。我们将重点讨论卷积神经网络(CNN)的架构优化、数据增强技术以及迁移学习的策略,并通过具体案例分析其在医疗影像、自动驾驶和面部识别等领域的应用成效。同时,我们也将指出当前模型泛化能力不足、对抗性攻击以及算力资源需求等挑战,并提出潜在的解决方向。 【4月更文挑战第30天】 在人工智能领域,自然语言处理(NLP)是赋予机器理解和响应人类语言能力的关键技术。本文将深入探讨NLP的发展历程、核心技术及其在不同领域的应用案例。我们将从
|
10小时前
|
机器学习/深度学习 自然语言处理 PyTorch
【Python 机器学习专栏】自然语言处理中的深度学习应用
【4月更文挑战第30天】本文探讨了深度学习在自然语言处理(NLP)中的应用,包括文本分类、情感分析和机器翻译等任务。深度学习的优势在于自动特征学习、强大的表达能力和处理大规模数据的能力。常见模型如RNN、LSTM、GRU、CNN和注意力机制在NLP中发挥作用。Python的TensorFlow、PyTorch、NLTK和SpaCy等工具支持NLP研究。然而,数据稀缺、模型解释性和计算资源需求高等挑战仍待解决。随着技术进步,未来深度学习将进一步推动NLP发展,实现更智能的语言交互。
|
10小时前
|
机器学习/深度学习 自然语言处理 算法
PyTorch与NLP:自然语言处理的深度学习实战
随着人工智能技术的快速发展,自然语言处理(NLP)作为其中的重要分支,日益受到人们的关注。PyTorch作为一款强大的深度学习框架,为NLP研究者提供了强大的工具。本文将介绍如何使用PyTorch进行自然语言处理的深度学习实践,包括基础概念、模型搭建、数据处理和实际应用等方面。
|
10小时前
|
机器学习/深度学习 存储 编解码
利用深度学习优化视频压缩算法
【4月更文挑战第28天】随着数字媒体时代的到来,视频数据量急剧增加,有效的视频压缩技术变得尤为重要。本文探讨了一种基于深度学习的视频压缩框架,旨在提高压缩效率同时保持较高的视频质量。通过使用卷积神经网络(CNN)对视频帧进行特征提取,并结合先进的编码技术,本研究提出了一种新的率失真优化算法。实验结果表明,该算法在多个标准测试序列上相比传统方法能显著降低比特率,同时维持了良好的视觉质量。