CS224n 笔记1-自然语言处理与深度学习简介(一)

本文涉及的产品
NLP自然语言处理_基础版,每接口每天50万次
NLP自然语言处理_高级版,每接口累计50万次
NLP 自学习平台,3个模型定制额度 1个月
简介: CS224n 笔记1-自然语言处理与深度学习简介(一)

1 自然语言处理简介


我们从讨论“什么是NLP”开始本章的内容


1.1 NLP有什么特别之处


自然(人工)语言为什么如此特别?自然语言是一个专门用来表达语义的系统,并且它不是由任何形式的物质表现产生。正因为如此,人工语言与视觉或者其他任何机器学习任务非常不同。


大多数单词只是一个超语言实体的符号:单词是映射到一个表征(想法或事物)的记号。例如,“火箭”一词是指火箭的概念,并且进一步可以指定火箭的实例。有一些单词例外,当我们使用单词和字母代表信号时,想“Whooompaa”一样。除此之外,语言符号可以用多种方式进行编码:语音、手势、文章等。他们可以通过连续的信号传递给大脑,而大脑本身似乎以连续的方式对事物进行编码。(关于语言和语言学的哲学的很多工作已经做到了概念化人类语言,并且可以从语言引用和语义识别单词)。


1.2 应用实例


NLP中有不同级别的任务,从语音处理到语义解释和演讲处理。总而言之,NLP的目标就是为了能够设计算法,是计算机能够理解自然语言。下面是不同难度级别的应用实例:


简单


  • 拼写检查
  • 关键字搜索
  • 查找同义词


中等


  • 从网站、文档中分析系信息


困难


  • 机器翻译(例如将中文翻译成英文)
  • 语义分析 (查询语句的含义是什么)
  • 代词(在一个文档中,“它”或者“他”具体指代什么)
  • 问答系统(例如回答Jeopardy Questions)


1.3 怎么表示单词


贯穿于整个自然语言处理任务中的第一个也是最重要的共同点就是:如何表示单词并作为我们所具有的任意模型的输入。前期大量的NLP工作将单词作为原子符号,但是我们今后将不会重复这个工作,我们首选需要考虑和具备词之间的相似性和差异概念。和词向量一样,我们可以很容易地将这些特征加入到向量之间(采用一些距离措施,如Jaccard,余弦,欧几里得算法等等)。


2 词向量(Word Vectors)


据估计大约有1300万的英文字符,难道它们之间一点联系也没有吗?猫科动物到猫,酒店到汽车旅馆?我不认为它们之间一点关系也没有。因此,我们想将每个单词字符转化为向量,以代表某种单词空间的一个点。这里有很多使用词向量的原因但是最直观的原因就是也许真正存一些足以包含人工语言所有语义的N-维向量空间。每个维度都会编码我们语言传递的含义。例如,语义维度可能表示时态(过去vs现在vs将来),计数(单数vs复数),性别(男性vs女性)。


所以让我们看看第一个词向量并且也可以说是最简单的,one-hot向量。将每个单词表示成IR|V|x1向量,这个词向量就是有很多0和一个1组成(1的位置就是该单词在排序英文出现的索引位置)。在上面的标记中,|V|是词汇的大小。以这种形式编码的词向量看起来如下:

28.png


我们可以将每个单词表示成相互独立的实体。就如我们前面所讨论的,单词表示不会直观地给出单词之间的相似性。例如:

29.png


所以也许我们可以尝试将这个空间的大小从R|V|减小到更小的东西,从而找到一个编码词之间关系的子空间。


3 基于奇异值分解(SVD)的方法


对于这一类寻找词嵌入(也称作词向量)的方法,首先在一个大型数据集进行循环,并且从某种形式的矩阵X中积累单词共现的次数,然后对矩阵X执行奇异值分解来获得一个USVT.我们然后将U作为我们词典中所有单词的词嵌入(或词向量)。下面讨论下X的一些形式。


3.1 词-文档矩阵(Word-Document Matrix)


作为刚开始的尝试,我们大胆地推测:相关的单词经常出现在同一个文档中。例如,“银行”、“债券”、“股票”、“钱”等等,可能出现在一起。但是“银行”、“章鱼”、“香蕉”和“曲棍球”可能不会一起同时出现在一篇文章中。我们依据这个事实来创建一个词-文档矩阵X,其形成方式如下:遍历几十亿个文档,并且对于每一个单词i只要出现在文档j中,我们就将X自增1。很明显的是,X将会是一个巨大的矩阵(IR|V|xM)同时与文档数量(M)相关。因此我们或许还有改善的地方。


3.2 基于窗口的词共现矩阵(Window based Co-occurnece Matrix)


在这使用同样的逻辑,矩阵X存储了单词的共现次数,这样将会变成一个附属矩阵。在这个方法中,我们计算每个单词在一个特定大小的窗口内出现的次数,进而计算语料库中所有的单词的技术。下面将展示一个实例,我们语料中包含三个句子,窗口大小为1:

  1. I enjoy flying.
  2. I like NLP.
  3. I like deep learning.
    由此产生的计数矩阵将会是:

    30.png

    下面解释下结果:
    首先要记住窗口(window)大小1。对于矩阵中(I,I)的值为什么为0呢?对于单词I,我们扫描第一个句子,因为I enjoy flying中单词I出现了,I前面为空,后面紧跟单31.png


enjoy,所以(I,I)的值为0;然后扫描第二个句子同样前后没有出现I,这是(I,I)为0;同样扫描第三个句子之后,(I,I)值仍为0。对于(I,like)的值为什么为2呢?扫描第一个句子后,I的前后一个单位没有出现like。对于第2个和第3个句子,I的后面出现了like,所以最后(I,like)的值为2,其他同理。

3.3 对共现矩阵使用奇异值分解


我们在X上执行SVD,观察奇异值(结果矩阵S的对角线数据项),并根据所需要的百分比方差在索引k处进行切割:

32.png


然后我们把这个子矩阵变成我们的单词嵌入矩阵。这样,能够在词汇表中给出每个单词的k维表示方法。

对X应用SVD:

33.png


通过选择第一个k维奇异来减少维度

34.png


这两种方法能够提供给我们编码足够语义和语法信息的词向量,但是也伴随着很多其他问题:

  • 矩阵的维度变化非常频繁(新词添加和语料大小变化非常频繁)
  • 大多数单词没有共现,矩阵会非常稀疏
  • 通常矩阵维度非常高(约为106x106
  • 训练成本比较高
  • 为了形成词频的严重不平衡,需要进行对矩阵X进行“打乱”。
    目前已经存在了一些方法来解决上面提到的问题:
  • 忽略一些功能词汇,例如“the”,“he”,“has”,etc。
  • 使用一个不规则窗口-根据文档中单词之间的距离来计算共现次数
  • 使用Pearson相关系数和将原始计数设置为负数。
    正如我们下一节中提到的,基于迭代的方法以更加优雅的方式解决了许多问题。




相关文章
|
2月前
|
机器学习/深度学习 自然语言处理 语音技术
探索深度学习中的Transformer模型及其在自然语言处理中的应用
探索深度学习中的Transformer模型及其在自然语言处理中的应用
72 5
|
2月前
|
机器学习/深度学习 自然语言处理 并行计算
探索深度学习与自然语言处理的最新进展
探索深度学习与自然语言处理的最新进展
54 2
|
2月前
|
机器学习/深度学习 边缘计算 人工智能
探索深度学习与自然语言处理的最新进展
探索深度学习与自然语言处理的最新进展
68 1
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习与自然语言处理的最新进展
深度学习与自然语言处理的最新进展
|
2月前
|
机器学习/深度学习 自然语言处理 监控
探索深度学习在自然语言处理中的应用与挑战
本文深入分析了深度学习技术在自然语言处理(NLP)领域的应用,并探讨了当前面临的主要挑战。通过案例研究,展示了如何利用神经网络模型解决文本分类、情感分析、机器翻译等任务。同时,文章也指出了数据稀疏性、模型泛化能力以及计算资源消耗等问题,并对未来的发展趋势进行了展望。
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
探索深度学习与自然语言处理的最新进展
探索深度学习与自然语言处理的最新进展
63 0
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
探索深度学习与自然语言处理的前沿技术:Transformer模型的深度解析
探索深度学习与自然语言处理的前沿技术:Transformer模型的深度解析
137 0
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习在自然语言处理中的突破与未来趋势####
本文深入探讨了深度学习技术在自然语言处理(NLP)领域的最新进展,重点介绍了其在语言理解、生成及翻译等方面的革新应用。通过对比传统方法的局限性,展示了深度学习如何以其强大的特征提取和学习能力重塑NLP领域。文章还分析了当前面临的挑战,如模型泛化能力、解释性问题及资源消耗等,并展望了未来发展趋势,包括多模态学习、持续学习机制以及更加公平和可解释的AI模型设计。本文旨在为读者提供一个全面而深入的视角,理解深度学习在推动NLP发展的核心作用及其未来的无限可能。 ####
|
2月前
|
机器学习/深度学习 自然语言处理
深度学习在自然语言处理中的最新进展
深度学习在自然语言处理中的最新进展
32 0
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习在自然语言处理中的突破与未来展望###
本文深入探讨了深度学习技术在自然语言处理(NLP)领域的最新进展,重点分析了其在该领域实现的重大突破及面临的挑战。通过对比传统方法与深度学习模型的差异,阐述了深度学习如何推动NLP领域的边界拓展,并对未来发展趋势进行了展望。 ###