内容简介:雷锋网 AI 科技评论按:本篇属于「顶会见闻系列」。每年这么多精彩的人工智能/机器学习会议,没去现场的自然可惜,在现场的也容易看花眼。那么事后看看别的研究员的见闻总结,也许会有新的收获呢。Sebastian Ruder 是 Data Analytics 的 Insight 研究中心的在读博士生,也是 AYLIEN 的研究科学家。在此之前他曾在微软、IBM 深蓝以及谷歌代码夏令营工作。他的主要研究兴趣是用于领域适配的深度学习。这篇文章由 Sebastian Ruder 发表在 AYLIEN 博客,是一篇深入
雷锋网 AI 科技评论按:本篇属于「顶会见闻系列」。每年这么多精彩的人工智能/机器学习会议,没去现场的自然可惜,在现场的也容易看花眼。那么事后看看别的研究员的见闻总结,也许会有新的收获呢。
Sebastian Ruder 是 Data Analytics 的 Insight 研究中心的在读博士生,也是 AYLIEN 的研究科学家。在此之前他曾在微软、IBM 深蓝以及谷歌代码夏令营工作。他的主要研究兴趣是用于领域适配的深度学习。这篇文章由 Sebastian Ruder 发表在 AYLIEN 博客,是一篇深入、全面的 ACL 2018 会议论文研究亮点回顾。雷锋网 AI 科技评论全文编译如下。
今年 7 月15 日至 20日,我有幸参加了于澳大利亚·墨尔本举办的第 56 届计算机语言学年会,即 ACL 2018,并且发表了三篇论文( http://arxiv.org/abs/1804.09530 , http://arxiv.org/abs/1801.06146 , http://arxiv.org/abs/1805.03620 )。想要将整个 ACL 2018 的内容归纳在一个主题下无异于异想天开。然而,细细品味一下,还是能明显地看出一些重要的议题。在 2015 和 2016 年的自然语言领域的学术会议中,词嵌入技术可谓一统天下。那时许多人甚至认为,与其将 EMNLP(自然语言处理领域的顶会之一)解释为「自然语言处理实证方法(Empirical Methods in Natural Language Processing)」还不如将其解释为「 自然语言处理嵌入方法 (Embedding Methods in Natural Language Processing)」。
斯坦福大学 NLP 掌门人 Christopher Manning 曾在一次演讲中提到,2017 年是 BiLSTM+attention 之年(带有注意力机制的双向 LSTM)。尽管带有注意力机制的 BiLSTM 仍然无处不在,但在我看来,这项大会的主要内容还是在于 更好地了解 这些模型捕获的表征并 在 更具挑战的环境中 采用这些表征。我关注的主要是涉及到以上主题的工作,也会讨论一些其他我感兴趣的主题。
理解数据表征
探测模型
令人耳目一新的是,许多论文对现有的模型以及它们所捕获到的信息进行了翔实的分析,而不是继续引入看上去更炫酷的新模型。目前,要做到这一点最常见的做法是自动创建一个数据集,它 侧重于泛化能力的某一个方面 ,然后在这个数据集中评估不同的训练过的模型:
-
例如,Conneau 等人( http://arxiv.org/abs/1805.01070 )在 10 个数据集上评估不同的句子嵌入方法,这些数据集的设计旨在捕捉某些特定的语言学特征,比如预测一个句子的长度、恢复单词的内容、对二元转换的敏感性等。他们发现,不同的编码器结构可能导致嵌入具有不同的特性,而且相比于其他任务中的结果,嵌入袋(bag-of-embeddings)捕获句子级别信息的能力的出乎意料地好。
-
Zhu 等人( http://aclweb.org/anthology/P18-2100 )通过观察从某些语义或者语法不同的句子中生成的三元组的相似性的变化来评估句子嵌入。他们发现,在众多发现中, SkipThought 和 InferSent 能将否定词和同义词进行区分的特性尤为突出,同时 InferSent 更擅长识别等价语义以及识别量词。
-
Pezzelle 等人( http://arxiv.org/abs/1806.00354 )专门研究了量词,他们对不同的 CNN 和LSTM 模型预测单句和多句语境中的量词的能力进行了测试。他们发现,在单句语境中,模型比人类更胜一筹,而人类在多句语境中的表现略好一些。
-
Kuncoro 等人( http://aclweb.org/anthology/P18-1132 )评估了 LSTM 基于主谓一致规则建模的能力。他们发现,只要容量足够,LSTM 能够对主谓一致性建模,但是像语法 RNN (recurrent neural network grammars, https://arxiv.org/abs/1602.07776 )这样的对于句法更敏感的模型的表现更好。
-
Blevins 等人( http://arxiv.org/abs/1805.04218 )评估了为不同的任务进行过预训练的模型,查看它们是否能够捕获语法的层次结构。具体而言,他们训练了用于预测词性标注以及解析树不同深度所组成的标签。它们发现所有的模型实际上都能够编码大量的语法信息,尤其是语言模型还能够学到了一些语法。
-
在Lau 等人( http://arxiv.org/abs/1807.03491 )的努力下,他们得到了一个与语言模型的泛化能力相关的有趣的结果:用十四行诗的语料库训练出来的语言模型可以学到与人类水平相当的格律。
-
然而,语言模型也存在着其局限性。Spithourakis 和 Riedel ( https://arxiv.org/abs/1805.08154 )发现语言模型对数字建模的能力很差,他们针对这个问题提出了一些对语言模型进行改进的策略。
-
Liu 等人( http://arxiv.org/abs/1805.11653 )在 Relp4NLP workshop上演示了,用自然语言数据训练的 LSTM 网络可以比用非自然语言数据训练的模型从更长的序列中召回单词。
值得特别注意的是,我认为更好地了解 LSTM 网络以及语言模型建模了哪些信息越来越重要,因为这似乎是 NLP 领域的研究不断前进的一项重要推动力,正如我们关于语言模型微调的 ACL 2018 论文( http://arxiv.org/abs/1801.06146 )以及这篇讲 NLP 领域的 ImageNet 时代已经到来 的文章讨论的那样。
理解目前最先进的模型
尽管上面提到的研究工作都是试图了解某个特定的模型类别的泛化能力的某个层面,本届 ACL 还有一些论文着眼于更好地理解目前用于特定任务的最好的模型:
-
Glockner 等人( http://arxiv.org/abs/1805.02266 )着眼于自然语言推理的任务。他们创建了一个数据集,该数据集中的句子与训练数据中的句子最多只有一个单词不同,这样做是为了测试模型是否可以进行简单的词汇推断。他们发现当前最佳的模型无法完成许多简单的推断工作。
-
Mudrkarta 等人( https://arxiv.org/abs/1805.05492 )对当前最顶级的 QA 模型进行了跨模态分析,发现这些模型常常会忽略关键发问词。接着,他们对问题进行了扰动处理,以制造可以大大降低模型准确率的对抗样本。
我发现许多论文对模型的不同层面进行了探索。我希望这些新出现的数据集可以成为每位自然语言处理研究人员 工具 包中的标准工具。这样一来,我们不仅可以在未来看到更多这样的论文,而且这样的分析也可能成为除误差分析和模型简化测试以外标准模型评估的一部分。
分析归纳偏倚
另一种更好地了解一个模型的方式是分析模型的归纳偏倚。自然语言处理神经架构的语言结构相关性 workshop(RELSNNLP workshop)试着探究将语言结构融入模型有多大的作用。Chris Dyer 在 workshop 上的发言的重点之一是:循环神经网络(RNN)对自然语言处理(NLP)是否具备有用的归纳偏倚。特别是,他认为有几条明显的证据可以证明 RNN 更偏向于顺序近因效应 ,即:
-
随着时间的推移,梯度会逐渐衰减。LSTM 或 GRU 可能会帮助我们减缓这种趋势,但它们也会遗忘掉梯度的信息。
-
人们在训练机器翻译模型时会使用反转输入序列这样的训练机制。
-
人们使用类似注意力机制的增强功能与时间上更早期的内容建立直接的联系。
-
针对主谓一致建模,误差率会随着吸引子的增加而增加( http://arxiv.org/abs/1611.01368 )。
据 Chomsky 所言,顺序近因效应并不是学习人类语言的正确偏倚,因此就语言建模任务而言,RNN 网络带有的偏倚似乎并不是很合适。这样的做法在实践中就可能会导致统计意义上的效率低和以及泛化能力差的问题。语法 RNN ( http://arxiv.org/abs/1602.07776 )是一类通过将句子压缩成其成分来顺序生成一个树结构以及一个序列的模型,而不是对句法(而非顺序)近因有偏倚。
然而,要确定模型是否具有有用的归纳偏倚通常是很难的。为了识别出主谓一致关系,Chris 假设 LSTM 语言模型学习到了一种非结构性的「第一名词」启发式,它依赖于将动词与句子中的第一个名词相匹配。通常来说,困惑度(以及其他评价指标)与句法能力或结构能力相关。然而,在从使用更简单的启发式的模型中区分出结构敏感的模型时,困惑度则并不是特别敏感。
使用深度学习技术理解语言
Mark Johnson 在 workshop 的演讲中提到,尽管深度学习为自然语言处理带来了很大程度的革命,但它的主要的好处还在于其经济性:用端到端模型代替了对成分复杂的处理流程,往往可以更快、更容易地实现目标准确性。深度学习并未改变我们对语言的理解,从这个意义上说, 深度学习主要的贡献在于证明神经网络(或者说这种计算模型)可以执行某些自然语言处理任务,这也表明这些任务并不是智能的指标 。虽然深度学习方法可以很好地对匹配和执行感知任务进行建模,但对于依赖于有意识的反应和思考的任务,它们的表现仍然差强人意。
引入语言结构
Jason Eisner 在演讲中对「语言结构和类别是否真的存在」这一问题提出质疑:是真的存在结构和类别,还是只不过「科学家们就是喜欢把数据分成堆」,因为不考虑语言结构的方法在机器学习任务中也可以表现得惊人的好。他发现即使是像音素「/b/」和音素「/p/」之间的差异这样「任意定义」的类别划分也会被进一步加强,然后具有一些意义。相比之下,神经网络模型就好比是性能良好的海绵,它可以吸收任何没有被显式建模的东西。
他提到了四种常用的方法,用以在模型中引入语言结构信息:a)通过基于流水线的方法,将语言类别作为特征引入;b)通过数据增强,用语言类别对数据进行扩充;c)通过多任务学习引入语言结构;d)通过结构化建模,例如使用基于转换的解析器、循环神经网络语法,甚至是像 BIO 标记法这样相互依赖的类引入语言信息。
Emily Bender 在也在 workshop 上有个演讲,其中她对「与语言无关的学习」整个想法提出了质疑: 即便你已经有一个某种语言的巨大的语料库,且你对这种语言其一无所知,那么在没有任何先验信息的情况下(例如,什么是功能词),那么你就无法学到句子的结构或含义 。她还指出许多机器学习论文将它们的方法描述得类似于婴儿学习的过程,但却没引用任何实际的发展心理学或语言获得方面的文献。实际上婴儿学习环境是有特殊情境、多种因素共同作用、带有主观感情的,它们包含了很多信号和意义。
理解 LSTM 的故障模式
更好地理解表征也是自然语言处理表征学习 workshop(Representation Learning for NLP workshop)的一个主题。Yoav Goldberg 在 workshop 上的演讲中详细介绍了他的小组为了更好地理解 RNN 的表征所做出的努力。特别是,他讨论了最近从 RNN 中提取有限状态自动机从而更好地了解模型学习到了什么的工作( http://arxiv.org/abs/1711.09576 )。他还提醒听众,就算是在某一个任务上训练过的,LSTM 表征并不是只针对特定的任务有效的。它们通常预测的是像数据分布统计这样的超出人类预期之外的层面。即便当模型用领域对抗损失来产生具有某种不变性的表征,表征的预测能力仍然会带有一些刚才说的那样的性质。因此,从编码语言数据中完全删除不需要的信息也是一个挑战,就算是看上去很完美的LSTM 模型也可能具有潜在的故障模式。
对于关于 LSTM 的故障模式的话题,今年获得 ACL 终身成就奖的 Mark Steedman也表达了与此主题非常契合的观点:「LSTM 在实践中是有效的,但是它们在理论上也是正确的吗?」
在更具挑战的环境下进行评估
对抗性样本
一个与更好地了解现有最佳模型的限制密切相关的主题是提出该如何改进这些模型的方法。与上面提到的文章提及的对抗性样本论文( https://arxiv.org/pdf/1805.05492.pdf )相似,有几篇文章试着使模型在面对对抗性样本时的鲁棒性更强:
-
Cheng 等人( https://arxiv.org/abs/1805.06130 )提出使自然语言机器翻译模型中的编码器和解码器在对抗输入扰动时更加鲁棒。
-
Ebrahimi 等人( http://arxiv.org/abs/1712.06751 )提出白盒对抗性样本,通过替换少量的单词来欺骗字符级别的神经网络分类器。
-
Ribeiro 等人( http://aclweb.org/anthology/P18-1079 )在之前的方法基础上加以改进。他们引入了保留语义、但会让模型的预测发生改变的扰动,然后把它泛化到会在许多实例下产生对抗性状况的规则上。
-
Bose 等人( https://arxiv.org/abs/1805.03642 )用对抗学习采样器将对抗性样本和噪声对比评估结合在一起,该采样器会发现更难的负例,这样模型就可以更好地学习表征。
学习鲁棒和公平的表征
Tim Baldwin 在 RepL4NLP workshop 上讨论了在领域转换时使模型更鲁棒的不同方法。幻灯片参见 谷歌盘 。就单源域而言,他讨论了一种基于不同类句法和语义噪声在语言上扰乱训练实例的方法( http://www.aclweb.org/anthology/E/E17/E17-2004.pdf )。在多源域环境中,他提出可以在源域上训练对抗模型( https://arxiv.org/abs/1805.06088 )。最后,他讨论了一种可以学习鲁棒的、有隐私保护能力的文本表示的方法( https://arxiv.org/abs/1805.06093 )。
Margaret Mitchell 专注于公平且可以保护隐私的表征。她特别强调了有关世界的描述性视角和规范性视角之间的区别。 机器学习模型学习的表征反应了对应的训练数据的描述性视角。训练数据代表了「人们口中的世界」 。然而,有关公平性的研究也在试图创建可以反应世界的规范性视图的表征,这就要获得我们的价值观并将其注入到表征中去。
改进评估方法
除了增强模型的鲁棒性,还有几篇文章试图改进评估模型的方法:
-
Finegan-Dollak 等人( http://arxiv.org/abs/1806.09029 )明确了现有 text-to-SQL 系统的评估方法并提出了改进方法。他们认为现有的训练集-测试集分割和变量匿名化过程存在缺陷,于是他们提出了七个数据集的标准改进版本以修复这些缺陷。
-
Dror 等人的工作( https://ie.technion.ac.il/~roiri/papers/ACL-2018-sig-cr.pdf )则关注于一种老生常谈、但很少被真正实践或做的不好的做法:统计显著性检验。特别地,他们调查了近些年的ACL 和 TACL 2017 中的实证论文后发现,统计显著性检验常被忽略或误用,于是他们提出了一种用于自然语言处理任务的简单的统计显著性检验选择协议。
-
Chaganty 等人( http://arxiv.org/abs/1807.02202 )调查了如 BLEU 和 ROUGE 这样的自动指标的偏差,然后发现即使是无偏估计也只能相对地减少误差。该工作强调了改进自动指标的相关性和减少人类标记的方差的必要性。
强大的对比基线
另一种改善模型评估的方式是将新模型和更强的基线进行比较,这是为了确保改进的方法效果显著。以下是一些着眼于这个研究方向的论文:
-
Shen 等人( https://arxiv.org/abs/1805.09843 )系统地比较了带池化技术的基于词嵌入的方法和像 LSTM 和 CNN 这样更复杂的模型。他们发现对大多数数据集而言,基于词嵌入的方法都表现出了与后者相当、甚至更好的性能。
-
Ethayarajh ( http://www.aclweb.org/anthology/W18-3012 )在 RepL4NLP workshop 上针对句子嵌入模型提出了一种强大的对比基线。
-
与此同时,Ruder 和 Plank ( https://arxiv.org/abs/1804.09530 )发现像「Tri-training」这样的经典的自展算法为半监督学习提供了强大的基线,其结果甚至要比当前最佳的方法还要好。
在上文中,我们强调了在像超出分布的数据上和针对不同任务这样更具挑战的环境中进行评估的重要性。如果我们仅仅只关注单个任务或领域内数据,研究结果则会有所不同。我们需要在对抗条件下测试模型以更好地了解模型的鲁棒性以及它们在实际问题中的泛化能力。
创建更具有挑战性的数据集
想要在这样的环境下进行评估,就需要创建更具挑战的数据集。Yejin Choi 在 RepL4NLP 的圆桌讨论(总结请参阅: https://twitter.com/seb_ruder/status/1020196710050455554 )中指出, 大家对于 SQuAD 或 bAbI 这样过于简单并且基本已经解决了的任务投入了过多的注意力 。Yoav Goldberg 甚至认为「SQuAD 就好比自然语言处理领域的 MNIST数据集(图像识别最基础的数据集之一)一样」。相反,我们应该将注意力集中在更具有挑战性的任务以及开发更多难度更高的数据集上。但是如果数据集过于复杂,人们也无法对其进行处理。实际上,人们不应该花费过多时间处理数据集,因为人们最近已经可以高效地对数据集进行处理,而创建新的、更具挑战的数据集更为重要。本届 ACL 会议上,研究人员提出了两个用于阅读理解、试图超越 SQuAD 的数据集:
-
QAngaroo( http://qangaroo.cs.ucl.ac.uk/ , http://arxiv.org/abs/1710.06481 )专注于需要通过多个推理步骤收集多条信息的阅读理解。
-
NarrativeQA( https://github.com/deepmind/narrativeqa , http://arxiv.org/abs/1712.07040 )要求阅读器通过阅读整本书或者电影剧本回答故事的相关问题,从而理解其潜在含义。
-
Richard Socher 在机器阅读问答 workshop(Machine Reading for Question Answering workshop)的演讲(总结见 https://twitter.com/RichardSocher/status/1021917140801052672 )中强调了在多任务中训练和评估模型的重要性。特别地,他指出自然语言处理需要不同类型的推断,例如逻辑推断、语言推断、情感推断等,而显然单任务无法满足这样的要求。
在多种资源质量较差的语言中进行评估
另一个重要的议题是要在多种语言上评估模型。Emily Bender 调查了 50 篇 NAACL 2018 的论文,她发现 有 42 篇都评估了一种没有指出名字的神秘语言 (当然是英语了)。她强调,为每项工作处理的语言命名很重要,因为不同语言有不同的语言结构;不提及处理的语言会让研究结论变得模糊。
如果我们将自然语言处理的方法设计为跨语言方法,那么就应该在资源质量较差的语言这样更具挑战的设置上对其进行额外的评估。举例而言,下面的两篇论文都指出,如果目标语言与爱沙尼亚语或芬兰语都不同的话,现有的无监督双语字典方法都会失效:
-
Søgaard 等人( https://arxiv.org/abs/1805.03620 )进一步探讨了现有方法的局限性并指出:当嵌入是在不同领域上训练或使用不同算法时,这些方法都会失败。他们最终提出一个度量标准来量化这些方法的潜力。
-
Artetxe 等人( https://arxiv.org/abs/1805.06297 )提出一种新的无监督自训练方法,该方法采用了更好的初始化来引导优化过程,这种方法对于不同的语言对而言十分强大。
此外,还有其他几篇文章也在资源质量较差的语言上评估了他们的方法:
-
Dror 等人( https://www.cs.rochester.edu/u/gildea/pubs/riley-gildea-acl18.pdf )建议用正交特征归纳双语词典。尽管这主要对相关的语言有帮助,但它们也可以对如英语-芬兰语这样的不相似的语言对进行评估。
-
Ren 等人( http://arxiv.org/abs/1805.04813 )最后建议利用另一种资源丰富的语言辅助资源匮乏的语言的翻译。他们发现他们的模型显著提升了罕见语种的翻译质量。
-
Currey 和 Heafield ( https://kheafield.com/papers/edinburgh/unsupervised_tree_paper.pdf )提出一种采用 Gumbel tree-LSTM 的用于自然语言机器翻译的无监督的 tree-to-sequence 模型。结果证明他们的模型对资源质量较差的语言而言尤其有用。
自然语言处理研究的进展
会议期间的另一个议题是自然语言处理领域取得的显著进展。ACL 主席 Marti Hearst 在她的主旨演讲中涉及到了这个部分。她过去常以 Stanley Kubrick 的HAL 9000(见下图)为例来展示我们的模型能做和不能做的事。近些年,由于我们的模型已经学会执行像识别和生成人类演讲和唇形识别这样十几年前无法完成的任务,因此她这样的做法现在就显得有点无聊了。诚然,我们离像辩论这样需要深度理解语言和推理的任务还是很远,但是自然语言处理取得的进展还是十分显著的。
Hal 9000. (Source: CC BY 3.0, Wikimedia)
Marti 还引用了自然语言处理(NLP)和信息检索(IR)的先驱者 Karen Spärck Jones 的话:「研究不是在绕圈,而是在攀爬螺旋式的楼梯。打个未必恰当的比方, 这些楼梯未必是相连的,但是它们都朝着同一个方向前进 」。她还表达了一种能引起许多人的共鸣的观点:在 20 世纪 80 和 90 年代,只有少数的论文可供阅读,紧跟最新的科研成果就容易得多。为了使紧跟最新成果变得更容易,我最近建立了一个新 文档( http://nlpprogress.com )以收集针对不同自然语言处理任务的最新的成果。
自然语言处理领域正处于蓬勃的发展中,她鼓励人们参与到 ACL 中,贡献自己的一份力量。她还为最努力工作的 ACL会员颁发了 ACL 杰出服务奖。此外,ACL 2018 还(在 1982 年的 EACL 和 2000 年的NAACL 之后)启动了其第三个子会议 AACL(计算语言学协会亚太分会: http://aaclweb.org/ )
本届 ACL 的会务会谈重点讨论了该如何应对随着研究的发展所产生的挑战:提交的论文数量不断增加,因此需要更多的审稿人员。我们期望在明年的会议上看到新的可以处理大量提交论文所做的努力。
强化学习
让我们把视线拉回到 2016 年,那时人们就在寻找强化学习(RL)在自然语言处理中的用武之地,并将其应用在越来越多的任务中。近一段时间,尽管监督学习看起来更加适用于大多数任务,但对某些具有时序依赖的任务(例如在训练和建模对话时选择数据)来说,强化学习的动态特性使其成为最有用的方式。强化学习的另一个重要应用是 直接优化像 ROUGE 或 BLEU 这样的度量指标 ,而不是优化像交叉熵这样的替代损失。文本总结和机器翻译是这一领域的成功应用案例。
逆向强化学习在过于复杂而无法指定奖励的环境中有很大的价值。视觉化叙事是这方面的一个成功的应用案例。深度学习特别适用于在自然语言处理领域中如玩一些基于文本的游戏、浏览网页并完成相应的任务这样的序贯决策问题。「用于自然语言处理的深度强化学习教程」( https://www.cs.ucsb.edu/~william/papers/ACL2018DRL4NLP.pdf )提供了对这一领域全面的概述。
教程
实际上,还有其它很棒的教程。我尤其喜欢的是变分推断和深度生成模型教程( https://github.com/philschulz/VITutorial )。关于语义解析( https://github.com/allenai/acl2018-semantic-parsing-tutorial )的教程和「你一定想知道的关于语义和实践的100 件事」( http://faculty.washington.edu/ebender/100things-sem_prag.html )都很值得一看。请参阅以下链接获得完整的教程列表: https://acl2018.org/tutorials/ 。
via blog.aylien.com ,雷锋网 (公众号:雷锋网) AI 科技评论编译
雷锋网原创文章,未经授权禁止转载。详情见 转载须知 。
以上所述就是小编给大家介绍的《参会见闻系列:ACL 2018,在更具挑战的环境下理解数据表征及方法评价》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- MySQL数据表合并去重
- 小白学 Python 数据分析(13):Pandas (十二)数据表拼接
- PHPRAP 2.0.2 发布,接口和字段数据分离,字段使用单独数据表
- 验证一个值是否已经存在数据表中
- Kettle 7.1 连接HBase数据表
- 搞定PHP面试 - MySQL基础知识点整理 - 数据类型和数据表管理
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
C++Primer Plus
Stephen Prata、孙建春、韦强 / 孙建春、韦强 / 人民邮电出版社 / 2005-5 / 72.00元
C++ Primer Plus(第五版)中文版,ISBN:9787115134165,作者:(美)Stephen Prata著;孙建春,韦强译一起来看看 《C++Primer Plus》 这本书的介绍吧!