31. PET 论文笔记
31. PET 论文笔记来自 Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference.
开源代码地址 pet.
Abstract一些NLP任务能用无监督学习的样式解决,通过采用自然语言里“任务描述”的预训练语言模型。尽管这种方法不如监督学习表现,作者展示了在这项工作两点想法的结合:
PET: Pattern-Exploiting Training, 用半监督学习方法将输入样本设计成完形填空样式词组来帮助语言模型理解指定任务。这些词组然后被用来对大量未标注的样本分配软标签。
最后,在训练集上用标准监督学习。
对几个任务和语言,PET表现比监督序列和低资源的强半监督方法都要优秀。
1. Introduction例如下面3局话,想象下如果知道T1和T2的标签是l, l^\prime,接下来,就可以推出T3的标签应该是l^\prime。
这证明对于语言,如果有一个任务描述,解决小样本分类能简单很多。
tips: task description:就是一段文本,用 ...
25. NEZHA 论文笔记
25. NEZHA 论文笔记本文是NEZHA: NEURAL CONTEXTUALIZED REPRESENTATION FOR CHINESE LANGUAGE UNDERSTANDING的笔记。
摘要预训练语言模型已经在大量NLU任务上取得巨大成功,这要归功于其在大规模语料上预训练获取的深层上下文信息的能力。本文提出了作者预训练语言模型NEZHA(NEural contextualiZed representation for CHinese lAnguage understanding),其在中文语料上训练然后为中文NLU任务微调。当前版本的NEZHA基于BERT,使用了4项改进措施。包括:
Functional Relative Positional Encoding 作为有效的位置编码方案
Whole Word Masking 掩码策略
Mixed Precision Training 混合精度训练
LAMB Optimizer 优化器
实验结果表明NEZHA在以下中文任务上微调后取得了最佳的表现:
命名实体识别(People’s Daily NER)
句子匹配(LC ...
24. ALBERT 论文笔记
24. ALBERT 论文笔记本文是ALBERT: A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS 论文笔记。
来自于:
Google Research
Toyota Technological Institute at Chicago
摘要当预训练语言模型表征时提升模型size通常会提升在下游任务的性能。然而,模型越大,GPU、TPU显存消耗越大,训练时间越长。为了处理这些问题,本文使用了两项参数减少技术。还使用自监督loss,聚焦于建模句子内的连贯性,用多句子输入展示了其对下游任务有帮助。
Introduction两项参数减少技术:
Factorized embedding parameterization 分解嵌入参数:将原本的大的词汇embedding 矩阵分解为两个小的。
Cross-layer parameter sharing 跨层参数共享:防止参数随网络深度增加而增长
为了提升表现:
使用SOP——sentence-order prediction,而不是NSP。
3. ...
CS224W 3. Node Embeddings
3. Node Embeddings1. Recap: Traditioal ML for Graphs
传统的图机器学习:
给定一个输入图,抽取节点、边和图级别特征, 学习一个能将这些特征映射到标签的模型(像SVM, NN…)
这个抽取不同级别特征的过程,就是特征工程feature engineering
学习到模型后拿来预测就是具体的下游预测任务
1. Graph representation learning
图的表征学习:
目标:图机器学习的高效的任务无关特征学习。对于图,要抽取到任务无关的的特征,这样下游任务不同,也能用。
如上图,就是把节点u,拿函数f: u \to \mathbb{R}^d, 映射成向量v,\mathbf{v} \in \mathbb{R}^d. 这就是特征表示或者更具体地说embedding.
2. Why Embedding?
任务:映射节点到一个embedding 空间
节点间embeddings的相似性表示它们在网络中的相似性。如节点彼此接近(被同一条边连接),其embedding相似度要高。
编码网络信息
有潜力为许多下游任务做预测
...
CS224W 2. Traditional Methods for ML on Graphs
1. 机器学习任务
传统机器学习在图网络中的任务分为:
节点级别预测
边级别预测
图级别预测
传统机器学习中的Pipeline:
设计节点/边/图相应特征
从训练数据中获取特征
具体来说,就是用:
随机森林
SVM
NN等等
模型在给定新的节点/边/图的情况下用获得的特征来做预测。
在图上使用有效特征是模型取得好的表现的关键。传统ML pipeline使用手工设计的特征。本节,我们会回顾传统特征用来:
节点级别预测
边级别预测
图级别预测
简单来说,本节聚焦于无向图。
2. 图机器学习
目标是:对一系列对象做预测。
设计方案:
特征: d维的向量
对象: 节点、边、一系列节点、整张图
对象函数: 我们要解决什么任务?
例如,节点级别预测,
给定G = (V, E)
学习一个函数f: V \to \mathbb{R}
这样我们的问题就是怎样学到这个函数了,接下来会逐步阐述这个问题。
例如上面例子中,绿色的度为2,红色为1,那么我们就可以拿节点的度来做分类,这就是一个节点分类任务。这样我们可以看出机器学习需要特征。接下来我们看看到底有哪些节点特征?
3.节 ...
1. Introduction Machine Learning for Graphs
1. Introduction: Machine Learning for Graphs所有笔记参照于slide。
1. 无向图和有向图——有无方向(有无箭头)
2. 各种各样的图
图的表示G = (V, E, R, T).其中:
V:节点的集合v_i \in V.
E: 表示节点间关系(v_i, r, v_j) \in E,即这个三元组构成边,或者说边表示了这三者关系
T(v_I): 节点类型
关系类型r \in R
下面这两个例子就很清楚绘制了图网络是怎么表示各种节点、节点类型以及边代表的关系。如Causes, pub Year.
3. 节点的度
无向图: 直接看该节点的连接边数目,如上图中,A的度就是4. 平均的度等于所有节点的度的平均值,也等于边数的2倍除以节点数\frac{2E}{N}。
有向图:
对于节点:分为出度和入度,就看箭头指向,指向该节点是入度,从该节点出发是出度。上图中C的入度是2,出度是1.度为3。
对于图: 有向图平均度为\frac{E}{N},并且对于整个图来说,平均出度和入度应该相等。其用来: 衡量图的稠密性
注:
Source: 节点的 ...
2.Kaggle比赛 Optiver Realized Volatility Prediction
2.Kaggle比赛 Optiver Realized Volatility Prediction 11. 比赛数据解释举办方 Optiver 提供了一个notebook来介绍数据和股票交易数据Introduction to financial concepts and data。
这里只介绍给的几个公式:
BidAskSpread, 反映该股票流通性,
\text{BidAskSpread} = \text{BestOffer}/\text{BestBid} -1 \tag{1}
Weighted averaged price, 表示股票估值,
\text{WAP} = \frac{\text{BidPrice}_{1}*\text{AskSize}_{1} + \text{AskPrice}_{1}*\text{BidSize}_{1}}{\text{BidSize}_{1} + \text{AskSize}_{1}} \tag{2}
log returns, 计算该股票某个时间段的差值,
r_{t_1, t_2} = \log \left( \frac{S_{t_2 ...
3. LightAutoML 使用
3. LightAutoML 使用LightAutoML是2020年新开源的自动机器学习框架,适用于图表数据集的多种任务,如二分类、多分类以及回归任务。包括不同的特征:数字,类别,日期,文本等。安装非常简单一条命令pip install -U lightautoml。
本文是 LightAutoML vs Titanic: 80% accuracy in several lines of code简单翻译。代码完整链接。
拿Titanic数据集看看具体怎么使用,正题在第4部分,前面可以忽略。
Step 1: 导入包123456789101112131415# Standard python librariesimport osimport timeimport re# Installed librariesimport numpy as npimport pandas as pdfrom sklearn.metrics import accuracy_score, f1_scorefrom sklearn.model_selection import train_test_split# ...
2. XGboost 上:原理
2. XGboost 上:原理1. XGboost 目标函数XGboost的全称是eXtreme Gradient Boosting,它是经过优化的分布式梯度提升库,并且适合多平台和gpu计算。 XGBoost的目标函数由训练损失和正则项构成,定义如下:
\text{Obj}=\sum_{i=1}^{n} l\left(y_{i}, \hat{y}_{i}\right)+\sum_{k=1}^{K} \Omega\left(f_{k}\right) \tag{1}其中,\sum_{i=1}^{n} l\left(y_{i}, \hat{y}_{i}\right)是训练损失, \sum_{k=1}^{K} \Omega\left(f_{k}\right)是正则项。
这里,我们只要理解3个名词,1.训练损失,2. f_k所代表的的每颗树的函数表示, 3.每颗树的复杂度总和代表的正则项部分。
对于机器学习算法来说,任何模型预测值和真实值之间的差值要有一个衡量的指标——损失函数(loss function 或 cost function),这个差值可以通过损失函数计算得来的。拿什么做损 ...
1. 集成学习 bagging,boosting和stacking
集成学习 bagging,boosting和stacking集成学习是通过训练弱干个弱学习器,并通过一定的结合策略,从而形成一个强学习器。有时也被称为多分类器系统(multi-classifier system)、基于委员会的学习(committee-based learning)等。
集成学习先产生一组“个体学习器”(individual learner),再用某种策略将它们结合起来。通常来说,很多现有的学习算法都足以从训练数据中产生一个个体学习器。一般来说,我们会将这种由个体学习器集成的算法分为两类:
1.同质(homogeneous)的,即集成中仅包含同种类型的一个体学习器,像“决策树集成”中就仅包含决策树,“神经网络集成”中就全是神经网络。同质集成中的个体学习器又称为基学习器(base learner),相应的学习算法也被称为基学习算法(base learning algorithm)。
2.异质(heterogenous)的,相对同质,异质集成中的个体学习其就是由不同的学习算法生成的,这是,个体学习器就被称为组件学习器(component learner)。
其中用的比较多 ...