0%

机器学习评价指标-精确率和召回率(precision-recall)

信息检索中Precision就是检索出来的条目(比如:文档、网页等)有多少是准确的,Recall就是所有准确的条目有多少被检索出来了,衡量的检索系统的查全率。

  • True Positive(真正, TP):将正类预测为正类数.
  • True Negative(真负 , TN):将负类预测为负类数.
  • False Positive(假正, FP):将负类预测为正类数 → 误报 (Type I error).
  • False Negative(假负 , FN):将正类预测为负类数 → 漏报 (Type II error).

阅读全文 »

BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension

摘要

文章提出一个预训练sequence-to-sequence去噪自编码器BART。BART的训练主要由2个步骤组成:

  1. 使用任意噪声函数破坏文本
  2. 模型学习重建原始文本。

BERT and GPT

阅读全文 »

NLP中的语言表征(representations)

与CV一样,NLP也需要有效的表征(representation)去完成下游的任务,这些representation在NLP的叫法很多,比如embeddingsdistributed representation,但本质都是低维的(low-dimensional)dense的vectors。

一个好的语言表征,应该能包含着潜在的语法,常识,隐含着句法,语义等特征。与CV不一样的是,CV一般用一个vector去表示一张image,而NLP的一个vector则表示一个word,要么是non-contextual,要么是contextual

阅读全文 »

对比学习- contrastive learning

5YvE2F.png
  • 监督学习:技术相对成熟,但是对海量的数据进行标记需要花费大量的时间和资源。
  • 无监督学习:自主发现数据潜在的结构,节省时间以及硬件资源

无监督学习

思路:

自主地从大量数据中学习同类数据的相同特性,并将其编码为高级表征,再根据不同任务进行微调即可。

阅读全文 »

Transformer位置编码

不同于RNN、CNN等模型,对于Transformer模型来说,位置编码的加入是必不可少的,因为纯粹的Attention模块是无法捕捉输入顺序的,即无法区分不同位置的Token。为此我们大体有两个选择:

  1. 想办法将位置信息融入到输入中,这构成了绝对位置编码的一般做法;
  2. 想办法微调一下Attention结构,使得它有能力分辨不同位置的Token,这构成了相对位置编码的一般做法。

绝对位置编码

一般来说,绝对位置编码会加到输入中:在输入的第k个向量 $x_k$ 中加入位置向量 $p_k$变为$x_k + p_k $,其中 $p_k$ 只依赖于位置编号k。

训练式

直接将位置编码当作可训练参数,比如最大长度为512,编码维度为768,那么就初始化一个512×768 的矩阵作为位置向量,让它随着训练过程更新。现在的BERTGPT等模型所用的就是这种位置编码

阅读全文 »

从熵来看交叉熵损失

信息量

信息量来衡量一个事件的不确定性,一个事件发生的概率越大,不确定性越小,则其携带的信息量就越小

设 $X$ 是一个离散型随机变量,其取值为集合 $X = x_0,x_1,…,x_n$ ,则其概率分布函数为$p(x) = Pr(X=x),x\in X$,则定义事件$X = x_0$的信息量为
$$
I(x_0) = -log(p(x_0)) \tag{1}
$$
当$p(x_0)= 1$时,该事件必然发生,其信息量为0

阅读全文 »

迁移学习

什么迁移学习?

  • 心理学角度: 人们利用之前的经验和知识进行推理和学习的能力。

  • 机器学习角度:一个系统将别的领域中的知识应用到本领域的学习模式

    为什么要进行迁移学习?

  • 数据的标签很难获取

  • 从头建立模型是很复杂和耗时的

阅读全文 »

公式测试

$y= ax+b$

$$
\sum a_i
$$

$$
lim_{1\to+\infty}P(|\frac{1}{n}\sum_i^nX_i-\mu|<\epsilon)=1, i=1,…,n
$$

公式哪去了啊??

人生若只如初见

人生若只如初见,何事秋风悲画扇

此情可待成追忆,只是当时已惘然

Attention is all your need

序列编码

深度学习做$NLP$的方法,基本上都是先将句子分词,然后每个词转化为对应的词向量序列。这样一来,每个句子都对应的是一个矩阵 $X= (x_1,x_2,…,x_t)$, 其中$X_i$都代表着第$i$个词的词向量(行向量),维度为d维,故$X\in R^{n*d}$。这样的话,问题就变成了编码这些序列了。

RNN层

RNN方法很简单,采用递归式进行:
$$
y_t = f(y_{t-1},xt)
$$

不管是已经被广泛使用的LSTMGRU还是最近的SRU,都并未脱离这个递归框架。RNN结构本身比较简单,也很适合序列建模,

但RNN的明显缺点之一就是无法并行,因此速度较慢,这是递归的天然缺陷

阅读全文 »

非自回归 and 自回归(AR)

自回归模型

目前的序列预测模型通常都是自回归模型,即每一步的预测都依赖于之前的预测结果,如下图所示:

4fSs2Q.png

在基于RNN结构的序列预测模型中,隐状态需要逐步传递,因此难以进行各步间的并行计算,训练和测试的速度都较慢。

阅读全文 »

薛定谔方程

薛定谔方程:

描述粒子位置的概率分布随着时间如何变化

4crH1K.md.png


机器学习算法的好坏不仅取决于参数,而且很大程度上取决于各种超参数。

有关超参寻优有很多比较经典的方法:

  • 随机搜索(Random search)

  • 网格搜索(Grid search)

  • 贝叶斯优化(Bayesian optimization)

  • 强化学习(Reinforcement learning)

  • 进化算法(Evoluyionary Algorithm)
    这些方法统称为Hyperparameter optimization (HO),像Auto-sklearn和Auto-WEKA都是比较有名的HO框架。

阅读全文 »


  • 调研近年来关于文本生成预训练模型的工作(挖坑暂未填)
    • 微软:mass, unilm v1,v2,v3, prophetnet, MPNet, DEBERTa, COCO-LM, XNLG, FST, CMLM, SSR, POINTER, pretrain-LB
    • 北大:GLM
    • google:seq2seq pretrain, t5, pegasus
    • 百度:PLATO, ernie-gen, PLATO-2
    • 阿里:PALM
    • facebook:bart
    • stanford: TED
    • JD:reinstating-abs
阅读全文 »


  • 记录近年基于模板来完成任务重构的方法,这是一个比较有意思的方向,尤其是GPT3出现之后。 这类方法一般针对任务设计prompt,将样本和任务一起转换为自然语言形式的template,直接输入预训练语言模型预测出文本,间接的完成任务。prompt的构建一方面统一了下游任务和预训练任务的形式(语言模型)在few shot learning上能取得较好结果。主要阅读以下9篇论文:
    • 早期的将问题转为自然语言并使用预训练语言模型解答的:
      • (Harvard)Commonsense Knowledge Mining from Pretrained Models
      • (Heidelberg)Argumentative Relation Classification as Plausibility Ranking
      • (NVIDIA)Zero-shot Text Classification With Generative Language Models
    • PET方向,Pattern Exploiting Training
      • (LMU)Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference
      • (LMU)It’s Not Just Size That Matters: Small Language Models Are Also Few-Shot Learners
      • (UNC)Improving and Simplifying Pattern Exploiting Training
    • 自动构建prompt,Automatically Searching Prompts
      • (UCI,UCB)AUTOPROMPT: Eliciting Knowledge from Language Models with Automatically Generated Prompts
      • (Princeton, MIT)Making Pre-trained Language Models Better Few-shot Learners
      • (THU)GPT Understands, Too
阅读全文 »


  • 记录近年来关于编辑式seq2seq的方法,这类方法对于输入输出同语种且较小更改的任务(纠错、简化、摘要)有着高效率(部分自回归或非自回归解码)和less data hungry(输出词表小)的优势。
  • 主要阅读五篇论文,按照其在arxiv上发表时间排序:
    • (LevT, Facebook) Levenshtein Transformer
    • (华为) EditNTS: An Neural Programmer-Interpreter Model for Sentence Simplification through Explicit Editing
    • (LaserTagger, Google) Encode, Tag, Realize: High-Precision Text Editing
    • (PIE,印度理工) Parallel Iterative Edit Models for Local Sequence Transduction
    • (Google) Felix: Flexible Text Editing Through Tagging and Insertion
阅读全文 »

简单的梳理VC维。所有讨论基于二分类这一简单情况出发。

阅读全文 »

Jure Leskovec, Stanford CS224W: Machine Learning with Graphs学习笔记,未完待续

阅读全文 »

记录一下Fairseq当中对于CNN seq2seq,Transformer之类的并行解码模型,在推理阶段的增量解码处理。

阅读全文 »

翻译A Primer in BERTology: What we know about how BERT works一文,系统的介绍了近年来对于BERT可解释性以及扩展性方面的研究。
原论文arxiv pdf

阅读全文 »

跨年读论文。

  • 边池化
  • Discourse-Aware,抽取式摘要
  • Discourse-Aware,生成式摘要
  • 孪生BERT
  • 巨型Chatbot
阅读全文 »

记录 Hierarchical Latent Dirichlet Allocation,层次主题模型的学习笔记。
依然大量参考了徐亦达老师的教程。

阅读全文 »

知识图谱专辑

  • 跨语言知识图谱中的实体对齐
  • Knowledge Graph Language Model
  • 动态知识图谱对话生成
  • Graph2Seq
  • Graph Matching Network
  • 动态更新知识图谱
  • Attention-based Embeddings for Relation Prediction
阅读全文 »