0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

是否可以利用全局语义上下文改进QuickType键盘的单词预测?

zhKF_jqr_AI 来源:未知 作者:李倩 2018-10-08 09:19 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

编者按:从iOS 8开始,苹果就在iPhone上采用了一个全新的预测文本功能——QuickType键盘。当你在打字的时候,系统会根据你的书写风格,提示接下来可能会键入的字词或短语供你选择,类似中文输入法中的智能建议。

这一功能基于其背后强大的自然语言处理(NLP)模型,而在过去几年中,这种词向量模型也是新闻、搜索和地图等其他应用程序的核心。在这篇文章中,我们将介绍苹果研究人员近期的一项新探索:是否可以利用全局语义上下文改进QuickType键盘的单词预测?

简介

You shall know a word by the company it keeps.(现代语言学名句:观其伴而知其意。即通过分析大型语言语料库中词汇共现的模式,我们可以得出词语的语义表征)

现如今,训练词嵌入模型的大多数方法都围绕句子中给定单词的上下文,以出现在中心词前后的几个单词(比如5个)为观察“窗口”,从中挖掘信息。以美国《独立宣言》中出现的代词“self-evident”为例,它的左侧是“hold these truths to be”,右侧是“that all men are created”。

本文将在这类方法的基础上做进一步扩展,探索模型是否能捕获文档的整个语义结构,简而言之,在新模型中,“self-evident”将可以把整本《独立宣言》作为自己的上下文。那么,这种全局语义上下文能否提高语言模型的性能呢?要解决这个问题,我们先看看现在的词嵌入用法。

词嵌入

词嵌入(Word Embeddings)是NLP中的一个常见操作,现在,以无监督方式训练的连续空间词嵌入已经被证实可用于各种NLP任务,比如信息检索、文本分类、问答和序列语言建模等。其中最基础的一种词嵌入是1-of-N Encoding,即假设存在一个大小为N的基础单词集,每个单词都由一个N维系数向量表示(在单词索引处为1,在其他地方为0)。

但这种方法有两个缺陷,一是它的正交性会弱化相似单词之间关系,二是编码结果容易过长。因此我们也已经有了更复杂的嵌入——将单词映射到低维连续向量空间中的密集向量中,这种映射不仅能降低维度,还有利于捕获关于单词的语义、句法和语用信息。

有了词向量,我们就能通过计算向量之间的距离判断两个单词的相似程度。

比较常见的降维词嵌入类型有两种:

从单词所在文本的上下文中导出表示(前L个单词和后L个单词,L一般是个较小的整数)

利用围绕单词的全局上下文的表示(单词所在的整个文本)

其中,利用文本上下文的方法包括:

用于预测的神经网络架构,如连续词袋模型和skip-gram模型

序列语言模型中的投影层(projection layer)

编码器的Bottleneck表示

利用全局上下文的方法包括:

全局矩阵分解方法,如潜在语义映射(LSM),它计算word-document共现次数

Log-Liner Model,如GloVe,它计算word-word共现次数

从理想的角度看,像LSM这种计算全局共现的方法其实是最接近真正的语义嵌入的,因为它们捕获的是整个文本传达的语义概念的统计信息。相比之下,基于预测的神经网络只是把语义关系封装到以目标单词为中心的局部文本中,不够全面。因此,当涉及全局语义信息时,由这种方法产生的嵌入往往存在局限。

但是,尽管存在这种局限,现在越来越多的研究人员还是投向神经网络,尤其是广受欢迎的连续词袋模型和skip-gram模型。因为它们能解决“国王对于女王就像男人对于女人”这类类比,而LSM经常失败。对此,一种普遍看法是基于LSM的方法会使向量空间的各个维度不够精确,因此只能产生次优的空间结构。

这个认识引起了苹果研究人员的极大兴趣,因为现用QuickType键盘是基于LSM设计的,在他们最新的博客中,他们就是否可以通过使用不同类型的神经网络架构来实现更强大的语义嵌入进行了探讨。

神经架构

谈及生成词嵌入,最著名的框架之一是word2vec,但研究人员在文章中采用的是一种能提供全局语义嵌入的特殊RNN——bi-LSTM。它允许模型访问先前、当前和未来的输入信息,把握全局上下文。

为了让模型能输入整个完整文档,他们重新设计了这个架构,如下图所示,模型的输出能提供与该文档相关联的语义类别这意味着生成的词嵌入捕获的是输入的整个语义结构,而不仅是局部上下文。

这个架构主要解决了两个障碍。其一是对目标单词上下文的单词数限制,它原则上可以容纳无限长度的上下文,这样就不仅可以处理句子,还可以处理整个段落,甚至是完整的文档。

图一 能捕获全局语义结构的RNN

其二涉及预测目标本身。到目前为止,神经网络这种解决方案都基于局部上下文信息,无法充分反映全局语义信息,但是上图已经是一个能输入完整文本的神经网络了。为了简化语义标签的生成,研究人员发现派生合适的聚类类别是有帮助的,例如,他们可以用LSM获得初始word-document嵌入。

设当前存在一个文本块(可以是句子,也可以是段落、文档),它由T个单词x(t)构成(1≤t≤T),且存在一个全局关联的语义类别z。我们把它输入修改过的bi-LSTM。

用1-of-N encoding对输入文本中的单词x(t)编码,把x(t)转成N维稀疏向量。此时,x(t)左侧的上下文向量h(t − 1)维数为H,它包含前一个时间步的隐藏层中输出值信息的内部表示;x(t)右侧的上下文向量g(t + 1)维数也是H,它包含下一个时间步的隐藏层中的右侧上下文输出值信息。网络在当前时间步计算隐藏节点的输出值,如下所示:

其中,

F{·}表示激活函数,如sigmoid、tanh、ReLU

s(t)表示网络状态,这是左右上下文隐藏节点的串联:s(t) = [g(t) h(t)],维数为2H。我们可以把网络状态看作是2H向量空间中,单词x(t)的连续空间表示

网络的输出是与输入文本相关联的语义类别。在每个时间步,对应于当前单词的输出标签z再被1-of-K encoding:

其中,G {·}表示softmax激活函数。

当我们训练网络时,我们假设有一组语义类别注释可用。如前所述,这些注释可能来自使用LSM获得的初始word-document嵌入。为了避免出现梯度消失,这个架构把隐藏节点设计成了LSTM和GRU里的形式,我们可以根据需要将图一中的单个隐藏层扩展到任意复杂、任意深度的网络。

神经语言建模

在实验中,研究人员使用的是之前训练QuickType时所用的语料库的子集,如下表所示,他们测试了三种不同嵌入模型在测试集上的困惑度表现,其中“1-of-N”表示标准稀疏嵌入,“word2vec”是标准word2vec嵌入,“bi-LSTM”是他们改进后的方法。

可以发现,“bi-LSTM”使用的训练数据是最少的,但它的性能却和比他多用了6倍训练数据的“word2vec”差不多,而“1-of-N”模型如果要达到同样的困惑度,它使用的训练数据得是“bi-LSTM”的5000倍以上。

因此,这种能捕获全局语义结构的方法非常适合数据量有限的公司、实验室。

结论

相比现有方法,将全局语义信息纳入神经语言模型具有明显的潜在优势,它也是NLP研究的一个趋势。但是,在实验过程中,研究人员也发现这种方法确实还存在限制,在段落数据上训练词嵌入和在句子数据上训练语言模型时,其中还存在一个长度不匹配的问题。

对此,研究人员提出的方案是修改语言模型训练中使用的客观标准,以便人们能在同一段落数据上同时训练嵌入和语言模型。总之,使用bi-LSTM RNN训练全局语义词嵌入确实可以提高神经语言建模的准确性,它还可以大大降低对训练所需的数据量的要求。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4844

    浏览量

    108212
  • 自然语言处理

    关注

    1

    文章

    630

    浏览量

    14737

原文标题:Apple:全局语义上下文可以改善神经语言模型吗?

文章出处:【微信号:jqr_AI,微信公众号:论智】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    安信可AI语音模组支持MCP模型上下文协议

    安信可 PalChat 系列(V1/V2)支持 MCP(模型上下文协议),工程师只需写几十行 C 代码,就能让 AI 模型直接控制硬件设备。V1 基于 Ai-WB2-12F,适合快速验证;V2
    的头像 发表于 04-15 09:54 517次阅读

    Linux内核参数调优避坑指南

    线上问题一来,很多人第一反应是改 sysctl。连接慢改 somaxconn,内存紧张改 swappiness,磁盘抖动改 dirty_ratio,网卡丢包改各种 net.core.*。参数不是不能改,问题是很多改法只在某个场景下成立,一旦脱离上下文,最容易把局部最优改成全局
    的头像 发表于 03-11 09:50 404次阅读

    NVIDIA BlueField-4为推理上下文记忆存储平台提供强大支持

    随着代理式 AI 工作流将上下文窗口扩展到数百万个 token,并将模型规模扩展到数百万亿个参数,AI 原生企业正面临着越来越多的扩展挑战。这些系统目前依赖于智能体长期记忆来存储跨多轮、工具和会话持续保存的上下文,以便智能体能够基于先前的推理进行构建,而不是每次请求都从头
    的头像 发表于 02-02 10:29 1328次阅读
    NVIDIA BlueField-4为推理<b class='flag-5'>上下文</b>记忆存储平台提供强大支持

    大语言模型如何处理上下文窗口中的输入

    本博客介绍了五个基本概念,阐述了大语言模型如何处理上下文窗口中的输入。通过明确的例子和实践中获得的见解,本文介绍了多个与上下文窗口有关的基本概念,如词元化、序列长度和注意力等。
    的头像 发表于 12-03 13:48 789次阅读
    大语言模型如何处理<b class='flag-5'>上下文</b>窗口中的输入

    执行脱离上下文的威胁分析与风险评估

    作为WITTENSTEIN high integrity system(WHIS)公司的核心产品,SAFERTOS专为安全关键型嵌入式系统设计,使其成为确保联网车辆环境可靠防护的理想选择。在本文中,我们将讨论如何开展SAFERTOS安全分析,结合威胁评估与风险评估(TARA)结果,以及这些实践方法的具体实施,最终推动SAFERTOS增强型安全模块的开发。遵循行业标准,该方法为管理风险并保护互联车辆组件免受不断演变的威胁提供了一个结构化的框架。
    的头像 发表于 11-28 09:11 662次阅读
    执行脱离<b class='flag-5'>上下文</b>的威胁分析与风险评估

    蜂鸟E203简单分支预测改进

    当前指令的类型是普通指令还是分支跳转指令。当译码信息指示当前指令为分支跳转指令时,则在一个周期内进行分支预测。 蜂鸟E203的分支预测十分简单,是常见的静态分支预测,通过简单译码得到的立即数的信息进行判断
    发表于 10-24 07:45

    提高条件分支指令预测正确率的方法

    基于全局分支历史的ghare分支预测器 主要构成 分支目标缓冲器BTB 分支历史寄存器BHR 方式历史寄存器PHT 对于某个条件分支指令而言,其全局历史是相对恒定的,让PHT同时保存全局
    发表于 10-22 08:22

    基于全局预测历史的gshare分支预测器的实现细节

    是否被执行以及它们的起跳地址。分支地址是指该条件分支指令的PC值。 下图为GShare分支预测机制的原理流程图。 当处理器执行到分支指令时,GShare预测模块可以将分支历史和分支地
    发表于 10-22 06:50

    请问riscv中断还需要软件保存上下文和恢复吗?

    以下是我拷贝的文档里的说明,这个中断处理还需要软件来写上下文保存和恢复,在使用ARM核的单片机都不需要考虑这些的,使用过的小伙伴能解答吗? 3.8. 进出中断的上下文保存和恢复 RISC-V架构
    发表于 10-20 09:56

    HarmonyOSAI编程编辑区代码续写

    利用AI大模型分析并理解开发者在代码编辑区的上下文信息或自然语言描述信息,智能生成符合上下文的ArkTS或C++代码片段。 使用约束 建议在编辑区内已有较丰富上下文,能够使模型对编程场
    发表于 08-21 15:43

    HarmonyOS AI辅助编程工具(CodeGenie)代码续写

    利用AI大模型分析并理解开发者在代码编辑区的上下文信息或自然语言描述信息,智能生成符合上下文的ArkTS或C++代码片段。 一、使用约束 建议在编辑区内已有较丰富上下文,能够使模型对编
    发表于 07-15 16:15

    鸿蒙NEXT-API19获取上下文,在class中和ability中获取上下文,API迁移示例-解决无法在EntryAbility中无法使用最新版

    摘要:随着鸿蒙系统API升级至16版本(modelVersion5.1.1),多项API已废弃。获取上下文需使用UIContext,具体方法包括:在组件中使用getUIContext(),在类中使
    的头像 发表于 07-01 10:57 918次阅读
    鸿蒙NEXT-API19获取<b class='flag-5'>上下文</b>,在class中和ability中获取<b class='flag-5'>上下文</b>,API迁移示例-解决无法在EntryAbility中无法使用最新版

    英语单词学习页面+单词朗读实现 -- 【1】页面实现 ##HarmonyOS SDK AI##

    ​先看一下页面效果 ​ 整体页面是一个比较简洁的页面,其中有两个特色功能 对于例句中,能够实现将当前的单词从句子中进行识别并突出显示 对于单词和句子,可以进行朗读,这个朗读使用的是Core
    发表于 06-29 23:24

    Transformer架构中编码器的工作流程

    编码器是Transformer体系结构的基本组件。编码器的主要功能是将输入标记转换为上下文表示。与早期独立处理token的模型不同,Transformer编码器根据整个序列捕获每个token的上下文
    的头像 发表于 06-10 14:27 1233次阅读
    Transformer架构中编码器的工作流程

    UIAbility组件基本用法说明

    用getContext接口获取当前页面关联的UIAbilityContext或ExtensionContext。 在UIAbility中可以通过this.context获取UIAbility实例的上下文信息
    发表于 05-16 06:32