
深度学习
睡熊猛醒
千里之行,始于足下。
展开
-
几种改进的embedding方法
最近看论文的时候发现好几篇改进词向量的小论文,方法虽然不复杂但是都挺有意思的,可能在工业界的某些任务上有奇效,分享一下~1.平均加权词向量paper:https://arxiv.org/abs/2002.05606方法先,分别用word2vec和glove计算出各个单词的词向量,后将其归一化:其中,d代表word2vec或者glove词向量的尺寸d1或d2,w是word2vec或glove算法输出的单词的向量,表示归一化的单词向量。 然后将评论的评论向量r计算为标准化单词向量的平均值原创 2020-06-07 18:21:13 · 3106 阅读 · 0 评论 -
使用未标注数据训练BERT
说来惭愧,BERT等预训练模型用来做下游任务做了这么久了,居然一直不知道怎么用未标注数据训练它们,这里以BERT为例子介绍一下如何使用自己的未标注数据快速训练预训练模型。其实也很简单,BERT的github上面就有:https://github.com/google-research/bert分为两步,第一步:准备一个txt文件,这个文件就是你要训练BERT的自己的数据。训练的目的其实就是...原创 2020-04-18 12:40:53 · 3795 阅读 · 0 评论 -
FastBERT:具有自适应推断时间的自蒸馏BERT
FastBERT: a Self-distilling BERT with Adaptive Inference Time写在前面:这是北大+腾讯+北师大的ACL2020。作者提出了一种新的inference速度提升方式,sample-wise adaptive mechanism,相比单纯的student蒸馏有更高的确定性,且可以自行权衡效果与速度,简单实用。这篇论文的方法可以说就是为了...原创 2020-04-10 17:26:59 · 2721 阅读 · 2 评论 -
ERNIE的掩码机制代码解析
我们知道,相较于BERT,ERNIE最大的改进就是中文 + 短语/实体掩码(这个短语掩码的操作后来也被BERT采用训练出了WWM-BERT),所以我们首先来看看ERNIE的掩码机制是怎么样实现的。构建序列与标记分词边界信息这一步的输出是一个 txt 文件:每个样本由5个 ‘;’ 分隔的字段组成,数据格式:token_ids; sentence_type_ids; position_...原创 2019-12-22 21:33:31 · 1937 阅读 · 0 评论 -
ERNIE 2.0: A Continual Pre-Training Framework for Language Understanding 论文翻译
文前总结:ERNIE2.0的亮点:1.融合了持续学习(continual Learning)、多任务学习、知识引入等多种套路。2.构造的任务可以分为三类:1) word-aware tasks用于教模型捕捉词汇信息(lexical information);2) structure-aware task教模型捕捉句法信息(syntactic information);3) semant...翻译 2019-12-21 21:39:46 · 1625 阅读 · 0 评论 -
ERNIE: Enhanced Representation through Knowledge Integration(百度)论文翻译
paper:https://arxiv.org/pdf/1904.09223.pdfcode:https://github.com/PaddlePaddle/LARK/tree/develop/ERNIE文前总结ERNIE相比于BERT,做出了如下改进:1.mask策略。BERT只使用了字级别的随机masking,但是ERNIE使用了字、实体、短语三个级别的masking,旨在使模...翻译 2019-12-21 10:54:02 · 4254 阅读 · 0 评论 -
从离散到分布,盘点常见的文本表示方法
自然语言处理(NLP)的一些常见任务有:文本分类、指代消歧、自动摘要、机器翻译、主题识别等。传统的处理方法是基于规则的,现在更倾向于使用机器学习或深度学习的方法解决。那么如何在计算机中表达一段文本/一个词的意思呢?第一步必然是将这些语言特征转化为量化的表达方式。本篇文章总结一下NLP中常用的文本特征表示方式,并提供实际案例和代码实现,用于解决文本分类问题。1. 离散表示(Discrete Re...转载 2019-12-11 15:56:57 · 2389 阅读 · 1 评论 -
神经网络Batch size,Iteration,Epoch的理解
Batch size:一次放入模型训练的样本数,batch_size将影响到模型的优化程度和速度。为什么要有batch size:batch size的正确选择是为了在内存效率和内存容量之间寻找最佳平衡。相对于正常数据集,如果Batch_Size过小,训练数据就会非常难收敛,从而导致underfitting。增大Batch_Size,相对处理速度加快,所需内存容量增加(epoch的次数...原创 2019-10-14 10:35:14 · 1096 阅读 · 0 评论 -
Pytorch实现dot/mlp attention
国庆节疯玩了7天,感觉整个人已经成为一条咸鱼了,在上班前一晚把attention机制复习了一下,就当是收收心了(感到羞愧)。首先实现一些函数,称为attention_utils.pyimport numpy as npimport torchimport torch.nn.functional as Fdef create_src_lengths_mask(batch_size...原创 2019-10-07 21:59:16 · 3412 阅读 · 2 评论 -
秋招面试复习-自然语言处理
1.Word2Vec中skip-gram是什么,Negative Sampling怎么做word2vec通过学习文本然后用词向量的方式表征词的语义信息,然后使得语义相似的单词在嵌入式空间中的距离很近。Skip-gram是给定单词来预测上下文,CBOW就相反。Negative Sampling是对于给定的词,并生成负采样词集合的一种策略。已知有一个词,这个词可以看做一个正例,而它的上下文词集可以...原创 2019-08-03 22:50:29 · 428 阅读 · 0 评论 -
秋招面试复习——深度学习
1.BN(Batch Normalization)算法作用神经网络学习过程本质就是为了学习数据分布,一旦训练数据与测试数据的分布不同,那么网络的泛化能力也大大降低;另外一方面,一旦每批训练数据的分布各不相同(batch 梯度下降),那么网络就要在每次迭代都去学习适应不同的分布,这样将会大大降低网络的训练速度,这也正是为什么我们需要对数据都要做一个归一化预处理的原因。 BN的作用是通过规范化的手...原创 2019-07-29 23:51:37 · 799 阅读 · 2 评论