自然语言处理

阅读 / 问答 / 标签

因果可解释自然语言处理工具箱 - GYC(一)

【AAAI-2021】【IBM Research AI】 Generate Your Counterfactuals: Towards Controlled Counterfactual Generation for Text 文章旨在通过反事实生成样本的方法,更好的解释现有NLP模型的公平性和鲁棒性。作者提出GYC框架,可以基于特定的条件,例如,命名实体标签、语义角色标签或情感等,生成合理的、多样化的、面向目标的和有效的反事实样本。生成的反事实样本可以作为测试用例,来评估模型和任何文本去偏算法。 机器学习方法应用越来越广泛,因此ML(包括NLP等)系统的可信度至关重要,需要保证它们做出的决策是公平(Fairness)和稳健的(Robust)。[1]提出了以反事实文本做为替代数据集 ,作为测试用例来评估这些系统的公平性和鲁棒性等属性。[2]提出利用反事实文本及其正确标签,来加强训练集(混合反事实和原始训练集)以减轻文本模型中潜在的不公平和非鲁棒。 反事实文本应当具有如下四个属性,包括, 利用这些反事实样本,可以有效地发现一些模型失效的案例,例如NLP分类器的标签翻转问题(比如发现,positive被预测成negative的原因)。同时,这些样本还能用来当做测试对抗攻击的样本。但是这样的(天然)测试样本非常少,并且局限于特定领域。此外,可能(特征取值)并不合理,例如不符合语法[3]或在许多情况下需要人工干预[4]。[5]利用一些预先设定的模板进行反事实样本生成,该类方法的一个主要局限是不能生成有意义的、多样化的反事实样本。一些现有方法生成的样本如下图所示。单词替换或基于模板的方法生成的文本,质量较差,不具有上述4个性质。而对抗生成方法[6]主要是生成可以改变样本标签的句子,而忽略了plausible,导致生成的样本不太可能出现在用户输入中(真实场景里)。因此,这些生成的样本对提升模型能力或作为测试样例来说是低效的。 虽然,GPT-2[7]等生成模型可以生成合理且具有多样性的文本,可以用来生成反事实文本。但是,作者表示该类方法不便于基于特定属性(或者说控制条件)进行控制和调节[8](无法方便的做到controllable),与[9]类似,作者采用controllable text generation实现反事实文本生成。不过,存在2个难点, 针对上述问题,作者提出一种反事实生成框架(GYC)。该框架可以应用于多种现有模型,来引导反事实文本生成。该框架包括2个大的步骤, 实现控制文本生成时,控制目标可以使文本情感类别、需要生成的实体(文章中写的NER)或者是特定的类别标签。其中, 可微分损失是对根据输入句子的logits计算的,而不可微分损失通过对生成文本计算(人工设计的)reward得到。 此外,为了确保生成的反事实文本具有多样化性,作者在logits上添加了熵损失(最大化熵,提升生成结果的多样性,在很多RL的方法中常用,保证action不要过于单一) 。 本节讲解了作者的研究问题的背景,思路以及具体框架。下一节继续介绍具体的实现方法。 样本生成,特别是自然语言文本生成,不是什么新概念,并且已经被用在各种场景。但是可生成的文本那么多,究竟生成什么样的样本?更重要的怎么控制模型生成想要的样本?还是不断发展的研究领域。越来越多的文本生成方法开始注重精细的控制能力,也就是所谓的controllable text generation。作者表示的反事实样本除了需要goal-orientated,还需要保证plausible,diversity并且effective。因此,个人感觉, 可以说反事实文本生成是更精细的文本生成方法(当然能局限于特定场景和方向) 。 有了精细、可控的生成方法,可想象的空间很大。生成的反事实文本,除了可以测试模型的公平性和鲁棒性,还可以直接用于数据增广,也被看做更精细的generator,做对抗训练(个人感觉)。此外,(微调到适应下游任务后)生成器也可以直接应用于NLG场景。 反事实生成其实只是一个方向性的指导,反事实生成目标所构成的目标(损失函数)可以和其他生成目标一起辅助训练(印象中已经有这样的文章了),或得到所谓生成器和判别器两个副产品。 在PPLM中,作者采用贝叶斯法则,把条件概率转化,并利用KL散度进行辅助约束。这种目标函数转化技巧无法直接实现条件概率最大化的场景经常用到,值得学习和借鉴。 [1] Pearl, J.; et al. 2000. Models, reasoning and inference. Cambridge, UK: CambridgeUniversityPress. [2] Garg, S.; Perot, V.; Limtiaco, N.; Taly, A.; Chi, E. H.; and Beutel, A. 2019. Counterfactual fairness in text classification through robustness. In Proceedings of the 2019 AAAI/ACM Conference on AI, Ethics, and Society, 219–226. [3] Li, J.; Monroe, W.; and Jurafsky, D. 2016. Understanding neural networks through representation erasure. arXiv preprint arXiv:1612.08220 . [4] Jia, R.; and Liang, P. 2017. Adversarial examples for evaluating reading comprehension systems. arXiv preprint arXiv:1707.07328 . [5] Ribeiro, M. T.; Wu, T.; Guestrin, C.; and Singh, S. 2020. Beyond Accuracy: Behavioral Testing of NLP Models with CheckList. arXiv preprint arXiv:2005.04118 . [6] Michel, P.; Li, X.; Neubig, G.; and Pino, J. M. 2019. On eval- uation of adversarial perturbations for sequence-to-sequence models. arXiv preprint arXiv:1903.06620 [7] Radford, A.; Wu, J.; Child, R.; Luan, D.; Amodei, D.; and Sutskever, I. 2019. Language models are unsupervised mul- titask learners. OpenAI Blog 1(8): 9. [8] Keskar, N. S.; McCann, B.; Varshney, L. R.; Xiong, C.; and Socher, R. 2019. Ctrl: A conditional transformer lan- guage model for controllable generation. arXiv preprint arXiv:1909.05858 . [9] Dathathri, S.; Madotto, A.; Lan, J.; Hung, J.; Frank, E.; Molino, P.; Yosinski, J.; and Liu, R. 2020. Plug and Play Language Models: A Simple Approach to Controlled Text Generation. In International Conference on Learn- ing Representations. URL https://openreview.net/forum?id= H1edEyBKDS.

自然语言处理 语言模型 有哪些

最近我们实验室整理发布了一批开源NLP工具包,这里列一下,欢迎大家使用。未来不定期更新。2016年3月31日更新,在THULAC新增Python版本分词器,欢迎使用。中文词法分析THULAC:一个高效的中文词法分析工具包包括中文分词、词性标注功能。已经提供C++、Java、Python版本。中文文本分类THUCTC: 一个高效的中文文本分类工具提供高效的中文文本特征提取、分类训练和测试功能。THUTag: 关键词抽取与社会标签推荐工具包GitHub - YeDeming/THUTag: A Package of Keyphrase Extraction and Social Tag Suggestion提供关键词抽取、社会标签推荐功能,包括TextRank、ExpandRank、Topical PageRank(TPR)、Tag-LDA、Word Trigger Model、Word Alignment Model等算法。PLDA / PLDA+: 一个高效的LDA分布式学习工具包https://code.google.com/archive/p/plda/知识表示学习知识表示学习工具包GitHub - Mrlyk423/Relation_Extraction: Knowledge Base Embedding包括TransE、TransH、TransR、PTransE等算法。考虑实体描述的知识表示学习算法GitHub - xrb92/DKRL: Representation Learning of Knowledge Graphs with Entity Descriptions词表示学习跨语言词表示学习算法Learning Cross-lingual Word Embeddings via Matrix Co-factorization主题增强的词表示学习算法GitHub - largelymfs/topical_word_embeddings: A demo code for topical word embedding可解释的词表示学习算法GitHub - SkTim/OIWE: Online Interpretable Word Embeddings考虑字的词表示学习算法GitHub - Leonard-Xu/CWE网络表示学习文本增强的网络表示学习算法GitHub - albertyang33/TADW: code for IJCAI2015 paper "Network Representation Learning with Rich Text Information"

自然语言处理(NLP)知识整理及概述(二)

假设 a = {a-z, A-Z, ...} 是英语所有可能构成单词的字母集合, a* 为由这个字母表所构成的任意有限长度的字符串集合。 其中所有有效的单词构成的集合D是a*的一个子集。而noise channel 是指从目的词(即字典)与实际接收到的字符串x所构成的矩阵。 对于所捕获到的,存在拼写错误的字符串x, 目标是在字典中找到一个词w,使这一情况出现的概率最大。 即: 由于用户实际想拼写的单词是不确定的,因此需要生成一个修正候选列表(candidate corrections),这个列表基于两个规则: 因此, noisy channel 实际上可以理解为,用户所输入的一个错误的字符串,经过怎样的变换过程可以得到若干个正确的单词。变换的过程越多,相当于channel越长, 而找候选列表的过程也就是找channel最短的过程。 最我辑距离(minimum edit distance)是指从一个string到另一个string所需的最我辑步骤,包括:插入、删除、替换。而采用这三种编辑手段计算所得的距离又称为 Levenshtein distance 。这一距离将所有操作的cost都记为1. 但严格来说,替换这一操作等于先删除再插入。因此这一操作的cost可当成是2(更接近实际操作的cost)。 此外,对于 Damerau–Levenshtein distance ,这一距离还新增了transposition of two adjacent characters 这一操作。 统计概率的计算方法如下: 首先对错误统计的方式: 显然,用户想输入across的概率最大,这样候选词列表就有了排序和过滤的依据(大概率的排在前面,概率过低的可以不显示)。另一方面,P(word) 也可以使用bigram,这样就与上下文取得了联系,能更好的预测用户想要输入的单词。 有25%-40%的错误属于 real-word error 这一部分是language model与noisy channel model的结合。假设用户输入的所有单词都没有non-word error 举个例子,用户输入 "two of thew": 仅考虑 two off thew, two of the, too of thew 的概率,取最大值。 Peter Norvig"s list of errors Wikipedia"s list of common misspelllings GNU Aspell Hunspell How to Write a Spelling Corrector

自然语言处理(NLP)和计算语言学之间的区别和联

自然语言处理与语言学的研究有着密切的联系,但又有重要的区别。自然语言处理并不是一般地研究自然语言,而在于研究能有效地实现让计算机分析和处理自然语言的技术,特别是利用计算机的能力来高效地处理大规模的文本。

有关python自然语言处理的问题

看起来像是一个自定义的函数,是不是有一个python文件叫做 utils.py ?

自然语言处理中的N-Gram模型详解

N-Gram(有时也称为N元模型)是 自然语言 处理中一个非常重要的概念,通常在NLP中,人们基于一定的语料库,可以利用N-Gram来预计或者评估一个句子是否合理。另外一方面,N-Gram的另外一个作用是用来评估两个字符串之间的差异程度。这是模糊匹配中常用的一种手段。本文将从此开始,进而向读者展示N-Gram在自然语言处理中的各种powerful的应用。 基于N-Gram模型定义的字符串距离 利用N-Gram模型评估语句是否合理 使用N-Gram模型时的数据平滑算法 欢迎关注白马负金羁的博客 http://blog.csdn.net/baimafujinji ,为保证公式、图表得以正确显示,强烈建议你从该地址上查看原版博文。本博客 主要关注方向 包括:数字图像处理、 算法 设计与分析、 数据结构 、 机器学习 、数据挖掘、统计分析方法、自然语言处理。 基于N-Gram模型定义的字符串距离 在自然语言处理时,最常用也最基础的一个操作是就是“模式匹配”,或者称为“字符串查找”。而模式匹配(字符串查找)又分为 精确匹配 和 模糊匹配 两种。 所谓精确匹配,大家应该并不陌生,比如我们要统计一篇文章中关键词 “ information ” 出现的次数,这时所使用的方法就是精确的模式匹配。这方面的算法也比较多,而且应该是计算机相关专业必修的基础课中都会涉及到的内容,例如KMP算法、BM算法和BMH算法等等。 另外一种匹配就是所谓的模糊匹配,它的应用也随处可见。例如,一般的文字处理软件(例如,Microsoft Word等)都会提供拼写检查功能。当你输入一个错误的单词,例如 “ informtaion ” 时,系统会提示你是否要输入的词其实是 “ information ” 。将一个可能错拼单词映射到一个推荐的正确拼写上所采用的技术就是模糊匹配。 模糊匹配的关键在于如何衡量两个长得很像的单词(或字符串)之间的“差异”。这种差异通常又称为“距离”。这方面的具体算法有很多,例如基于编辑距离的概念,人们设计出了 Smith-Waterman 算法和Needleman-Wunsch 算法,其中后者还是历史上最早的应用动态规划思想设计的算法之一。现在Smith-Waterman 算法和Needleman-Wunsch 算法在生物信息学领域也有重要应用,研究人员常常用它们来计算两个DNA序列片段之间的“差异”(或称“距离”)。甚至于在LeetCode上也有一道 “No.72 Edit Distance” ,其本质就是在考察上述两种算法的实现。可见相关问题离我们并不遥远。 N-Gram在模糊匹配中的应用 事实上,笔者在新出版的 《算法之美——隐匿在数据结构背后的原理》 一书中已经详细介绍了包括Needleman-Wunsch算法、Smith-Waterman算法、N-Gram算法、Soundex算法、Phonix算法等在内的多种距离定义算法(或模糊匹配算法)。而今天为了引出N-Gram模型在NLP中的其他应用,我们首先来介绍一下如何利用N-Gram来定义字符串之间的距离。 我们除了可以定义两个字符串之间的编辑距离(通常利用Needleman-Wunsch算法或Smith-Waterman算法)之外,还可以定义它们之间的N-Gram距离。N-Gram(有时也称为N元模型)是自然语言处理中一个非常重要的概念。假设有一个字符串 s ,那么该字符串的N-Gram就表示按长度 N 切分原词得到的词段,也就是 s 中所有长度为 N 的子字符串。设想如果有两个字符串,然后分别求它们的N-Gram,那么就可以从它们的共有子串的数量这个角度去定义两个字符串间的N-Gram距离。但是仅仅是简单地对共有子串进行计数显然也存在不足,这种方案显然忽略了两个字符串长度差异可能导致的问题。比如字符串 girl 和 girlfriend,二者所拥有的公共子串数量显然与 girl 和其自身所拥有的公共子串数量相等,但是我们并不能据此认为 girl 和girlfriend 是两个等同的匹配。 为了解决该问题,有学者便提出以非重复的N-Gram分词为基础来定义 N-Gram距离这一概念,可以用下面的公式来表述: |GN(s)|+|GN(t)|u22122×|GN(s)∩GN(t)| 此处,|GN(s)| 是字符串 s 的 N-Gram集合,N 值一般取2或者3。以 N = 2 为例对字符串Gorbachev和Gorbechyov进行分段,可得如下结果(我们用下画线标出了其中的公共子串)。 有兴趣的读者可以在引用相关JAR包之后在Eclipse中执行上述Java程序,你会发现,和我们预期的一样,字符串Gorbachev和Gorbechyov所得之距离评分较高(=0.7),说明二者很接近;而girl和girlfriend所得之距离评分并不高(=0.3999),说明二者并不很接近。 利用N-Gram模型评估语句是否合理 从现在开始,我们所讨论的N-Gram模型跟前面讲过N-Gram模型从外在来看已经大不相同,但是请注意它们内在的联系(或者说本质上它们仍然是统一的概念)。 为了引入N-Gram的这个应用,我们从几个例子开始。首先,从统计的角度来看,自然语言中的一个句子 s 可以由任何词串构成,不过概率 P(s) 有大有小。例如: s1 = 我刚吃过晚饭 s2 = 刚我过晚饭吃 显然,对于中文而言 s1 是一个通顺而有意义的句子,而s2 则不是,所以对于中文来说,P(s1)>P(s2) 。但不同语言来说,这两个概率值的大小可能会反转。 其次,另外一个例子是,如果我们给出了某个句子的一个节选,我们其实可以能够猜测后续的词应该是什么,例如 the large green __ . Possible answer may be “mountain” or “tree” ? Kate swallowed the large green __ . Possible answer may be “pill” or “broccoli” ? 显然,如果我们知道这个句子片段更多前面的内容的情况下,我们会得到一个更加准确的答案。这就告诉我们,前面的(历史)信息越多,对后面未知信息的约束就越强。 如果我们有一个由 m 个词组成的序列(或者说一个句子),我们希望算得概率 P(w1,w2,u22ef,wm) ,根据链式规则,可得 P(w1,w2,u22ef,wm)=P(w1)P(w2|w1)P(w3|w1,w2)u22efP(wm|w1,u22ef,wmu22121) 这个概率显然并不好算,不妨利用马尔科夫链的假设,即当前这个词仅仅跟前面几个有限的词相关,因此也就不必追溯到最开始的那个词,这样便可以大幅缩减上诉算式的长度。即P(wi|w1,u22ef,wiu22121)=P(wi|wiu2212n+1,u22ef,wiu22121) 特别地,对于 n 取得较小值的情况当 n=1 , 一个一元模型(unigram model)即为P(w1,w2,u22ef,wm)=∏i=1mP(wi) 当 n=2 , 一个二元模型(bigram model)即为P(w1,w2,u22ef,wm)=∏i=1mP(wi|wiu22121) 当 n=3 , 一个三元模型(trigram model)即为P(w1,w2,u22ef,wm)=∏i=1mP(wi|wiu22122wiu22121) 接下来的思路就比较明确了,可以利用最大似然法来求出一组参数,使得训练样本的概率取得最大值。 对于unigram model而言,其中c(w1,..,wn) 表示 n-gram w1,..,wn 在训练语料中出现的次数,M 是语料库中的总字数(例如对于 yes no no no yes 而言,M=5 )P(wi)=C(wi)M 对于bigram model而言,P(wi|wiu22121)=C(wiu22121wi)C(wiu22121) 对于n -gram model而言,P(wi|wiu2212nu22121,u22ef,wiu22121)=C(wiu2212nu22121,u22ef,wi)C(wiu2212nu22121,u22ef,wiu22121) 来看一个具体的例子,假设我们现在有一个语料库如下,其中<s1><s2> 是句首标记,</s2></s1> 是句尾标记: <s1><s2>yesnonononoyes</s2></s1><s1><s2>nononoyesyesyesno</s2></s1> 下面我们的任务是来评估如下这个句子的概率:<s1><s2>yesnonoyes</s2></s1> 我们来演示利用trigram模型来计算概率的结果P(yes|<s1><s2>)=12,P(no|<s2>yes)=1P(no|yesno)=12,P(yes|nono)=25P(</s2>|noyes)=12,P(</s1>|yes</s2>)=1 所以我们要求的概率就等于:12×1×12×25×12×1=0.05 再举一个来自文献[1]的例子,假设现在有一个语料库,我们统计了下面一些词出现的数量 下面这个概率作为其他一些已知条件给出:P(i|<s>)=0.25P(english|want)=0.0011P(food|english)=0.5P(</s>|food)=0.68 ,则可以算得P(s1)=P(i|<s>)P(want|i)P(english|want)P(food|english)P(</s>|food)=0.25×0.33×0.0011×0.5×0.68=0.000031 使用N-Gram模型时的数据平滑算法 有研究人员用150万词的训练语料来训练 trigram 模型,然后用同样来源的 测试 语料来做验证,结果发现23%的 trigram 没有在训练语料中出现过。这其实就意味着上一节我们所计算的那些概率有空为 0,这就导致了数据稀疏的可能性,我们的表3中也确实有些为0的情况。对语言而言,由于数据稀疏的存在,极大似然法不是一种很好的参数估计办法。 这时的解决办法,我们称之为“平滑技术”(Smoothing)或者 “减值” (Discounting)。其主要策略是把在训练样本中出现过的事件的概率适当减小,然后把减小得到的概率密度分配给训练语料中没有出现过的事件。实际中平滑算法有很多种,例如:  u25b8 Laplacian (add-one) smoothing  u25b8 Add-k smoothing  u25b8 Jelinek-Mercer interpolation  u25b8 Katz backoff  u25b8 Absolute discounting  u25b8 Kneser-Ney 对于这些算法的详细介绍,我们将在后续的文章中结合一些实例再来进行讨论。 A Final Word 如果你能从前面那些繁冗、复杂的概念和公式中挺过来,恭喜你,你对N-Gram模型已经有所认识了。尽管,我们还没来得及探讨平滑算法(但它即将出现在我的下一篇博文里,如果你觉得还未过瘾的话),但是其实你已经掌握了一个相对powerful的工具。你可以能会问,在实践中N-Gram模型有哪些具体应用,作为本文的结束,主页君便在此补充几个你曾见过的或者曾经好奇它是如何实现的例子。 Eg.1 搜索引擎 (Google或者Baidu)、或者输入法的猜想或者提示。你在用百度时,输入一个或几个词,搜索框通常会以下拉菜单的形式给出几个像下图一样的备选,这些备选其实是在猜想你想要搜索的那个词串。再者,当你用输入法输入一个汉字的时候,输入法通常可以联系出一个完整的词,例如我输入一个“刘”字,通常输入法会提示我是否要输入的是“刘备”。通过上面的介绍,你应该能够很敏锐的发觉,这其实是以N-Gram模型为基础来实现的,如果你能有这种觉悟或者想法,那我不得不恭喜你,都学会抢答了! Eg.2 某某作家或者语料库风格的文本自动生成。这是一个相当有趣的话题。来看下面这段话(该例子取材自文献【1】): “You are uniformly charming!” cried he, with a smile of associating and now and then I bowed and they perceived a chaise and four to wish for. 你应该还没有感觉到它有什么异样吧。但事实上这并不是由人类写出的句子,而是计算机根据Jane Austen的语料库利用trigram模型自动生成的文段。(Jane Austen是英国著名女作家,代表作有《傲慢与偏见》等) 再来看两个例子,你是否能看出它们是按照哪位文豪(或者语料库)的风格生成的吗? This shall forbid it should be branded, if renown made it empty. They also point to ninety nine point six billion dollars from two hundred four oh three percent of the rates of interest stores as Mexico and Brazil on market conditions. 答案是第一个是莎士比亚,第二个是华尔街日报。最后一个问题留给读者思考,你觉得上面两个文段所运用的n-gram模型中,n应该等于多少? 推荐阅读和参考文献: [1] Speech and Language Processing. Daniel Jurafsky & James H. Martin, 3rd. Chapter 4[2] 本文中的一些例子和描述来自 北京大学 常宝宝 以及 The University of Melbourne “Web Search and Text Analysis” 课程的幻灯片素材

2021-12-26 第二章6 自然语言处理常见的三大任务之语言模型:平滑

内容来自哈工大车万翔老师团队的作品《自然语言处理:基于预训练模型的方法》。 马尔可夫假设降低了句子概率为0的可能性,但是当n比较大或者测试句子含有 未登录词(Out-Of-Vacabulary,OOV) 时,仍然会出现“零概率”问题。 由于数据的稀疏性,训练数据很难覆盖测试数据中所有可能出现的N-gram,但这并不意味着这些N-gram出现的概率为0。为了避免该问题,使用 平滑(Smoothing) 计算调整概率估计的结果 折扣法(Discounting) 平滑的基本思想时“损有余而补不足”,即从频繁出现的N-gram中匀出一部分概率并分配给低频次(含零频次)的N-gram,从而使得整体概率分布趋于均匀。 加1平滑(Add-one Discounting) 是一种典型折扣法,又称 拉普拉斯平滑(Laplace Discounting) 。其假设所有N-gram的频次都比实际出现的频次多一次。 例:unigram模型,平滑后概率公式为 注意,实际使用中,尤其训练数据较小时,加1平滑将对低频次或零频次时间给出过高的概率估计。于是扩展为 加 平滑 ,即假设所有事件的频次比实际出现的频次多 次,其中 。于是bigram语言模型的条件概率为: 至于超参数 的取值,需要根据开发集数据上的困惑度对不同 取值下的语言模型进行评价,最终确定最优的 用于测试集。 N元模型的问题:马尔可夫假设使得N元语言模型无法对长度超过N的长距离词语依赖关系进行建模,如果N扩大又会带来严重的数据稀疏问题,同时还会急剧增加模型的参数量。后续会讲到神经网络语言模型可以解决上述问题。

数据挖掘,机器学习,自然语言处理这三者是什么关系

这三者的关系是相互关联,而大数据其实需要利用到机器学习和数据挖掘的内容、语义学的内容等、机器学习、数据挖掘,又有一些统计学的内容,数据挖掘有一些机器学习的内容机器学习,自然语言处理也需要用到机器学习,推荐系统需要数据挖掘、计算机的内容!

国内外在自然语言处理领域的研究热点和难点有哪些?

先看大方向,这个比较好统计。NLP研究的大方向可以参考NLP会议的领域进行划分。各方向的热度可以参考顶会各个领域的论文接收数。虽然这个方法可能不是很实时,但我认为长期(五年)看还是能反映研究热度的,毕竟如果一个领域热门,研究人员多、进展多、论文多,大会组织者就会相应的扩大论文的接收数。不过会不会论文多是因为灌水多?所以我说要看长期而且是看顶会,一个会议如果长期允许这么灌水其档次肯定会下跌,市场规律嘛,这年头办个好会议也不容易。个人也可以根据这些数据自行判断各个领域的热门情况与趋势。

自然语言处理中的词表示

词表示是自然语言处理的基础,一个好的词向量在很大程度上决定了后续任务的上限。本文是我最近学习该部分内容的笔记,主要参照的是 基于神经网络的词和文档语义向量表示方法研究 一文,穿插了一些个人理解。内容较多,错误难免,请拍砖~ 分布表示(Distributional Representation)假说 :上下文相似的词,其语义也相似。根据建模方式的不同,主要分为三类:基于矩阵的分布表示、基于聚类的分布表示和基于神经网络的分布表示。 尽管不同的分布表示方法使用了不同的技术手段获取词表示,但由于这些方法均基于分布假说,它们的核心思想也都由两部分组成: 基于矩阵的分布表示通常又称为分布语义模型(distributional semantic models)。这类方法需要构建一个“词-上下文”矩阵,从矩阵中获取词的表示。在“词-上下文”矩阵中,每行对应一个词,每列表示一种不同的上下文,矩阵中的每个元素对应相关词和上下文的共现次数。在这种表示下,矩阵中的一行,就成为了对应词的表示,这种表示描述了该词的上下文的分布。由于分布假说认为上下文相似的词,其语义也相似,因此在这种表示下,两个词的语义相似度可以直接转化为两个向量的空间距离。这类方法具体可以分为三个步骤: 著名的 Global Vector模型(GloVe) 就是基于矩阵的分布表示 基于聚类的分布表示又称作分布聚类(distributional clustering),这类方法通过聚类手段构建词与其上下文之间的关系。其中最经典的方法是布朗聚类(Brown clustering)。布朗聚类是一种层级聚类方法,聚类结果为每个词的多层类别体系。因此可以根据两个词的公共类别判断这两个词的语义相似度。 基于神经网络的分布表示一般称为词向量、词嵌入(word embedding)或分布式表示(distributed representation)。神经网络词向量表示技术通过神经网络技术对上下文,以及上下文与目标词之间的关系进行建模。由于神经网络较为灵活,这类方法的最大优势在于可以表示复杂的上下文。在前面基于矩阵的分布表示方法中,最常用的上下文是词。如果使用包含词序信息的n-gram作为上下文,当n增加时,n-gram的总数会呈指数级增长,此时会遇到维数灾难问题。而神经网络在表示n-gram时,可以通过一些组合方式对n个词进行组合,参数个数仅以线性速度增长。有了这一优势,神经网络模型可以对更复杂的上下文进行建模,在词向量中包含更丰富的语义信息。 神经网络词向量模型与其它分布表示方法一样,均基于分布假说,核心依然是上下文的表示以及上下文与目标词之间的关系的建模。构建上下文与目标词之间的关系,最自然的一种思路就是使用语言模型。 语言模型可以对一段文本的概率进行估计,对信息检索、机器翻译、语音识别等任务有着重要的作用。形式化讲,统计语言模型的作用是为一个长度为 的字符串确定一个概率分布 ,表示其存在的可能性,其中 到 依次表示这段文本中的各个词。一般在实际求解过程中,通常采用下式计算其概率值: 在实践中,如果文本的长度较长,上述公式右部 的估算会非常困难。因此,研究者们提出使用一个简化模型:n元模型(n-gram model)。在n元模型中估算条件概率时,距离大于等于n的上文词会被忽略,也就是对上述条件概率做了以下近似: 在 元模型中,传统的方法一般采用频率计数的比例来估算 元条件概率: 其中, 表示文本序列 在语料中出现的次数。 为了更好地保留词序信息,构建更有效的语言模型,我们希望在 元模型中选用更大的 。但是,当 较大时,长度为 序列出现的次数就会非常少,在按照上述公式估计 元条件概率时,就会遇到数据稀疏问题,导致估算结果不准确。因此,一般在百万词级别的语料中,三元模型是比较常用的选择,同时也需要配合相应的平滑算法,进一步降低数据稀疏带来的影响。 为了更好地解决 元模型估算概率时遇到的数据稀疏问题,神经网络语言模型应运而生。 神经网络语言模型(Neural Network Language Model ,NNLM)在学习语言模型的同时,也能得到词向量。 NNLM 同样也是对n 元语言模型进行建模,估算 的值。但与传统方法不同的是,NNLM 不通过计数的方法对 元条件概率进行估计,而是直接通过一个神经网络结构,对其进行建模求解。下图展示了NNLM 的基本结构。 具体而言,对语料中一段长度为 的序列 , 元语言模型需要最大化以下概率: 其中, 为需要通过语言模型预测的词(目标词)。对于整个模型而言,输入为条件部分的整个词序列: ,输出为目标词的分布。而神经网络的目标就是要让输出中, (目标词)的概率最大。 神经网络语言模型采用普通的三层前馈神经网络结构,其中第一层为输入层。Bengio提出使用各词的词向量作为输入以解决数据稀疏问题,因此输入层为词 的词向量的顺序拼接: 当输入层完成对上文的表示 之后,模型将其送入剩下两层神经网络,依次得到隐藏层 和输出层 : 其中 , 。 表示词汇表的大小, 表示词向量的维度, 是隐层的维度。矩阵 表示从输入层到输出层的直连边权重矩阵。如果使用该直连边,可以减少一半的迭代次数;但如果没有直连边,可以生成性能更好的语言模型。因此在后续工作中,很少有使用输入层到输出层直连边的工作。 输出层一共有 个元素,,依次对应下一个词为词表中某个词的可能性。这里使用softmax函数,将其转化为对应的概率。 将 展开,得到: 被称为能量函数。 2007 年,Mnih和Hinton在神经网络语言模型(NNLM)的基础上提出了log双线性语言模型(Log-Bilinear Language Model,LBL)。LBL模型的能量函数为: LBL模型的能量函数与NNLM的能量函数主要有两个区别。一、LBL 模型中,没有非线性的激活函数tanh,而由于NNLM 是非线性的神经网络结构,激活函数必不可少;二、LBL 模型中,只有一份词向量e,也就是说,无论一个词是作为上下文,还是作为目标词,使用的是同一份词向量。其中第二点(只有一份词向量),只在原版的LBL模型中存在,后续的改进工作均不包含这一特点。 循环神经网络语言模型(Recurrent Neural Network based Language Model,RNNLM)则直接对 进行建模(注意不是 ) RNNLM里面最厉害的就属 ELMo 了。该模型利用多层双向LSTM的加权和来表示词向量,其中权重可根据具体任务动态调节。 与基于语言模型的词向量生成方法不同,C&W以直接生成词向量为目标。 C&W模型没有去求解 ,而是直接对n元短语打分。对于语料中出现过的 元短语,模型会对其打高分;而对于语料中没有出现的随机短语,模型会对其打低分。通过这种方式,C&W 模型可以更直接地学习得到符合分布假说的词向量。 具体而言,对于整个语料,C&W模型需要最小化: 其中, 为从语料中选出的一个 元短语 , 为序列中的中间词,也是目标词,即 ; 表示 的上下文; 为字典中的某一个词。正样本 来自语料,而负样本 则是将正样本序列中的中间词替换成其它词。 即: C&W模型与NNLM相比,主要的不同点在于C&W模型将目标词放到了输入层,同时输出层也从语言模型的 个节点变为一个节点,这个节点的数值表示对这组n元短语的打分。这个区别使得C&W模型成为神经网络词向量模型中最为特殊的一个,其它模型的目标词均在输出层,只有C&W模型的目标词在输入层。 CBOW模型的结构如上图,该模型一方面根据C&W模型的经验,使用一段文本的中间词作为目标词;另一方面,又以NNLM作为蓝本,并在其基础上做了两个简化。一、CBOW没有隐藏层,去掉隐藏层之后,模型从神经网络结构直接转化为log线性结构,与Logistic回归一致。log线性结构比三层神经网络结构少了一个矩阵运算,大幅度地提升了模型的训练速度。二、CBOW去除了上下文各词的词序信息,使用上下文各词词向量的平均值,代替神经网络语言模型使用的上文各词词向量的拼接。形式化地,CBOW模型对于一段训练样本 ,输入为: 由于没有隐藏层,CBOW模型的输入层直接就是上下文的表示。CBOW 模型根据上下文的表示,直接对目标词进行预测: 对于整个语料而言,与神经网络语言模型类似,CBOW的优化目标为最大化: Skip-gram模型的结构如上图,与CBOW模型一样,Skip-gram模型中也没有隐藏层。和CBOW模型不同的是,Skip-gram模型每次从目标词 的上下文 中选择一个词,将其词向量作为模型的输入 ,也就是上下文的表示。Skip-gram模型同样通过上下文预测目标词,对于整个语料的优化目标为最大化: 其中,

因果可解释自然语言处理工具箱 - GYC(二)

【AAAI-2021】【IBM Research AI】 Generate Your Counterfactuals: Towards Controlled Counterfactual Generation for Text 文章旨在通过反事实生成样本的方法,更好的解释现有NLP模型的公平性和鲁棒性。作者提出GYC框架,可以基于特定的条件,例如,命名实体标签、语义角色标签或情感等,生成合理的、多样化的、面向目标的和有效的反事实样本。生成的反事实样本可以作为测试用例,来评估模型和任何文本去偏算法。 上一节介绍了作者的研究问题的背景,思路以及具体框架。本节继续介绍具体的实现方法。 上一节提到,作者提出一种反事实生成框架(GYC)。该框架可以应用于多种现有模型,来引导反事实文本生成。该框架包括2个大的步骤, 实现控制文本生成时,控制目标可以使文本情感类别、需要生成的实体(文章中写的NER)或者是特定的类别标签。其中, 可微分损失是对根据输入句子的logits计算的,而不可微分损失通过对生成文本计算(人工设计的)reward得到。 此外,为了确保生成的反事实文本具有多样化性,作者在logits上添加了熵损失(最大化熵,提升生成结果的多样性,在很多RL的方法中常用,保证action不要过于单一) 。 基于Transformer的语言模型可以被抽象为利用历史文本(其实就是到当前token之前的文本)矩阵 以及历史生成token ,来生成当前token 。其中, 表示Transformer的第 层产生的,在时刻 的键值对。**值得注意的是,作者表示历史token 的信息已经被 反映了。因此,在生成当前token时,不需要再基于 。具体的生成过程可以表示为下图所示公式。 Controllable text generation的目标(或者说做法)是,在生成文本 的时候,以某种 为条件,用公式可以表示为 (文中公式3)。 可以是类别标签,如情感分类中的积极或消极,也可以某种主题,甚至可以是结构化数据,包括维基百科信息框,乃至知识图谱。Dathathri 等人。 (2020 年)提出了PPLM框架,用于controllable text generation。PPLM使用预训练的GPT-2生成文本,通过添加可学习的扰动 来扰动历史文本矩阵 得到扰动后历史文本矩阵(个人称之为扰动条件矩阵) ,并基于上述公式2,得到如下图所示的文本生成公式。 作者表示,可以把PPLM看做是从 的分布中采样。 起到弥合历史文本矩阵 分布和 分布的作用(就是通过这个扰动通过非条件分布拟合条件分布)。 通过最大化 的对数概率来学习(有监督的参数学习)。然而,没有办法直接优化 (由条件(标签,例如积极情感)到文本的概率。个人感觉,主要是因为 的联合分布空间太大,数据太稀疏)。但是 是比较容易从数据估计出来的(比如文本分类模型),因此可以利用贝叶斯公式, ,将目标转化。具体实现时可以利用如下图所示的公式,其中第一项是保证符合所需的条件(其实是软约束,只能说尽可能达到),第二项是保证生成的样本与真实分布接近,和未扰动前的分布接近)。 下图给出了一些GYC生成的反事实文本,这些文本要么被控制来改变位置信息,要么被控制改变类别标签或主题。利用这些文本,可以在符合语法和语境(一般是符合真实输入要求)的同时,保证没有因数据采样原因导致带有某种倾向。比如,伦敦的餐馆在采样时都是好评,模型可能就overfit到伦敦就都是好评,事实上只是因为训练样本没有采样到而已。类似这种问题会导致模型不公平,利用反事实生成的数据增强可以解决这一问题。 GYC要完成的任务是,在给定输入文本 和条件 的情况下,生成反事实样本 ,可以表示为 (文中公式9)。不难看出,此时要求上述“扰动条件矩阵” 即和输入文本 ,又和条件 相关。因此,作者采用两阶段方法, 作者强调, 都是通过扰动得到的,只不过前者是为了重构(保证生成的反事实样本真实且接近原始输入),后者是为了可控制 。 得到 之后,可以利用如下图所示的公式生成所需的反事实文本。 此外,为了 保证多样性 ,作者引入了如下图所示的diversity loss。本质就是计算生成的 反事实文本的熵,熵最大意味着生成的文本越平均或分散。 最终,整体损失函数如下图示所示。 作者采用退火机制来稳定训练过程。初始阶段,重构超参数 较大, 。后期重构基本完成后降低 ,甚至调节为0,提升 。具体训练过程可参见原文附录。 作者采用扰动矩阵实现条件控制是本文的一大亮点。一般想到condition之类的条件,会采用额外的one-hot编码或者可训练的向量(伪编码)实现。但是作者直接把扰动结合到历史条件中,也符合当前LM的场景,简单直接,效果不差。 [1] Pearl, J.; et al. 2000. Models, reasoning and inference. Cambridge, UK: CambridgeUniversityPress. [2] Garg, S.; Perot, V.; Limtiaco, N.; Taly, A.; Chi, E. H.; and Beutel, A. 2019. Counterfactual fairness in text classification through robustness. In Proceedings of the 2019 AAAI/ACM Conference on AI, Ethics, and Society, 219–226. [3] Li, J.; Monroe, W.; and Jurafsky, D. 2016. Understanding neural networks through representation erasure. arXiv preprint arXiv:1612.08220 . [4] Jia, R.; and Liang, P. 2017. Adversarial examples for evaluating reading comprehension systems. arXiv preprint arXiv:1707.07328 . [5] Ribeiro, M. T.; Wu, T.; Guestrin, C.; and Singh, S. 2020. Beyond Accuracy: Behavioral Testing of NLP Models with CheckList. arXiv preprint arXiv:2005.04118 . [6] Michel, P.; Li, X.; Neubig, G.; and Pino, J. M. 2019. On eval- uation of adversarial perturbations for sequence-to-sequence models. arXiv preprint arXiv:1903.06620 [7] Radford, A.; Wu, J.; Child, R.; Luan, D.; Amodei, D.; and Sutskever, I. 2019. Language models are unsupervised mul- titask learners. OpenAI Blog 1(8): 9. [8] Keskar, N. S.; McCann, B.; Varshney, L. R.; Xiong, C.; and Socher, R. 2019. Ctrl: A conditional transformer lan- guage model for controllable generation. arXiv preprint arXiv:1909.05858 . [9] Dathathri, S.; Madotto, A.; Lan, J.; Hung, J.; Frank, E.; Molino, P.; Yosinski, J.; and Liu, R. 2020. Plug and Play Language Models: A Simple Approach to Controlled Text Generation. In International Conference on Learn- ing Representations. URL https://openreview.net/forum?id= H1edEyBKDS.