Skip to content

自然语言处理领域下的对话语音领域,整理相关论文(附阅读笔记),复现模型以及数据处理等(代码含TensorFlow和PyTorch两版本)

License

Notifications You must be signed in to change notification settings

seafire1991/nlp-paper

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NLP-Paper

Blog Paper Support Stars Thanks PRs Welcome

更新一些在我学习过程中阅读过的且感觉不错的论文,对于一些经典或思路很新奇的论文,会进行精读,并写一些阅读笔记同步上传更新。(内容同步更新到知乎CSDN),论文按照时间顺序排放

注:

  • 文本相似度计算相关的复现代码以及工具包在这个仓库 ☞ Text-Similarity
  • 对话系统构建项目在这个仓库 ☞ Nlp-Dialogue
  • 对部分复现论文代码以及NLP其他工具代码放在这 ☞ paper-code

Contents | 内容

Summarize | 综述

Pretraining | 预训练

Model | 模型

Dialogue | 对话系统

Speech | 语音系统

Clustering | 聚类

  • Accelerating exact k-means algorithms with geometric reasoning | 阅读笔记:K-Means引入计算机中的那片论文,K-Means属于Partition-based methods,思想是初始化中心点,然后通过启发式算法,达到”类内的点都足够近,类间的点都足够远“的目标 | et al Dan Pelleg,1999

  • Mean Shift: A Robust Approach toward Feature Space Analysis | 阅读笔记:实现的方法是滑动窗口的算法,在每次迭代中,通过将中心点移动到窗口内所有点的平均值位置(因此得名),将滑动窗口中心移向密度较高的区域。滑动窗口内的密度与其内部的点数成正比。通过转换到窗口内点的平均值位置,窗口将逐渐移动到有着更高点密度的区域。优点:Mean-Shift的最大优势就是可以自动发现簇的数量而不需要人工选择;簇的中心向最大密度点聚合的事实也是非常令人满意的,因为它可被非常直观地理解并很自然地契合数据驱动;可以处理任意形状的簇类;算法只需设置半径这一个参数,半径影响数据集的核密度估计;算法结果稳定,不需要进行类似K均值的样本初始化;缺点:不足就是窗口大小/半径“r”的选择可能是非平凡的;半径设置的太小,收敛太慢,簇类个数过多;半径设置的太大,一些簇类可能会丢失。对于较大的特征空间,计算量非常大 | Dorin Comaniciu et al,2002

  • k-means++: The Advantages of Careful Seeding | 阅读笔记:原始K-Means(随机选择簇中心)对于初始化簇中心敏感,因此k-means++进行了改进,随机选择第一个初始中心点,计算其他点与该中心点的距离,按照距离远的以较大的概率被选中来选择第二个初始中心点,一次类推 | et al David Arthur,2006

  • Clustering by Passing Messages Between Data Points | 阅读笔记:其基本思想是将全部样本看作网络的节点,然后通过网络中各条边的消息传递计算出各样本的聚类中心。聚类过程中,共有两种消息在各节点间传递,分别是responsibility和availability 。AP算法通过迭代过程不断更新每一个点的吸引度和归属度值,直到产生m个高质量的Exemplar。优点是无需指定聚类“数量”参数;聚类中心点由实际的样本点中产生;初始值不敏感,且对距离矩阵的对称性没要求。AP通过输入相似度矩阵来启动算法,因此允许数据呈非对称,数据适用范围非常大,鲁棒性很好;误差低;缺点是AP聚类应用中需要手动指定Preference和Damping factor,这其实是原有的聚类“数量”控制的变体,且算法复杂度较高 | Brendan J. Frey et al,2007

  • A Tutorial on Spectral Clustering | 阅读笔记:不是原论文,但是这一篇对Spectral Clustering讲的非常好,谱聚类(Spectral Clustering),就是先用Laplacian eigenmaps对数据降维(简单地说,就是先将数据转换成邻接矩阵或相似性矩阵,再转换成Laplacian矩阵,再对Laplacian矩阵进行特征分解,把最小的K个特征向量排列在一起),然后再使用k-means完成聚类。谱聚类是个很好的方法,效果通常比k-means好,计算复杂度还低,这都要归功于降维的作用。优点:谱聚类只需要数据之间的相似度矩阵,因此对于处理稀疏数据的聚类很有效。这点传统聚类算法比如K-Means很难做到;由于使用了降维,因此在处理高维数据聚类时的复杂度比传统聚类算法好。缺点:如果最终聚类的维度非常高,则由于降维的幅度不够,谱聚类的运行速度和最后的聚类效果均不好;聚类效果依赖于相似矩阵,不同的相似矩阵得到的最终聚类效果可能很不同 | Ulrike von Luxburg et al,2007

  • Scalable K-Means++ | 阅读笔记:K-Means++由于它的采样策略,所以难以并行,限制了其用于大规模数据集上。为了解决这个问题,k-means II 改变取样策略(以oversampling的方式),初始化一个中心点,然后循环log(n)次,每次按照一个概率计算公式选择多个point加入到中心集,最后得到的候选中心集再通过k-means++对候选中心集进行聚类,选出k个簇中心 | Bahman Bahmani et al,2012

  • Approximate K-Means++ in Sublinear Time | 阅读笔记:K-MC2区别于k-means II的采样方法,使用MCMC采样,其主要思想是将K-Means++中的采样方法替换为基于MCMC(马尔科夫链蒙特卡洛)采样方法(MCMC的介绍可以参考:MCMC随机采样)。用MCMC的方法采样出长为M的数列,取最后(K-1)个数作为中心点初始化,target distribution是距离的函数,满足距离越远,概率越大(表达的含义同k-means++),proposal distribution是一个常函数,1/样本数。 | Olivier Bachem et al,2016

  • Fast and Provably Good Seedings for k-Means | 阅读笔记:AFK-MC2基于K-MC2改进,由于K-MC2的proposal distribution是常函数,不够鲁棒,因此AFK-MC2将与距离有关的分布作为一个term加入原始的分布中,优化proposal distribution | Olivier Bachem et al,2016

  • Robust and Rapid Clustering of KPIs for Large-Scale Anomaly Detection | 阅读笔记:关于快速时序聚类的文章,提出ROCKA系统架构,包括了数据预处理、基线提取、相似性度量、基于密度的聚类算法。ROCKA算法仅仅是使用了派发策略,单是并未在有效的利用过程中的计算结果,导致在派发过程中复杂度较高 | Zhihan Li et al,2018

Text Similarity | 文本相似度(匹配)

  • Siamese Recurrent Architectures for Learning Sentence Similarity:Siamese LSTM,一个用来计算句对相似度的模型 | Jonas Mueller et al,2016

  • Learning Text Similarity with Siamese Recurrent Networks:网络包含4层BiLSTM(64-d hidden),最后一层的BiLSTM的hidden state和cell state进行concat,然后在timestep维度进行average处理,并接一个Dense层(激活函数为tanh),得到的两个Embedding Space进行Cosine sim计算,得到的相似度分数E用于损失函数计算,损失函数使用对比损失函数,计算方法为,损失函数正例:1/4(1-E)^2,负例:E^2(如果E<m),否则0 | Paul Neculoiu et al,2016

  • Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks | 阅读笔记:和之前提出的InferSent结构如出一辙,妥妥的双塔结构,只是换成了Bert来进行特征表示。模型结构没有什么创新点,但是这个结构用起来效果挺好,速度也快,很适合工业界使用。论文中在针对句向量表示计算策略分别使用了CLS向量策略、平均池化策略、最大值池化策略三个策略进行实验,实验结果中平均池化策略最优 | Nils Reimers et al,2019

  • SimCSE: Simple Contrastive Learning of Sentence Embeddings | 阅读笔记:基于Sentence-Bert,引入对比学习的思想,在无监督与有监督语义相似度计算任务达到SOTA。主要围绕对比学习质量指标Alignment和Uniformity来进行优化,对于Unsupervised,核心是使用dropout mask生成正样本,负样本是in-batch negatives。而Supervised则是NLI中entailment关系样例对。负例:a) in-batch negatives b)NLI中关系为contradiction的样例对 | Tianyu Gao et al,2021

Nearest Neighbor | 向量检索

Deep Learning | 深度学习

Machine Learning | 机器学习

  • Parameter Server for Distributed Machine Learning | 阅读笔记:论文里说本篇所介绍的Parameter Server属于第三代PS,提供了更加通用的设计,架构上包括一个Server Group和若干个Worker Group,提供了如下几个特点:Efficient Communication、Elastic Scalability、Fault Tolerance and Durability、Ease of Use | Mu Li et al,2013

  • Scaling Distributed Machine Learning with the Parameter Server | 阅读笔记:在PS中,每个 server 实际上都只负责分到的部分参数(servers共同维持一个全局的共享参数),而每个 work 也只分到部分数据和处理任务。较它之前一篇PS进行了更加细节的描述,并对一些细节进行了扩展,两篇结合起来看受益颇多 | Mu Li et al,2014

  • Optimal Whitening and Decorrelation:提供五种白化方法的数学证明 | Agnan Kessy et al,2015

  • Gaussian Error Linear Units (GELUS) | 阅读笔记:GELU的目标就是希望在激活(拥有非线性拟合的能力)中加入正则化的思想。ReLU会确定性的将输入乘上一个0或者1,Dropout则是随机乘上0。而GELU也是通过将输入乘上0或1来实现这个功能,但是输入是乘以0还是1,是在同时取决于输入自身分布的情况下随机选择的。换句话说,是0还是1取决于当前的输入有多大的概率大于其余的输入。而由于神经元的输入x往往遵循正态分布(尤其是深度网络中普遍存在Normalization),所以GELU就可以被定义为“标准正态分布的累积分布函数”,利用erf就可以得到公式:x/2*(1+erf(x/sqrt(2))) | Dan Hendrycks et al,2016

  • An overview of gradient descent optimization algorithms | 阅读笔记:对当前主流的梯度下降算法进行概述 | Sebastian Ruder et al,2016

  • Sigmoid-Weighted Linear Units for Neural Network Function Approximation in Reinforcement Learning:提出SILU激活函数,其实从某种角度讲就是GELU激活的一种近似,x*sigmoid(x) | Stefan Elfwing et al,2017

  • SWISH: A SELF-GATED ACTIVATION FUNCTION:提出的Swish激活函数,通SILU激活函数一样,没啥差别,x*sigmoid(x) | Prajit Ramachandran et al,2017

  • Covariate Shift: A Review and Analysis on Classifiers | 阅读笔记:通过几种分类算法,在四种不同的数据集下验证几种方法处理Covariate Shift问题后的性能分析 | Geeta et al,2019

  • Monte Carlo Gradient Estimation in Machine Learning | 阅读笔记:本文是一篇关于Monte Carlo gradient estimation的survey,本文主要总结的内容是:随机梯度估计方法的相关背景知识,包括蒙特卡洛采样和随机优化;几种经典应用,包括变分推断、强化学习中的Policy gradient、敏感性分析、实验设计;两类经典的梯度估计算法 | Shakir Mohamed et al,2019

Dataset | 数据集

Evaluate | 评估

About

自然语言处理领域下的对话语音领域,整理相关论文(附阅读笔记),复现模型以及数据处理等(代码含TensorFlow和PyTorch两版本)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%