/nlp-paper

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

Primary LanguagePythonApache License 2.0Apache-2.0

NLP-Paper

Blog Paper Support Stars Thanks PRs Welcome

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

注:对部分复现论文代码以及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

Nearest Neighbor | 向量检索

Deep Learning | 深度学习

Machine Learning | 机器学习

Dataset | 数据集

Evaluate | 评估