自然语言处理(NLP)精选13道面试题

2023-11-16

文末彩蛋:七月在线干货组最新升级的《名企AI面试100题》免费送!

1、为什么BERT在第一句前会加一个[CLS]标志?

BERT在第一句前会加一个[CLS]标志,最后一层该位对应向量可以作为整句话的语义表示,从而用于下游的分类任务等。

为什么选它呢,因为与文本中已有的其它词相比,这个无明显语义信息的符号会更“公平”地融合文本中各个词的语义信息,从而更好的表示整句话的语义。

具体来说,self-attention 是用文本中的其它词来增强目标词的语义表示,但是目标词本身的语义还是会占主要部分的,因此,经过 BERT 的12层,每次词的 embedding 融合了所有词的信息,可以去更好的表示自己的语义。

而 [CLS] 位本身没有语义,经过12层,得到的是 attention 后所有词的加权平均,相比其他正常词,可以更好的表征句子语义。

当然,也可以通过对最后一层所有词的 embedding 做 pooling 去表征句子语义。

这里补充一下bert的输出,有两种,在BERT TF源码中对应:

一种是get_pooled_out(),就是上述[CLS]的表示,输出shape是[batch size,hidden size]。

一种是get_sequence_out(),获取的是整个句子每一个token的向量表示,输出shape是[batch_size, seq_length, hidden_size],这里也包括[CLS],因此在做 token 级别的任务时要注意它。

2、BERT的三个Embedding直接相加会对语义有影响吗?

这是一个非常有意思的问题,苏剑林老师也给出了回答,真的很妙:

Embedding的数学本质,就是以one hot为输入的单层全连接。

也就是说,世界上本没什么Embedding,有的只是one hot。

可参考:
https://kexue.fm/archives/4122

在这里想用一个例子再尝试解释一下:

假设 token Embedding 矩阵维度是 [4,768];position Embedding 矩阵维度是 [3,768];segment Embedding 矩阵维度是 [2,768]。

对于一个字,假设它的 token one-hot 是[1,0,0,0];它的 position one-hot 是[1,0,0];它的 segment one-hot 是[1,0]。

那这个字最后的 word Embedding,就是上面三种 Embedding 的加和。

如此得到的 word Embedding,和concat后的特征:[1,0,0,0,1,0,0,1,0],再过维度为 [4+3+2,768] = [9, 768] 的全连接层,得到的向量其实就是一样的。

再换一个角度理解:

直接将三个one-hot 特征 concat 起来得到的 [1,0,0,0,1,0,0,1,0] 不再是one-hot了,但可以把它映射到三个one-hot 组成的特征空间,空间维度是 432=24 ,那在新的特征空间,这个字的one-hot就是[1,0,0,0,0…] (23个0)。

此时,Embedding 矩阵维度就是 [24,768]&#x

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自然语言处理(NLP)精选13道面试题 的相关文章

  • 语音识别中如何处理同音词?

    对于那些不熟悉什么是同音字 https en wikipedia org wiki Homophone是的 我提供以下示例 我们的 是 嗨和高 到 太 二 在使用时语音API https developer apple com docume
  • BERT 输出不确定

    BERT 输出是不确定的 当我输入相同的输入时 我希望输出值是确定性的 但我的 bert 模型的值正在变化 听起来很尴尬 同一个值返回两次 一次 也就是说 一旦出现另一个值 就会出现相同的值并重复 如何使输出具有确定性 让我展示我的代码片段
  • gensim如何计算doc2vec段落向量

    我正在看这篇论文http cs stanford edu quocle paragraph vector pdf http cs stanford edu quocle paragraph vector pdf 它指出 段落向量和词向量被平
  • openNLP 与 Solr 集成时出现异常

    我正在尝试将 openNLP 与 Solr 6 1 0 集成 我配置了架构和 solrconfig 文件 详细信息请参见 wiki 链接 https wiki apache org solr OpenNLP https wiki apach
  • 管道:多个流消费者

    我编写了一个程序来计算语料库中 NGram 的频率 我已经有一个函数 它消耗一串令牌并生成一个订单的 NGram ngram Monad m gt Int gt Conduit t m t trigrams ngram 3 countFre
  • Python模块可以访问英语词典,包括单词的定义[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个 python 模块 它可以帮助我从英语词典中获取单词的定义 当然有enchant 这可以帮助我检查该单词是否存在于英语中
  • 给定文档,选择相关片段

    当我在这里提出问题时 自动搜索返回的问题的工具提示给出了问题的前一点 但其中相当一部分没有给出任何比理解问题更有用的文本 标题 有谁知道如何制作一个过滤器来删除问题中无用的部分 我的第一个想法是修剪仅包含某个列表中的单词的任何前导句子 例如
  • 使用 SciKit-learn 和大型数据集进行文本分类

    首先 我昨天开始学习Python 我正在尝试使用 SciKit 和大型数据集 250 000 条推文 进行文本分类 对于该算法 每条推文都将表示为 4000 x 1 向量 因此这意味着输入为 250 000 行和 4000 列 当我尝试在
  • 如何使用动词时态/语气制作稀疏匹配器模式?

    我一直在尝试使用动词时态和情绪为 spacy 匹配器创建一个特定的模式 我发现了如何使用 model vocab morphology tag map token tag 访问使用 spacy 解析的单词的形态特征 当动词处于虚拟语气模式
  • 使用 OpenNLP 获取句子的解析树。陷入困境。

    OpenNLP 是一个关于自然语言处理的 Apache 项目 NLP 程序的目标之一是解析一个句子 并给出其语法结构的树 例如 天空是蓝色的 这句话 可能会被解析为 S NP VP The sky is blue where S是句子 NP
  • nltk 标记化和缩写

    我用 nltk 对文本进行标记 只是将句子输入到 wordpunct tokenizer 中 这会拆分缩写 例如 don t 到 don t 但我想将它们保留为一个单词 我正在改进我的方法 以实现更精确的文本标记化 因此我需要更深入地研究
  • FastText - 由于 C++ 扩展未能分配内存,无法加载 model.bin

    我正在尝试使用 FastText Python APIhttps pypi python org pypi fasttext https pypi python org pypi fasttext虽然 据我所知 此 API 无法加载较新的
  • 文本摘要评估 - BLEU 与 ROUGE

    根据两个不同摘要系统 sys1 和 sys2 的结果和相同的参考摘要 我使用 BLEU 和 ROUGE 对它们进行了评估 问题是 sys1 的所有 ROUGE 分数均高于 sys2 ROUGE 1 ROUGE 2 ROUGE 3 ROUGE
  • 如何将句子或文档转换为向量?

    我们有将单词转换为向量的模型 例如 word2vec 模型 是否存在类似的模型 可以使用为单个单词学习的向量将句子 文档转换为向量 1 跳克法 以及使用它的工具 谷歌 word2vec https code google com p wor
  • Rasa core 和 Rasa nlu 之间的区别

    我试图理解之间的区别拉莎核心 https core rasa ai and Rasa NLU https nlu rasa ai installation html从官方文档看的 但我不太明白 我的理解是Rasa core用于引导对话流程
  • 在 Python 中识别大型字符串列表中的项目之间的文本相似性的最有效方法是什么?

    下面的代码实现了我想要实现的结果 有一个称为 引理 的字符串列表 其中包含特定类别单词的可接受形式 另一个列表称为 形式 包含在不同时期和特定语言的不同方言的大量文本中发现的单词的许多拼写变体 对于 forms 中的每个单词 我想获取 le
  • 使用 NLP 进行句子压缩 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 使用机器翻译 我可以获得一个句子的非常压缩的版本 例如 我真的很想喝一杯美味可口的咖啡将被翻译为我想喝咖
  • 更换色谱柱时出现稀疏效率警告

    def tdm modify feature names tdm non useful words kill stampede trigger cause death hospital minister said told say inju
  • 如何在 scikit-learn 的 SVM 中使用非整数字符串标签? Python

    Scikit learn 具有相当用户友好的用于机器学习的 python 模块 我正在尝试训练用于自然语言处理 NLP 的 SVM 标记器 其中我的标签和输入数据是单词和注释 例如 词性标记 而不是使用双精度 整数数据作为输入元组 1 2
  • 如何使用 NLP 确定句子中的中心词?

    例如 如果我得到一个句子 一名英国士兵在阿富汗战斗中丧生 这句话的中心词是 杀 给定 Python 中的 nltk 包 我怎样才能找到它 我不是在谈论词干 我指的是中心词 您正在寻找中心词句子解析 它可以在 Python 的 nltk 包中

随机推荐

  • Android JetPack学习笔记-DataStore

    通过键值对存储 以异步 一致的事务方式存储数据克服了SharedPreferences的一些缺点 基于kotlin协程的Flow实现 并且可以对SP数据进行迁移 以protobuffer协议进行存储 速度更快 效率更高 使用 引用 impl
  • 实践练习五(可选):对 OceanBase 做性能测试

    第六期直播实践练习 可选 对一个OB集群 带 OBProxy 进行Benchamrk测试 环境准备 由于手上正好有7台物理机 在作业三中会使用OBD直接部署了2 2 2架构的OceanBase集群 这里直接拿来进行TPC C测试 机器信息如
  • Kettle——表输出步骤异常处理方式探究

    开源ETL工具Kettle transformation中的多数步骤都是支持定义错误处理的 为了保证transformation脚本的健壮性 我们会在关键的步骤上进行异常捕获处理 本篇文章以TableOutput步骤来探究kettle异常处
  • QT-信号与槽机制学习笔记

    QT 信号与槽机制学习笔记 一 标准信号和槽 二 自定义信号与槽 2 1 信号与槽的案例 无参数 2 2 有参数的信号与槽案例 三 信号和槽的扩展 四 Qt4的信号和槽函数 五 QDebug的输出转义问题 六 lambda表达式 6 1 简
  • 常见面试题--memcpy()和strcpy()的区别

    前言 memcpy 和strcpy 的区别是常见的面试题 以前面试的时候被问起过 觉得当时回答的不是很好 这里做一下总结 方便自己和有需要的人查看 这个问题主要考查基本能力 这两个都是常见的拷贝函数 C语言程序员都经常会用到 用法都清楚 但
  • Jmeter 配置使用(一)

    Jmeter 简介 Jmeter 下载安装 测试实施 创建线程组 添加Http请求 查看结果树 聚合报告 添加断言
  • 为eclipse添加tomcat插件(eclipse tomcat plugin)

    打开站点 http marketplace eclipse org content eclipse tomcat plugin 把Install拖到打开的eclipse的工作区中 即可下载安装 安装后eclipse将重启 重新打开后可见工具
  • 【转】一篇文章读懂大数据中台架构

    一篇文章读懂大数据中台架构
  • mysql5.7驱动配置

    环境 mysql5 7 url后面需要加上useUnicode true characterEncoding utf8 serverTimezone UTC这几个参数 否则会报错 datasource driver class name c
  • 清风数学建模学习笔记——TOPSIS法(优劣解距离法)

    优劣解距离法 TOPSIS法 Technique for Order Preference by Similarity to Ideal Solution 可翻译为逼近理想解排序法 国内常简称为优劣解距离法 TOPSIS 法是一种常用的 综
  • 银联支付 前端 接收后端数据 写入页面

    如果能够帮到您 烦请给个赞或者评论 不甚感谢 点击确认支付 跳转银联页面 后台传入html 给我 我需要将html append html 放在html 里 html html html html data data union pay h
  • 使用多个路由器有线桥接实现无线漫游

    虽然 WDS 是平价的无线漫游实现最优先考虑的方案 但 WDS 几个路由之间的通信还是无线 无线没有有线稳定这是不争的事实 使用有线桥接来实现无线漫游 各个路由之间的通信通过有线 相对来说理论上要稳定些 示例 三个路由器 一主二从 两个也行
  • libcurl快速入门

    libcurl是一个跨平台的网络协议库 支持http https ftp gopher telnet dict file 和ldap 协议 gt libcurl同样支持HTTPS证书授权 HTTP POST HTTP PUT FTP 上传
  • 工厂模式与构造函数模式的区别

    目录 一 工厂模式 二 构造函数模式 一 工厂模式 1 工厂模式其实就是普通函数 2 可以解决创建多个类似对象的问题 3 没有解决对象标识问题 即新创建的对象是什么类型 工厂模式 function createPerson name age
  • AIX系统升级记录

    从6100 01 01 0823升级到6100 05 00 1016 一 下载补丁 下载地址 http www 912 ibm com eserver support fixes Product Group gt System p Prod
  • 测试内存超频软件,内存超频工具(SPDtool)

    都知道CPU可以超频 这一点儿也不稀奇 不过 今天小编带给大家的这款spdtool可是传说中的内存超频软件 震惊了吧 现在的游戏画面越来越精致 场景也越来越大 所以 对内存的要求也更高了 这款内存超频工具也就应运而生了 本软件利用修改spd
  • Leaflet基础入门教程(一)

    leaflet是一个前端的轻量的gis框架 为什么说它轻量呢 因为相比于传统的 庞大的 GIS框架比如openlayers和mapbox leaflet不仅代码体积小 而且API构成也极为简单 是GIS行业小白入门级别学习的最好的框架 没有
  • 【AI面试】Anchor based 、 Anchor free 和 no anchor 的辨析

    深度学习的目标检测算法 通常会在输入图像中采样大量的区域 然后判断这些区域中是否包含我们感兴趣的目标 并调整 回归 区域边界 从而更准确地预测目标的真实边界框 ground truth bounding box 目标检测算法会需要做两个事情
  • Maven deploy plugin使用

    Maven deploy plugin使用 简介 maven deploy plugin主要是为了用来将artifact部署到远程仓库中 Goals Goal Description deploy deploy 部署artifact到远程仓
  • 自然语言处理(NLP)精选13道面试题

    文末彩蛋 七月在线干货组最新升级的 名企AI面试100题 免费送 1 为什么BERT在第一句前会加一个 CLS 标志 BERT在第一句前会加一个 CLS 标志 最后一层该位对应向量可以作为整句话的语义表示 从而用于下游的分类任务等 为什么选