
NLP
文章平均质量分 87
lwgkzl
海风和着歌声,星空伴着代码
展开
-
【Ranking】Pre-trained Language Model based Ranking in Baidu Search
总述这篇文章重点在解决以下几个问题:现有的预训练语言模型由于处理长文本对时间和计算资源的高需求使得其无法应用于online ranking system,因为网络文本通常比较长。现有的预训练范式,如随机mask词汇,下一轮句子预测等,都有Rank任务没有关系,因此会忽略文本中的相关性,从而减弱其在ad-hoc 检索中的效果。在真实的信息检索系统中,Ranking 模块通常需要与其他模块结合起来使用,如何使得ranking 模块能够更好的兼容检索系统的其他模块也是一个值得探索的问题。针对以上问题原创 2022-05-23 01:18:56 · 1124 阅读 · 1 评论 -
【模型蒸馏】TinyBERT: Distilling BERT for Natural Language Understanding
总述TinyBert主要探究如何使用模型蒸馏来实现BERT模型的压缩。主要包括两个创新点:对Transformer的参数进行蒸馏,需要同时注意embedding,attention_weight, 过完全连接层之后的hidden,以及最后的logits。对于预训练语言模型,要分为pretrain_model 蒸馏以及task-specific蒸馏。分别学习pretrain模型的初始参数以便给压缩模型的参数一个好的初始化,第二步学习pretrain model fine-tuning的logits让原创 2022-05-22 16:58:39 · 1057 阅读 · 0 评论 -
【调参Tricks】WhiteningBERT: An Easy Unsupervised Sentence Embedding Approach
总述该文主要介绍了三种使用BERT做Sentence Embedding的小Trick,分别为:应该使用所有token embedding的average作为句子表示,而非只使用[CLS]对应位置的表示。在BERT中应该使用多层的句向量叠加,而非只使用最后一层。在通过余弦相似度做句子相似度判定的时候,可以使用Whitening操作来统一sentence embedding的向量分布,从而可以获得更好的句子表示。模型文中介绍的前两点均不涉及到模型,只有第三点Whitening操作可以做简要介绍原创 2022-05-21 23:16:23 · 514 阅读 · 2 评论 -
ERNIE1.0 与 ERNIE2.0 论文解读
总述本文主要介绍百度发布的ERNIE1.0模型与ERNIE2.0模型。1. ERNIE1.0 Enhanced Representation through Knowledge IntegrationMotivationBERT那种预测随机mask的方式忽略了句子中的实体信息以及实体与实体之间的关系(即外界的知识)。Model模型的训练分为三个阶段,每个阶段使用不同的mask策略,分别为随机mask, 随机mask句子中的某些短语,以及随机mask句子中的实体。在预训练的过程中,使得模型来预测原创 2022-05-20 00:45:10 · 1283 阅读 · 0 评论 -
【信息检索导论】第六章 词项权重及向量空间模型
1. 总述本章主要介绍一下几个问题:给定关键词,如何评定包含这些关键词的文档中哪些更重要,即如何给文档进行相关性排序tf-idf算法是什么? 怎样给文档中的词项进行打分?支配了IR界几十年的空间向量模型是什么?他存在什么缺点?2. 参数索引及域索引本节以一个简单的例子介绍如何给文档进行排序。元数据(metadata):一个文档固定有的字段,并且该字段取值范围是有限的,如文档的创建时间,创建者,文档类型等。文本域(zone): 一个文档的某些字段,并且该字段的取值范围是无限的,如文档标题,原创 2022-02-06 15:13:59 · 1665 阅读 · 0 评论 -
【信息检索导论】第三章 容错式检索
总览本章主要解决以下几个问题:根据用户的询问,如何找到用户询问中的词语对应的倒排表?如果用户不记得某个单词怎么拼写,如何实现模糊查询(通配符查询)?如果用户写错了某个字, 怎么样帮助他纠正,以便返回用户真正想查询的单词?以上问题分别对应下面的三小节。3.1 检索词项字典前言:在前两章中,我们进行布尔查询都是直接默认根据用户查询的词项,就直接获取到了他的倒排表。但实际上,我们需要首先在词项词典中找到对应的词项,才能返回该词项对应的倒排表。对用户的query进行分词后,获取到待查询词项,我们首原创 2022-01-28 17:01:51 · 1624 阅读 · 0 评论 -
【信息检索导论】第二章 词项词典与倒排记录表
总览本章介绍的较为琐碎,因为书中提及了很多实际应用中的具体困难,而这些困难书中也并未提及解决方案,一般是凭经验去权衡。其内容主要还是围绕倒排表进行讲述的,讲述重点有两个。一是如何从文本中抽取词条,涉及到分词,以及词语的归一化问题(2.2), 二是如何高效的进行检索,即倒排表如何快速合并,考虑连续的二元组该如何查询等(2.3, 2.4)2.1 文档分析与编码转换编码转换:主要介绍文档的解码问题,用UTF-8还是其他编码,以及不同平台间的文档的解码问题。索引粒度(index granularity):原创 2022-01-27 15:23:22 · 1579 阅读 · 0 评论 -
【BERT,GPT+KG调研】Pretrain model融合knowledge的论文集锦
总述: 本文调研近年来bert与knowledge的融合的工作, 对于每一篇工作, 大概的介绍他们融合knowledge的方式, 并且进行自己的点评。文章列表:1.Align, Mask and Select: A Simple Method for Incorporating Commonsense Knowledge into Language Representation Models arxiv 2019主要目标: 把struct knowledge融合到bert的参数当中,...原创 2021-04-26 10:43:16 · 2831 阅读 · 0 评论 -
Subword三大算法原理:BPE、WordPiece、ULM
前言Subword算法如今已经成为了一个重要的NLP模型性能提升方法。自从2018年BERT横空出世横扫NLP界各大排行榜之后,各路预训练语言模型如同雨后春笋般涌现,其中Subword算法在其中已经成为标配。所以作为NLP界从业者,有必要了解下Subword算法的原理。目录与传统空格分隔tokenization技术的对比 Byte Pair Encoding WordPiece Unigram Language Model 总结1. 与传统空格分隔tokenization技术的对比转载 2020-09-18 22:35:34 · 1185 阅读 · 1 评论 -
【MEDICAL】Attend to Medical Ontologies: Content Selection for Clinical Abstractive Summarization
任务: 据作者说,英文的医疗影像报告同时具有两个描述,一个是FINDINGS,阐述了整个图像的细节与特点,还有一个是IMPRESSION,只重点描述图像中的关键信息,这些关键信息是包含在FINDINGS里面的。总之,本篇论文做的就是利用这个FINDINGS来生成IMPRESSION,即在文本摘要在医疗领域的应用。模型: Content Selector:这个选择器采用序列标注的形式来实现,整个FINDINGS序列的每个词有0,1两种标注。如...原创 2020-06-19 10:59:03 · 391 阅读 · 0 评论 -
allennlp 中的TypeError: Object of type Tensor is not JSON serializable错误
错误展示:File "/home/yanshangyao/anaconda3/envs/torch14/bin/allennlp", line 8, in <module> sys.exit(run()) File "/home/yanshangyao/anaconda3/envs/torch14/lib/python3.7/site-packages/allennlp/run.py", line 18, in run main(prog="allennlp") F原创 2020-06-18 16:22:10 · 2060 阅读 · 0 评论 -
[NLU] DialogueGCN: A Graph Convolutional Neural Network for Emotion Recognition in Conversation
总述:最大的特色就是将GCN用在了对话情感识别上,这里的coversation可能是不止两个人的。然后故事写得很好,inter-dependency和intra-dependency还有self-dependency唬的我一愣一愣的。主要模型:inter-depencency intra-dependency所谓的inter-dependency其实就是说某一个speak对其他...原创 2019-11-19 00:20:43 · 2966 阅读 · 3 评论 -
[NLG] A Context-aware Natural Language Generator for Dialogue Systems
总述:16年的文章,感觉方法在现在看来已经很easy了,可见NLP领域的发展之迅速。文章主要讨论了如何将context 引入到当前生成的句子中,baseline和seq2seq attention做对比,作者采用了两种方式,一种将context直接简单的接到DA的前面,DA(dialog action就是一些键值对)。第二种就是将context单独encoder成一个向量,然后和DAenc...原创 2019-11-18 00:49:23 · 646 阅读 · 0 评论 -
[NLU] Enhancing Dialogue Symptom Diagnosis with Global Attention and Symptom Graph
总述:通过构造一种global attention的机制以及构造了symptom的图,提高了在医疗对话中,对于每一句话出现symptom的预测精度。以及提高了symptom inference(对于一种症状,病人是否有)的精度贡献:1.有一个开源的中文医疗对话数据集,大约两千多个对话,标注了BIO,做了symptom normalization。有四种病,大约162中症状2.结合了...原创 2019-11-16 17:21:31 · 781 阅读 · 3 评论 -
[NLU] Extracting Symptoms and their Status from Clinical Conversations
总述:像是陈年玉米,又长又难嚼还没啥营养。大抵就是他收集了3K诊所问诊的录音,然后在每一段录音的基础上识别出问诊过程中涉及到了哪些症状,以及推断这些症状是否出现在病人身上。但是其实模型very simple,就是一个lstm+CRF做tag的任务QAQ,不过实验室做了挺多的,类似于transformer的encoder和lstm的encoder,还有加权和不加权的eval metric, ...原创 2019-11-14 11:44:57 · 452 阅读 · 0 评论 -
[NLG]A Working Memory Model for Task-oriented Dialog Response Generation
总述:memNN常用于在对话中引入KB的知识,然而之前的工作大多数把dialogue history和KB的memory混在一起,作者借鉴了心理学的研究。有个work memory(类似于电脑内存的感觉)可以和两个记忆做交互,一个知识记忆(semantic memory),一个历史记忆(episodic memory).然后作者就设计了一个模型,将对话历史作为历史记忆,将KB结构化知识作为知识...原创 2019-11-11 12:41:58 · 689 阅读 · 1 评论 -
[NLU] Improving Multi-turn Dialogue Modelling with Utterance ReWriter
总述: 主要是有一个utterance rewriter的机制,将一句话里面的省略和共指关系给找出来,然后形成一句新的话语,这样显示的声明一句话的省略部分和共指词可以提高对话系统的效果。具体来说对于task-oriented对话系统,提高了intention Precision(每一句话的意图检测),对于chitchat,提高了CPS:coversation-turns-persess...原创 2019-11-09 13:15:54 · 2104 阅读 · 0 评论 -
[NLG] Comparison of Diverse Decoding Methods from Conditional Language
总述:总体上是一篇survey,不过后面在基础模型上加了oversampling的改进,然后还对原来的clustering post decoding做了改进。重点在于介绍在conditional language model (就是通过前文预测下一个单词的模型,如GPT)下如何使句子的生成具有diverse(多样性)主要模型:1.首先介绍了贪心编码(arg-max),每一次根据当前的...原创 2019-11-04 12:17:49 · 328 阅读 · 0 评论 -
[NLG] Domain Adaptive Dialog Generation via Meta Learning
总述:这篇文章貌似就是把end2end模式的dialogue system套了一层maml的更新方式,然后在few-shot领域上的效果比之前赵天成的ZSDG效果要好。感觉思路很清新也很简单,不知道是不是我没看懂QAQ总之要看懂这篇论文,首先得看下Sequicity和 MaMl模型: 首先介绍一下maml的主要思想:maml就是说有多个domain的数据a1,a2,a3...原创 2019-10-24 01:54:48 · 582 阅读 · 0 评论 -
[DM]Sequicity: Simplifying Task-oriented Dialogue Systems with Single Sequence-to-Sequence Architect
总述:这篇文章的主要特色在于生成dialogue believes,也就是作者所谓的belief span,在对话管理模块中,一般都需要首先对一句话的belief进行分类(就是一些slot-value对,一般来说分为两种类型,一种informable类型的,要告诉用户某一些具体信息,一种requestable类型的,需要记住用户需要什么。对于某一个informable类型比如说餐馆风味,有很多...原创 2019-10-20 01:02:04 · 818 阅读 · 0 评论 -
[NLG]Few-Shot Dialogue Generation Without Annotated Data: A Transfer Learning Approach
总述: 我觉得这篇论文的主要亮点就是不要标注数据。之前赵天成的zero-shot虽然很惊艳,但是迫于每一句话都需要标注dialogu action,所以应用性不强。这篇论文就是结合了赵天成之前的两篇工作,第一个zero-shot,第二个laed(用于在大规模数据中学习找到对话潜在的latent action)。然后作者就认为,在大规模无标签对话中用laed学习可以学到隐式的dialog ac...原创 2019-10-19 16:10:27 · 541 阅读 · 0 评论 -
[NLG] Pretraining for Conditional Generation with Pseudo Self Attention
摘要: 这篇文章的主要idea就是如何用现在已经有的语言模型,稍微引导一下生成基于某些条件的话语。如给个情感,生成一个带情感的句子。作者在GPT2的结构上稍微修改了self-attention机制,命名为Pseudo-Self,在decoder的时候引入外部控制,并且这样做能够尽量小的影响GPT2之前的训练参数,达到的很好的效果。模型:作者主要对比了前面两种工作,关于这两种工作...原创 2019-10-17 01:19:42 · 574 阅读 · 0 评论 -
[NLG]Unsupervised Discrete Sentence Representation Learning for Interpretable Neural Dialog Generat
看这篇paper看的自闭了。作者用了太多操作了。。。摘要: 作者的意思应该是要在一些无监督的语句中学会一些可解释的离散的laent action,然后用这些laent action指导对话的生成。什么叫可解释呢,我觉得这篇论文的意思就是,这个latent(意图,动作,相当于slot-value对)和这一句对话有直接的关系。然后作者就用了两个新的模型,实际上就是魔改了VAE(看的我脑阔痛)...原创 2019-10-15 01:51:58 · 490 阅读 · 1 评论 -
[NLG] Zero-Shot Dialog Generation with Cross-Domain Latent Actions
摘要: 简单来说,就是实现了对话生成的zero shot(零次学习)。首先在一些source domain当中学习一些domain的基本描述,希望学到的这些基本描述能够用于target domain的对话生成,其中source domain的领域和target domain完全不一样。但是属性是共同的。主要工作: 1.提出来一种新的抽取domain 属性和描述的方法:seed...原创 2019-10-13 02:00:05 · 665 阅读 · 0 评论 -
[NLG]GECOR: An End-to-End Generative Ellipsis and Co-reference Resolution Model for Task-Oriented Di
摘要: 之前还没有人做过multi-turn dialogue的有关省略和共指词汇的研究,只有短文本恢复省略词汇的研究。本文作者通过构造一个数据集(数据集中将dialogue的省略词和共指词都标记了出来),然后结合attention和copynet提出了一个end2end的multi-task学习框架。学习在结合上文的情况下,如何生成省略词和共指词。并且EM,BLEU,F1的效果不错。主...原创 2019-10-10 15:26:55 · 857 阅读 · 0 评论 -
[NLG]Do Neural Dialog Systems Use the Conversation History Effectively? An Empirical Study?
摘要: 为了发现对话历史是否真的被有效的利用了,本文介绍了10种干扰来评测对话历史是否真正被利用。发现transformer-seq2seq 和rnn seq2seq并没有很好地利用这些信息主要工作: 首先有一个前提:如果模型对于对话历史的改变不敏感的话,那么他基本上没有利用多少对话历史。 在之前的工作中已经发现:1.lstm的作用范围只被周围的大约150个词所...原创 2019-10-09 01:21:46 · 484 阅读 · 0 评论 -
通俗解释NLP任务四种评价指标(BLEU,METOR,ROUGH,CIDEr)
BLEU:所谓BLEU,最开始是用于机器翻译中。他的思想其实很native,对于一个给定的句子,有标准译文S1,还有一个神经网络翻译的句子S2。BLEU的思想就是对于出现机器翻译S2的所有短语,看有多少个短语出现在S1中,然后算一下这个比率就是BLEU的分数了。首先根据n-gram划分一个短语包含单词的数量,有BLEU-1,BLEU-2,BLEU-3,BLEU-4。分别就是把文章划分成长度为1...原创 2019-08-22 15:04:20 · 24353 阅读 · 2 评论 -
【Pytorch-NLP实战系列】:Seq2Seq训练输出反义词(不到百行代码)
总述:用RNN编码解码机制训练一个输出反义词的模型,目的在于熟悉pytorch的使用,代码中有新手不太懂的函数都引用了博客,请放心食用。千言万语皆在代码中:#coding=utf-8import numpy as npimport torchimport torch.nn as nnfrom torch.autograd import Variablechar_arr ...原创 2019-03-22 11:08:58 · 1288 阅读 · 0 评论 -
AttributeError: 'Word2Vec' object has no attribute 'index2word'
在 Gensim 升到1.0.0 版本后,改变了一些包.需要用model.wv.index2word来代替。其他的大部分情况类似,不能直接用model直接调用,需要model.wv来调用原创 2019-01-15 21:16:56 · 3658 阅读 · 2 评论 -
word2vec 如何获得当前的所有词向量表
使用函数:model.wv.index2word()废话不多说,我们来看代码,假设我们已经训练好了模型。from gensim.models.word2vec import Word2Vec import picklemodel = Word2Vec.load('./all_data/WORD_MODEL') #WORD_MODEL是我已经生成的模型print(model....原创 2019-01-15 20:43:18 · 13324 阅读 · 3 评论