- 博客(612)
- 资源 (12)
- 问答 (4)
- 收藏
- 关注
转载 NLP学习—24.Pre-trained Word Embedding—ELMO、GPT、Bert
文章目录引言一、ELMO1.ELMO预训练后的使用2.ELMO的优点与缺点3.ELMO把三种不同的向量叠加的意义二、GPT1.GPT缺点(与Bert相比)三、Bert四、总结引言 预训练模型在NLP下游任务上非常重要。一、ELMO ELMO是"Embedding from Language Model"的简称,论文是《Deep Contextualized Word Representation》。在ELMO之前,word embedding 本质上是静态的表示方式,也就是在词向量训练之后每个单
2021-09-03 17:53:59
1170
原创 NLP学习—23.基于Transformer的机器翻译实战
文章目录 在Transformer的代码实现的基础上,采用机器翻译数据,进行基于Transformer的机器翻译实战—数据集代码链接。如果对您有帮助,麻烦点赞关注,这真的对我很重要!!!如果需要互关,请评论或者私信!...
2021-09-03 00:58:11
5146
3
翻译 NLP学习—22.Transformer的代码实现
文章目录引言一、准备工作二、背景介绍三、模型结构1.Encoder-Decoder结构2.Encoder and Decoder Stacks2.1 Encoder2.2 decoder3.Attention3.1self-attention3.2 Multi-Head Attention3.3 Attention在模型中的应用4.Feed-Forward5.Embeddings5.1 Positional Encoding6.完整模型四、模型训练五、Example引言 Transformer是如今几
2021-09-02 22:03:34
6539
5
原创 NLP学习—21.自注意力机制(Self-Attention)与Transformer详解
文章目录引言一、Structure of Transformers二、Encoder Structure三、Self-attention and multi-head self-attention1.Self-attention2.multi-head self-attention四、Residuals , Add and Layer-Normalization五、Decoder structure of Transformer六、Mask self-attention七、 Encoder-decoder
2021-09-02 14:07:49
13348
3
原创 NLP学习—20.WMD paper及代码
文章目录一、WMD流程简述二、算法的数学描述三、算法优化1.WCD low bound(词心距离)2. RWMD low bound(松弛WMD距离)3.剪枝四、优缺点五、代码实现六、应用场景From Word Embeddings To Document Distances一、WMD流程简述 WMD为衡量文本相似度的方法。使用WMD来计算两个文本D1,D2之间的相似度,计算流程如下:首先对两个文本去除停用词使用归一化BOW(词袋模型)方法来分别表示D1,D2使用word2vec e
2021-09-01 18:55:38
418
原创 NLP学习—19.检索式对话系统中的rank评估指标、rank技术(Point-wise/Pair-wise/List-wise)以及RankNet、LambdaRank、LambdaMART
文章目录引言一、rank 评估指标—MAP、NDCG二、Point-wise/Pair-wise/List-wise三、RF/GBDT/svm ranking四、RankNet五、LambdaRank/LambdaMART六、Context free Grammar七、CKY算法引言 在前面几部分我们学习了检索式对话系统的召回(recall),召回可以从海量数据中快速找到相似的Top K文本?一种是基于字符串的召回,比如:BM25+倒排索引;另一种是基于向量的召回,比如:HNSW、Annoy、SIF。
2021-09-01 15:51:49
1950
原创 NLP学习—18.Annoy、HNSW、KD tree以及多轮对话
文章目录引言一、Annoy1.Annoy实战二、HNSW三、KD tree1.Annoy与KD Tree比较四、Dialog Management(任务型多轮对话)引言 Annoy、HNSW、KD tree在工业界非常常用一、Annoy Annoy:Approximate Nearest Neighbors Oh Yeah。Annoy 是 Spotify 开源的高维空间求近似最近邻的库,在 Spotify使用它进行音乐推荐。 Annoy通过将海量数据建立成一个二叉树来使得每个数据查找时间复杂度是
2021-08-31 15:20:48
992
原创 NLP学习—17.基于BM25、tfidf和SIF的检索系统实现
文章目录一、Smooth Inverse Frequency(SIF)二、BM251.bm25源码实现三、基于BM25、tfidf和SIF的检索系统代码实现基于BM25、tfidf和SIF的检索系统实现数据集与代码链接一、Smooth Inverse Frequency(SIF) Smooth Inverse Frequency是一种基于向量的检索。在介绍SIF前,需要先理解平均词向量与TFIDF加权平均词向量。平均词向量就是将句子中所有词的word embedding相加取平均,得到的
2021-08-30 23:40:51
2012
3
原创 NLP学习—16.对话系统及信息检索技术
文章目录一、对话系统概述二、对话系统的分类及其对应得解决方案三、检索及倒排索引四、召回及重排五、倒排索引的空间优化方法—Variable Byte Compression六、倒排索引搜索算法—Weak and(WAND)七、检索系统的评价指标一、对话系统概述 对话系统在电商、银行等业务场景中应用很广。从框架方面,对话系统可以分为问答系统与多轮对话系统。二、对话系统的分类及其对应得解决方案 对话系统的分类如下:闲聊式对话系统目前,市面上闲聊机器人的解决方案baseline是基于seq2s
2021-08-30 17:27:32
1765
原创 NLP学习—15.多模态研究方向及在文本分类、文本生成的应用
文章目录一、多模态简介1.什么是多模态?2.多模态的技术点及典型应用二、在文本分类和文本生成中的应用一、多模态简介1.什么是多模态? 我们生活中的多模态指的是文字、文本、语音信号、图片信息、视频信息等这些模态以及更广泛的触觉、嗅觉等这些信号区都可以算作一种模态。目前在人工智能领域的多模态交互一般集中在文本、图像、视频、音频等信号的结合上面。 多模态学习(MMML),旨在通过机器学习的方法实现处理和理解多源模态信息的能力。目前比 较热门的研究方向是图像、视频、音频、语义之间的多模态学习。2.多模
2021-08-23 12:49:18
6395
2
原创 NLP学习—14.Pointer Generator Network(指针)及代码实现
文章目录一、为什么使用Pointer Network?二、Pointer Network的结构1.Pointer Network网络如何解决OOV问题三、如何通过结合Pointer Network处理语言生成?一、为什么使用Pointer Network? 传统的seq2seq模型是无法解决输出序列的词汇表会随着输入序列长度的改变而改变的问题的(解空间固定)。Pointer Network可以通过给输入序列的元素予一个指针,从而使得解空间不固定,可以解决OOV问题。总结来说,传统的seq2seq模型会
2021-08-23 00:11:17
2265
3
原创 NLP学习—13.Seq2eq在机器翻译中的实战(bleu指标的代码实现)
文章目录引言一、Seq2eq+Attention于机器翻译中的原理以及及attention的计算二、评价指标bleu1.bleu指标实现2.nltk中的bleu三、基于Seq2eq+Attention的机器翻译实战引言 利用PyTorch实现Seq2eq+Attention的模型,并且利用bleu评价指标评价语言生成的好坏。一、Seq2eq+Attention于机器翻译中的原理以及及attention的计算 在机器翻译中,输入是A语言,输出是B语言,A语言是Encoder的输入,B语言是Deco
2021-08-22 15:43:16
1582
2
原创 NLP学习—12.Seq2Seq模型与Attention机制
文章目录引言一、文本生成任务二、Seq2Seq讲解1.Seq2Seq模型存在问题三、Beam Search四、Seq2Seq+Attention机制引言 Seq2Seq模型用于文本生成。在这个模型基础上,加上Attention机制可以使得模型效果更好。一、文本生成任务 常见的文本生成任务有以下几种:Machine Translation(机器翻译)不同语言之间的转换Summarization(自动生成摘要)有两种方法论:抽取式摘要生成将原始文本中关键的句子、短语、关键单词抽
2021-08-21 15:06:12
1211
原创 NLP学习—11.实现基于PyTorch与LSTM的情感分类
文章目录一、文本情感分析简介二、文本情感分类任务1.基于情感词典的方法2.基于机器学习的方法三、PyTorch中LSTM介绍]四、基于PyTorch与LSTM的情感分类流程这节理论部分传送门:NLP学习—10.循环神经网络RNN及其变体LSTM、GRU、双向LSTM一、文本情感分析简介 利用算法来分析提取文本中表达的情感。 分析一个句子表达的好、中、坏等判断,高兴、悲伤、愤怒等情绪。如果能将这种文字转为情感的操作让计算机自动完成,就节省了大量的时间。对于目前的海量文本数据来说,这是很有必要
2021-08-20 17:33:04
6149
6
原创 NLP学习—10.循环神经网络RNN与LSTM、GRU、双向LSTM以及基于PyTorch的代码实现
文章目录一、为什么需要循环神经网络?二、RNN的原理三、RNN的类型四、RNN存在的问题五、LSTM/GRU六、Gated Recurrent Unit—GRU七、BI-LSTM八、Deep-BILSTM一、为什么需要循环神经网络? 虽然全连接神经网络理论上只要训练数据足够,给定特定的x,就能得到希望的y,但是全连接神经网络只能处理独立的输入,前一个输入和后一个输入是完全没有关系的。针对某些任务需要能够更好的处理序列的信息,即前面的输入和后面的输入是有关系的情况,此时,就需要用到循环神经网络RNN,该
2021-08-20 00:35:39
3879
2
原创 NLP学习—9.Resent网络详解
一、Resent网络理论部分 2015年,He等人采用残差网络(Residual Networks,ResNet)来解决梯度消失的问题。ResNet的主要特点是跨层连接,它通过引入捷径连接技术(shortcut connections)将输入跨层传递并与卷积的结果相加。在ResNet中只有一个池化层,它连接在最后一个卷积层后面。ResNet使得底层的网络能够得到充分训练,准确率也随着深度的加深而得到显著提升。将深度为152层的ResNet用于LSVRC-15的图像分类比赛中,它获得了第1名的成绩。在
2021-08-19 17:12:01
5477
3
原创 NLP学习—8.模型部署—Flask、Docker
文章目录一、Flask二、Docker一、Flask Flask起到模型封装的作用。做一个新的项目时,可以构建一个新的虚拟环境,构建虚拟环境的优点是:将该项目中独特使用的包构建在特定的环境中。下面总结一些conda命令# 查看虚拟环境conda env list# 进入虚拟环境conda activate 虚拟环境名# 退出虚拟环境conda deactivate# 安装Flaskpip install Flask 下面以一个实例来理解Flask,代码框架如下:其中,
2021-08-19 15:01:20
1136
原创 NLP学习—7.CNN与TextCNN
文章目录引言一、卷积神经网络概述二、卷积神经网络的结构1.卷积层1.1 Padding1.2 Stride1.3 多通道计算2.池化层三、卷积神经网络公式推导1.卷积层中的梯度计算2.max pooling中的梯度计算四、PyTorch中的卷积层引言 CNN能够提取图片或者文本中的特征。深度学习模型与传统的机器学习模型相比,会帮助我们自动提取特征。这个特征是不可解释的。CNN在自然语言处理当中,可以应用到Seq2Seq框架中的encoder部分。CNN既可以用于NLG,也可以用于NLU。一、卷积神经
2021-08-19 11:14:53
2119
原创 PyTorch学习—23.PyTorch的基本使用
文章目录一、 Basic Grammar and common functions1.Tensors and relation to numpy2. Tensor.view( )3.Tensor.squeeze( ) / Tensor.unsqueeze( )4.Variable( 过去式)5.CUDA SEMANTICS6.Gradient7.Using Gradient二、torch.nn.Module1.nn.Linear( )2.Activation Function3. nn.Conv2d三、Se
2021-08-18 17:48:31
365
原创 PyTorch学习—22.PyTorch中常见报错
本部分介绍一些PyTorch中常见的报错信息及其解决方法报错1:ValueError: num_samples should be a positive integer value, but got num_samples=0可能的原因:传入的Dataset中的len(self.data_info)==0,即传入该dataloader的dataset里没有数据解决方法:检查dataset中的路径,路径不对,读取不到数据。检查Dataset的__len__()函数为何输出为零报错2:
2021-08-18 10:54:21
2240
原创 PyTorch学习—21.GPU的使用
文章目录引言一、CPU与GPU二、torch.cuda常用方法三、PyTorch中多gpu运算的分发并行机制四、gpu模型加载中的常见报错引言 本节学习如何使用GPU进行加速模型运算,介绍Tensor和Module的to函数使用以及它们之间的差异,同时学习多GPU运算的分发并行机制。一、CPU与GPUCPU(Central Processing Unit, 中央处理器):主要包括控制器和运算器GPU(Graphics Processing Unit, 图形处理器):处理统一的,无依赖的大规模数据
2021-08-18 01:48:20
1176
1
原创 PyTorch学习—20.模型的微调(Finetune)
文章目录引言一、Transfer Learning & Model Finetune二、PyTorch中模型的Finetune引言 本节学习模型微调(Finetune)的方法,以及认识Transfer Learning(迁移学习)与Model Finetune之间的关系。一、Transfer Learning & Model Finetune Transfer Learning(迁移学习):机器学习分支,研究源域(source domain)的知识如何应用到目标域(target
2021-08-17 23:36:23
1081
原创 PyTorch学习—19.模型的加载与保存(序列化与反序列化)
文章目录一、序列化与反序列化二、PyTorch中的模型保存与加载方式1.模型保存2. 模型加载三、断点续训练一、序列化与反序列化 训练好的模型存储在内存中,内存中的数据不具备长久性存储的功能,所以,我们需要将模型从内存搬到硬盘中进行长久的存储,以备将来使用。这就是模型的保存与加载,也即序列化与反序列化。序列化指的是将内存中的对象保存到硬盘当中,以二进制序列的形式存储下来。反序列化指的是将硬盘当中的二进制序列反序列化的存储到内存中,得到对象,这样,我们就可以在内存中使用这个模型。序列化与反序列的目的是将
2021-08-17 22:25:11
2457
1
原创 PyTorch学习—18.标准化—Batch Normalization、Layer Normalizatoin、Instance Normalizatoin、Group Normalizatoin
文章目录引言一、Batch Normalization概念1. Batch Normalization的计算方式二、PyTorch中的Batch Normalization三、常见的Normalization方法1.Batch Normalization(BN)2.Layer Normalizatoin(LN)3.Instance Normalizatoin(IN)4.Group Normalizatoin(GN)四、总结引言 本节第一部分介绍深度学习中最重要的一个 Normalizatoin方法—B
2021-08-17 18:25:57
894
原创 PyTorch学习—17.正则化之weight_decay与dropout
文章目录一、正则化与偏差-方差分解二、pytorch中的L2正则项—weight decay(权值衰减)一、正则化与偏差-方差分解 正则化方法是机器学习(深度学习)中重要的方法,它目的在于减小方差。下面借助周志华老师西瓜书中的对于方差、偏差的定义来进行理解。 泛化误差可分解为:偏差、方差与噪声之和。偏差度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响噪声则表达了在当前任务上任何学
2021-08-17 14:31:59
2768
原创 PyTorch学习—16.PyTorch中hook函数
文章目录一、Hook函数概念二、四种Hook函数介绍1. Tensor.register_hook2. Module.register_forward_hook3.Module.register_forward_pre_hook4. Module.register_backward_hook一、Hook函数概念 Hook函数机制:不改变主体,实现额外功能,像一个挂件一样将功能挂到函数主体上。Hook函数与PyTorch中的动态图运算机制有关,因为在动态图计算,在运算结束后,中间变量是会被释放掉的,例如
2021-08-17 00:14:14
913
1
原创 PyTorch学习—15.PyTorch中TensorBoard的使用
文章目录一、TensorBoard简介与安装1.TensorBoard的运行机制2. TensorBoard安装二、TensorBoard的使用1.SummaryWriter一、TensorBoard简介与安装 TensorBoard是一种可视化工具。在训练过程中,我们要可视化训练过程,用来监控我们当前训练的训练状态。TensorBoard是TensorFlow中强大的可视化工具,但目前PyTorch已支持TensorBoard的使用,支持标量、图像、文本、音频、视频和Eembedding等多种数据可
2021-08-16 18:45:41
873
原创 PyTorch学习—14.PyTorch中的学习率调整策略
文章目录一、为什么要调整学习率二、PyTorch的六种学习率调整策略1.StepLR2.MultiStepLR3.ExponentialLR4.CosineAnnealingLR5.ReduceLRonPlateau6.LambdaLR三、学习率调整小结一、为什么要调整学习率 在参数更新的过程中,开始时学习率一般给的比较大,后期学习率会给的小一些。这样才会使得总的损失小一些。二、PyTorch的六种学习率调整策略 PyTorch的六种学习率调整策略都继承于class _LRScheduler(o
2021-08-16 15:16:59
768
1
为什么没有找到 add(int index, E element)这个方法
2022-04-11
java基础_为什么输入y仍然会跳出循环
2022-01-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人