![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
NLP
JL_Jessie
这个作者很懒,什么都没留下…
展开
-
损失函数
RankCrossEntropyLoss: 排序交叉熵损失class RankCrossEntropyLoss(nn.Module): """Creates a criterion that measures rank cross entropy loss.""" __constants__ = ['num_neg'] def __init__(self, num_neg: int = 1): """ :class:`RankCrossEnt.原创 2020-12-11 11:40:14 · 432 阅读 · 0 评论 -
sigmoid Vs softmax
在逻辑回归模型中,我们可以使用sigmoid进行二分类,也可以使用softmax进行多分类。但是这两个有什么区别呢?1. sigmoid functionF(xi)=11+exp(−xi)F(x_i) = \frac {1}{1+exp(-x_i)}F(xi)=1+exp(−xi)1sigmoid 函数是把输入单独转成0到1之间的输出properties of sigmoid functionsigmoid 函数返回一个真是的输出值sigmoid函数的一阶导数是非负数或者非正。(非原创 2020-12-11 11:03:44 · 209 阅读 · 0 评论 -
文本匹配模型-DSSM
这里主要实现的是基于表征文本匹配和基于交互的文本匹配模型。同时也对比了各个模型在wikiQA上的运行结果。1. 基于表征的文本匹配模型1.1 DSSM 模型1. 简介DSSM 模型是2013提出的 最早的基于表征的文本匹配方法,整体流程比较简单:首先基于bag-of-words得到文本的向量表征,再基于word-hashing方法进行降维,接着就是MLP,得到最终128维的文本embedding, 最后对两个文本emebdding 计算cosine相似度得到相似度分数。该模型也奠定了基于表征匹配原创 2020-12-10 17:35:34 · 1225 阅读 · 0 评论 -
SmiHash算法
1. SimHash与传统hash函数的区别传统hash算法只负责将原始内容尽量均匀随机映射为一个签名值,原理上仅相当于伪随机数产生算法。传统的hash算法产生的两个签名,如果原始内容相等,在一定概率下是相等的,如果不想等,除了说明原始内容不想等以外,不再提供任何信息,因为即使原始内容只是想差一个字节,所产生的签名也很可能差别很大。所以传统的Hash是无法在前面的维度上来衡量原内容的相似度,而SimHash本身属于一种局部敏感哈希算法,它产生的hash签名在一定程度上可以表征原内容的相似度。我们主要解决原创 2020-12-09 09:20:33 · 802 阅读 · 0 评论 -
论文阅读记录-关于文本嵌入表示
这里只是做一个简单的论文学习记录。Sentence levelbertbert讲解作者说用最后4层加和或者拼接作为句向量表示效果比较好,其实根据不同的任务可以尝试不同的组合方式。sentence- bert代码:sentence-transformers双塔模型的bert, 训练阶段直接通过拼接 (U, V, |U-V|)进行分类(softmax)-回归(cosine sim)-TripleLoss,对bert进行finetune, 预测阶段可以通过bert 直接得到句向量,然后计算原创 2020-11-29 22:28:14 · 412 阅读 · 1 评论 -
kenlm训练语言模型 及 NLP中中文字符预处理
step-1: 去除英文和标点符号step-2: 去除非中文和数字的step-3: 分词并且将数字改成大写 将句子用空格拼接起来import jiebaimport re def num_to_ch(num): """ 功能说明:将阿拉伯数字 ===> 转换成中文数字(适用于[0, 10000)之间的阿拉伯数字 ) """ if len(num) == 5: return '手机号' num = int(num) _MAPPING = (u'原创 2020-11-20 15:56:15 · 1819 阅读 · 0 评论 -
BM25算法Best Matching
BM25是信息检索领域用来计算query与文档相似度得分的经典算法.不同与TFIDF, BM25 的公式主要由三部分组成:query 中每个单词t与文档d之间的相关性单词t与query之间的相似性每个单词的权重BM25 带来的好处: BM25 vs TFIDFBM25公式BM25的一般公式: (计算query Q与某个文档之间的BM25 Score)Score(Q,d)=∑inWiR(qi,d) Score(Q, d) = \sum_{i}^n W_i R(q_i, d)Score(Q,原创 2020-10-20 22:17:43 · 382 阅读 · 0 评论 -
HNSW伪代码解释
HNSW 伪代码INSERT(hnsw, q, M, Mmax, efConstruction, mL): 插入新元素q.SEARCH_LAYER(q, ep, ef, lc) # 在第lc层查找距离q最近邻的ef个元素SELECT_NEIGHBORS_SAMPLE(q, C, M): 在候选点集合C中 选取距离q最近的M个元素.SELECT_NEIGHBORS_HEURISTIC(q, C, M, lc, extendCandidates, keepPrunedConnections): 探索式原创 2020-10-19 17:32:08 · 994 阅读 · 1 评论 -
Gensim进阶教程:训练word2vec与doc2vec模型
本篇是Gensim的进阶教程,主要介绍用于词向量见面的word2vec模型和用于长文本向量建模的doc2vec模型在Gensim中的实现。Word2VecWord2Vec并不是一个模型—它是2013年Mikolov开源的一款用于计算词向量的工具,关于word2vec更多的原理性的介绍,可以参考其他博客。在Gensim中实现word2vec模型非常简单。首先我们需要将原始的训练语料转化成一个sentence的迭代器,每一次迭代返回的sentence是一个word(utf-8)的列表:class MyS转载 2020-10-08 17:43:59 · 1112 阅读 · 0 评论 -
Gensim的简介
简介Gensim是一款开源的第三方Python工具包,用于从原始的非结构化的文本中,无监督地学习到文本隐层的主题向量表达。它支持包括TF-IDF,LSA,LDA,和word2vec在内的多种主题模型算法,支持流式训练,并提供了诸如相似度计算,信息检索等一些常用任务的API接口。基本概念语料Corpus: 一组原始文本的集合,用于无监督地训练文本主题的隐层结构,语料中不需要人工标注的附加信息。在Gensim中,Corpus通常是一个可迭代的对象(比如列表)。每次迭代返回一个可用于表达文本对象的稀疏转载 2020-10-08 17:18:22 · 2685 阅读 · 0 评论 -
如何讲解BERT
目录第一点: BERT 预训练词向量模型。Word2vec和GloveELMo 和 ULMFiTOpenAI 的GPT第二点: BERT构架在Transformer之上Transformer 里面的几个关键点: self-attention 机制 如何进行特征提取?第三点: BERT对文本编码处理(token embedding + positional embedding + segment e...原创 2019-12-07 18:59:39 · 957 阅读 · 0 评论 -
Bert pytorch 版本解读 之 Bert pretraining 中mask的实现
run_lm_finetuning.pytorch.bernoulli(input, out=None):从伯努利分布中抽取二元随机数(0或者1),输入中所有值必须在[0, 1]区间,输出张量的第i个元素值,将以输入张量的第i个概率值等于1。返回值将会是与输入相同大小的张量,每个值为0或1input(Tensor) - 输入为伯努利分布的概率值out(Tensor, optional...原创 2019-11-18 22:40:02 · 7203 阅读 · 0 评论 -
基于BERT的数据库的问答系统
一. 知识图谱的介绍详情请参考 知乎专栏1. 知识库与三元组“奥巴马出生在火奴鲁鲁。”, “姚明是中国人。”,“谢霆锋的爸爸是谢贤。”这些就是一条条知识,而把大量的知识汇聚起来就成为了知识库。我们可以在wiki百科,百度百科等百科全书查阅到大量的知识。然而,这些百科全书的知识组建形式是非结构化的自然语言,这样的组织方式很适合人们阅读但并不适合计算机去处理。为了方便计算机的处理和理解,我们...原创 2019-12-01 23:26:55 · 4718 阅读 · 3 评论 -
文本摘要的评测方法:Rouge-1, Rouge-2, Rouge-L, Rouge-S
关于RougeRouge(Recall-Oriented Understudy for Gisting Evaluation),是评估自动文摘以及机器翻译的一组指标,它通过将自动生成的摘要或翻译 与 一组参考摘要(通常是人工生成的)进行比较计算,得出相应的分值,以衡量自动生成的摘要或翻译与参考摘要之间的相似度。Rouge-1,Rouge-2, Rouge-NRouge-N 定义分母是参考...原创 2019-10-29 22:51:47 · 4196 阅读 · 4 评论 -
Bert系列
自从BERT发布以后, NLP领域基于BERT的改进也层出不穷。nlp_paper github的一个总结。下面是BERT系列论文阅读计划, 有些之前做过笔记,就会直接贴过来连接。BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding - (NAACL 2019)ERNIE 2.0: A Continual Pre-training Framework for Language Understa原创 2020-09-01 22:28:03 · 359 阅读 · 0 评论 -
NLP论文笔记:Reformer
Reformer:一个高效的 Transformer 图解 Reformer对Reformer的深入解读花式attention Transformer转载 2020-08-28 18:23:17 · 566 阅读 · 0 评论 -
NLP论文笔记:Compressive Transformers
这篇是DeepMind基于ttransformer-XL 扩展的方法,通过压缩memory 使得模型可以处理更长的序列 可长达一个本书。同时他们 在一个目标匹配任务上发现 该算法可以有效地模拟高频语音,并可作为RL的记忆机制。论文的另外一个贡献是提出一个基于Project Gutenberg 书的长序列的benchmark PG-19 这个序列是目前语言模型的长度的两倍,并且也包含更长的上下文信息。...原创 2020-08-23 19:52:59 · 1480 阅读 · 0 评论 -
Transformer 改进系列:incorporating long term context
incorporating long term context 多头自注意力学习 时间复杂度是关于序列长度的 o(n^2)的,这就意味着使用vanilla ttransformers 去快速处理长序列变得非常棘手。在过去的两年里,NLP社区已经开发出了一套真正的方法来对付这种有问题的复杂性,但是在这篇文章中,我们将集中讨论一些有前景的方法。Sparse TransformersAdaptive Span TransformersTransformer-XLCompressive Transfo原创 2020-08-22 13:45:34 · 1217 阅读 · 0 评论 -
NLP论文笔记:Adaptive Attention Span in Transformers
Transformer 时间复杂度和空间复杂度高 o(n^2) 是因为每一步 它都需要计算该步与之前的所有context的attention 信息。这就导致Transformer在序列长度上很难扩展,对于字符级别的语言模型来说上千个token的输入很常见,transformer就无法好好使用了。在扩展transformer 处理序列长度上 前面有2篇文章 Sparse Transformer 和 Transformer XL 分别从不同的角度来解决问题, Sparse Transformer 是通过原创 2020-08-22 13:33:12 · 4698 阅读 · 0 评论 -
NLP论文笔记:Transformer XL
参考:Transformer XL blogillustrated-transformer下图是一个注意力head 在一个token上的流程。Ai-Rfou. et将transformer 用在翻译上,提出来基于语言模型的transformer 改进。一个个移动预测下一个词,因为transformer 窗口大小是512,当预测513个词的时候 窗口移动到1-513,这样513 就可以利用1-512的信息来预测(但是窗口也只有这么大,无法建立segment之间的联系),而不是作为一个单独的开始(但是原创 2020-08-21 15:04:02 · 829 阅读 · 0 评论 -
NLP论文解读:Generating Long Sequences with Sparse Transformers
OpenAl提出了一种适用于文本、图像和语音的稀疏Transformer,将先前基于注意力机制的算法处理序列的长度提高了三十倍。对复杂高维度的数据分布进行估计一直是非监督学习领域的核心问题,特别是针对像文本、语音、图像等长程、相关性数据更使得这一领域充满了挑战。同时,对于复杂数据的建模也是非监督表示学习的关键所在。近年来,神经自回归模型在这一领域取得了一系列十分优秀进展,针对自然语言、原始音频和图像成功建模。这些方法将联合概率分布分解成了条件概率分布的乘积来解决。但由于数据中包含许多复杂、长程的依赖性并转载 2020-08-20 17:37:54 · 5840 阅读 · 1 评论 -
attention 系列
转自:attention 总结Attention是一种用于提升基于RNN(LSTM或GRU)的Encoder + Decoder模型的效果的的机制(Mechanism),一般称为Attention Mechanism。Attention Mechanism目前非常流行,广泛应用于机器翻译、语音识别、图像标注(Image Caption)等很多领域,之所以它这么受欢迎,是因为Attention给模型赋予了区分辨别的能力,例如,在机器翻译、语音识别应用中,为句子中的每个词赋予不同的权重,使神经网络模型的学习变转载 2020-08-17 15:57:44 · 462 阅读 · 0 评论 -
NLP论文笔记:Easy Data Augmentation Techniques for Boosting Performance on Text Classification Task
EDA 文中提到了4种数据增强技术 用于文本分类任务,并用了2种常用的文本分类的深度学习模型在5个benchmark上跑了一下分类(5个banckmark: SST-2, CR, SUBG, TREC, PR), 在跑模型的时候作者将训练集分为3种规模大小 从而比较EDA技术在训练数据集规模上的影响。4种数据增强技术:同义词替换随机插入随机交换随机删除5个banckmark:SST-2CRSUBGTRECPR (Pro-Con)训练集3个种数据集规模:5002000原创 2020-08-10 15:37:05 · 824 阅读 · 0 评论 -
NLP论文笔记:From Word Embeddings To Document Distances
From Word Embeddings To Document Distancesfrom word embeddings to document distances文本相似度EMD 陆地移动距离功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出原创 2020-08-09 20:31:19 · 473 阅读 · 0 评论 -
NLP中的数据增强技术综述
原文:A visual Survey of Data Augmentation for NLP导读:深度学习视觉领域的增强方法可以很大程度上提高模型的表现,并减少数据的依赖,而NLP上做数据增强不像在图像上那么方便,但还是有一些方法的。与计算机视觉中使用图像进行数据增强不同,NLP中文本数据增强是非常罕见的。这是因为图像的一些简单操作,如将图像旋转或将其转换为灰度,并不会改变其语义。语义不变变换的存在使增强成为计算机视觉研究中的一个重要工具。我很好奇是否有人尝试开发NLP的增强技术,并研究了现有的翻译 2020-08-07 23:17:29 · 1416 阅读 · 0 评论 -
权重衰减 vs L2正则
避免过拟合的方法有很多:early stopping、数据集扩增(Data augmentation)、正则化(Regularization)包括L1、L2(L2 regularization也叫weight decay),dropout。这里重点讲解 L2正则 和weight decay 的区别:在训练神经网络的时候,由于Adam有着收敛快的特点被广泛使用。但是在很多数据集上的最好效果还是用SGD with Momentum细调出来的。可见Adam的泛化性并不如SGD with Momentum。在这原创 2020-08-04 16:46:48 · 2049 阅读 · 1 评论 -
NLP-5:XLNET
可以参考:xlnet原创 2020-02-22 22:14:33 · 1620 阅读 · 0 评论 -
NLP-4:ALBERT
目录回顾BERT1. 降低模型参数2. 改进NSP任务为SOP3. 去掉dropout4. 增加训练数据总结最近在家听贪心学院的NLP直播课。放到博客上作为NLP 课程的简单的梳理。简介:虽然BERT模型本身是很有效的,但这种有效性依赖于大量的模型参数,所以训练一套BERT模型所需要的时间和资源成本是非常大的,甚至这样复杂的模型也会影响最终效果。在本次讲座里,我们重点来介绍一种瘦身版的重磅BE...原创 2020-02-20 21:20:49 · 556 阅读 · 0 评论 -
NLP-3:从Transformer 到 BERT
目录1. Review ELMo and Transformer2. Bert2.1 Bert Structure2.2 Training Tips2.3 Applications3. Anti-Bert4. Recap最近在家听贪心学院的NLP直播课。放到博客上作为NLP 课程的简单的梳理。简介:在18年年底的时候,有一件事情轰动了整个NLP界,它就是大家所熟悉的BERT模型,它刷新了整个文...原创 2020-02-19 21:45:40 · 1013 阅读 · 0 评论 -
NLP-2:Attention && Transformer
目录1. Seq2seq2. Transformer3. Self-Attention 机制详解4. Positional Encoding5. Layer Normalization6. Transformer Encoder 与 Decoder7. 总结Others最近在家听贪心学院的NLP直播课。都是比较基础的内容。放到博客上作为NLP 课程的简单的梳理。简介: ELMo等基于深度学习的...原创 2020-02-17 22:46:42 · 1619 阅读 · 0 评论 -
NLP-1:词向量与Elmo
最近在家听贪心学院的NLP直播课。都是比较基础的内容。放到博客上作为NLP 课程的简单的梳理。Elmo 是2018年提出的论文 《Deep contextualized word representtations》,在这篇论文中提出了很重要的思想Elmo,Elmo 是一种基于特征的语言模型,用预训练的语言模型,生成更好的特征。Elmo是一种新型深度语境化词表征,可对词进行复杂特征(如句法和语义...原创 2020-02-15 23:13:02 · 1009 阅读 · 3 评论 -
概率图模型
本文主要讲解NLP 标注模型 涉及到的概率图模型算法. 可用于序列标注问题的概率图模型有 HMM, MEMM, CRF.首先, 统计机器学习所有的模型的工作流程大部分都遵循训练模型参数, 得到模型预测给定的测试数据.一. 基础知识1. 概率图模型在统计概率图中, 参考宗成庆老师的书, 是这样的体系结构在概率图模型中,数据(样本)由G=(V,E)建模表示:V 表示节点,即随机变...原创 2020-02-09 15:02:58 · 356 阅读 · 0 评论 -
XLNET-2
XLNET 这一篇讲的太好了XLNET 解读自回归语言模型(Autoregression LM)在ELMO/BERT出来之前,大家通常讲的语言模型其实是根据上文内容预测下一个可能跟随的单词,就是常说的自左向右的语言模型任务,或者反过来也行,就是根据下文预测前面的单词,这种类型的LM被称为自回归语言模型。GPT 就是典型的自回归语言模型。ELMO尽管看上去利用了上文,也利用了下文,但是本质上仍然...转载 2019-11-06 22:15:51 · 163 阅读 · 0 评论 -
文本分类 之 基于BertForSequenceClassification模型的金融知道 最佳答案推荐
金融知道 最佳答案推荐本项目是基于 hunggingface transformer 中BertForSequenceClassification, 利用BERT中文预训练模型,进行金融知道 最佳问答的 模型训练.该模型可应用场景: 金融问答系统/论坛等 根据已有的答复, 推荐与问题最匹配的答案.BERT 中文预训练模型和数据集可以从百度云盘下载链接: 预训练模型和数据提取码: 8d...原创 2019-10-18 06:45:06 · 17561 阅读 · 6 评论 -
文本分类之 residual-connection+selfAttention的词向量平均模型
这是一个文本分类的系列专题,将采用不同的方法有简单到复杂实现文本分类。使用Stanford sentiment treebank 电影评论数据集 (Socher et al. 2013). 数据集可以从这里下载链接:数据集提取码:yeqw代码请参考:文本分类 和博客code一致文本分类 之 self attention 机制在前面 word average model 和 word ...原创 2019-10-17 11:30:56 · 357 阅读 · 0 评论 -
文本分类 之 带有selfAttention的词向量平均模型
这是一个文本分类的系列专题,将采用不同的方法有简单到复杂实现文本分类。使用Stanford sentiment treebank 电影评论数据集 (Socher et al. 2013). 数据集可以从这里下载链接:数据集提取码:yeqw代码请参考:文本分类文本分类 之 self attention 机制在前面 word average model 和 word average wit...原创 2019-10-17 11:25:51 · 548 阅读 · 0 评论 -
文本分类 之 有Attention的词向量平均模型 Word Average Model with Attention
这是一个文本分类的系列专题,将采用不同的方法有简单到复杂实现文本分类。使用Stanford sentiment treebank 电影评论数据集 (Socher et al. 2013). 数据集可以从这里下载链接:数据集提取码:yeqw本文的方法是在WordAverageModel的基础上加上Attention 机制有Attention的词向量平均模型 Word Average Mod...原创 2019-10-14 20:27:09 · 1260 阅读 · 1 评论 -
文本分类 之 词向量平均模型 Word Average Model
这是一个文本分类的系列专题,将采用不同的方法有简单到复杂实现文本分类。使用Stanford sentiment treebank 电影评论数据集 (Socher et al. 2013). 数据集可以从这里下载链接:https://pan.baidu.com/s/1Y3PTjDaWSH28lLdHRkF7VQ提取码:yeqw第一个最简单的模型: 词向量平均模型(Word Average ...原创 2019-10-14 20:18:16 · 3712 阅读 · 0 评论 -
语言模型
语言模型就是用来计算一个句子的概率,也就是判断一句话是否是人话的概率。语言模型计算给定句子(词语序列): S=W1,W2,W3...Wk S = W_1,W_2, W_3...W_kS=W1,W2,W3...Wk它的概率为: P(S)=P(W1,W2,..Wk)=p(W1)P(W2∣W1)..p(Wk∣W1,W2....Wk−1) P(S) = P(W_1,W_2,..W_k) ...原创 2019-09-25 22:07:25 · 252 阅读 · 0 评论 -
解读pytorch_transformer examples之 run_squad.py
基于Bert预训练模型的SQuAD 问答系统step-1 运行example参考huggingface的 pytorch_transformer 下载并运行 example run_squad.py运行参数:python run_squad.py --model_type bert --model_name_or_path bert-base-uncased --do_trai...原创 2019-09-25 22:21:21 · 3763 阅读 · 3 评论