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

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

更多深度文章,请关注: 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

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

相关文章
|
16小时前
|
机器学习/深度学习 人工智能 算法
【昆虫识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+机器学习+TensorFlow+ResNet50
昆虫识别系统,使用Python作为主要开发语言。通过TensorFlow搭建ResNet50卷积神经网络算法(CNN)模型。通过对10种常见的昆虫图片数据集('蜜蜂', '甲虫', '蝴蝶', '蝉', '蜻蜓', '蚱蜢', '蛾', '蝎子', '蜗牛', '蜘蛛')进行训练,得到一个识别精度较高的H5格式模型文件,然后使用Django搭建Web网页端可视化操作界面,实现用户上传一张昆虫图片识别其名称。
20 7
【昆虫识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+机器学习+TensorFlow+ResNet50
|
18小时前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习在自然语言处理中的应用与挑战
【6月更文挑战第22天】本文旨在探讨深度学习技术在自然语言处理(NLP)领域的应用及其面临的主要挑战。通过分析深度学习模型如循环神经网络(RNN)、长短时记忆网络(LSTM)和Transformer架构,本文揭示了这些模型如何革新了语言理解、机器翻译、情感分析和文本生成等任务。同时,本文也指出了深度学习在处理语言的复杂性、数据偏差、资源需求以及可解释性方面遇到的挑战,并讨论了未来研究的潜在方向。
9 3
|
1天前
|
机器学习/深度学习 人工智能 算法
【球类识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+TensorFlow
球类识别系统,本系统使用Python作为主要编程语言,基于TensorFlow搭建ResNet50卷积神经网络算法模型,通过收集 '美式足球', '棒球', '篮球', '台球', '保龄球', '板球', '足球', '高尔夫球', '曲棍球', '冰球', '橄榄球', '羽毛球', '乒乓球', '网球', '排球'等15种常见的球类图像作为数据集,然后进行训练,最终得到一个识别精度较高的模型文件。再使用Django开发Web网页端可视化界面平台,实现用户上传一张球类图片识别其名称。
16 7
【球类识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+TensorFlow
|
1天前
|
机器学习/深度学习 自然语言处理 数据处理
深度学习在自然语言处理中的应用与挑战
【6月更文挑战第21天】随着人工智能技术的飞速发展,深度学习已成为自然语言处理(NLP)领域的核心技术之一。本文将探讨深度学习技术如何革新NLP领域,包括语言模型的进步、机器翻译的突破以及情感分析的精细化。同时,我们将指出当前面临的主要挑战,如数据偏差问题、模型解释性不足以及资源消耗问题,并提出可能的解决方向。
|
4天前
|
机器学习/深度学习 算法 C语言
【深度学习】优化算法:从梯度下降到Adam
【深度学习】优化算法:从梯度下降到Adam
6 1
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习在自然语言处理中的应用与挑战
随着人工智能技术的发展,深度学习作为一种重要的技术手段,在自然语言处理领域展示了强大的应用潜力。本文探讨了深度学习在自然语言处理中的关键应用,如机器翻译、情感分析和语义理解,并分析了面临的挑战,如数据稀缺性、模型可解释性和多语言处理。通过对现有技术和未来发展的探讨,展示了深度学习在推动自然语言处理技术进步中的重要作用。
|
6天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的自适应学习算法研究与应用
在深度学习领域,传统的静态模型在处理动态环境和非平稳数据时面临挑战。本文探讨了自适应学习算法在深度学习中的重要性及其应用。通过分析自适应学习算法在模型参数、损失函数和数据分布上的应用,展示了其在提升模型鲁棒性和泛化能力方面的潜力。具体讨论了几种代表性的自适应学习方法,并探索了它们在现实世界中的应用案例,从而展示了其在处理复杂问题和动态数据中的效果。
14 0
|
7天前
|
机器学习/深度学习 人工智能 自然语言处理
算法金 | 一文看懂人工智能、机器学习、深度学习是什么、有什么区别!
**摘要:** 了解AI、ML和DL的旅程。AI是模拟人类智能的科学,ML是其分支,让机器从数据中学习。DL是ML的深化,利用多层神经网络处理复杂数据。AI应用广泛,包括医疗诊断、金融服务、自动驾驶等。ML助力个性化推荐和疾病预测。DL推动计算机视觉和自然语言处理的进步。从基础到实践,这些技术正改变我们的生活。想要深入学习,可参考《人工智能:一种现代的方法》和《深度学习》。一起探索智能的乐趣!
33 1
算法金 | 一文看懂人工智能、机器学习、深度学习是什么、有什么区别!
|
9天前
|
机器学习/深度学习 算法 PyTorch
《PyTorch深度学习实践》--3梯度下降算法
《PyTorch深度学习实践》--3梯度下降算法
|
10天前
|
机器学习/深度学习 传感器 算法
基于Mediapipe深度学习算法的手势识别系统【含python源码+PyqtUI界面+原理详解】-python手势识别 深度学习实战项目
基于Mediapipe深度学习算法的手势识别系统【含python源码+PyqtUI界面+原理详解】-python手势识别 深度学习实战项目