15年来,自然语言处理发展史上的8大里程碑

640?wx_fmt=png

来源:Deep Tech深科技


自然语言是人类独有的智慧结晶。自然语言处理(Natural  Language Processing,NLP)是计算机科学领域与人工智能领域中的一个重要方向,旨在研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。用自然语言与计算机进行通信,有着十分重要的实际应用意义,也有着革命性的理论意义。

 

由于理解自然语言,需要关于外在世界的广泛知识以及运用操作这些知识的能力,所以自然语言处理,也被视为解决人工智能完备(AI-complete)的核心问题之一。对自然语言处理的研究也是充满魅力和挑战的。

 

本文是来自自然语言处理领域从业人员、知名博主 Sebatian Ruder的一篇文章,主要从神经网络技术方法的角度,讨论自然语言处理领域近 15 年来的重大进展,并总结出与当下息息相关的 8 大里程碑事件。文章内容难免会省略了一些其它重要的相关工作,同时,这份总结偏向于神经网络相关技术,这并不意味着在这段时间内其它技术领域就没有重要的进展。值得注意的是,文中提及的很多神经网络模型都是建立在同一时期非神经网络技术的里程碑之上的,在文章的最后,我们强调了这些打下坚实基础的重要成果。

 

2001年——神经语言模型(Neurallanguage models)

640?


语言模型解决的是在给定已出现词语的文本中,预测下一个单词的任务。这可以算是最简单的语言处理任务,但却有许多具体的实际应用,例如智能键盘、电子邮件回复建议等。当然,语言模型的历史由来已久。经典的方法基于 n-grams 模型(利用前面 n 个词语预测下一个单词),并利用平滑操作处理不可见的 n-grams。

 

第一个神经语言模型,前馈神经网络(feed-forward neuralnetwork),是 Bengio 等人于 2001 年提出的。如图 1 所示。

 

640?wx_fmt=png

图 1 | 前馈神经网络语言模型(Bengio et al., 2001; 2003)

 

这个模型以某词语之前出现的 n 个词语作为输入向量。今天,这样的向量被称为大家熟知的词嵌入(word embeddings)。这些词嵌入在级联后进入一个隐藏层,该层的输出然后通过一个 softmax 层。

 

近年来,用于构建语言模型的前馈神经网络已经被循环神经网络(RNNs)和长短期记忆神经网络(LSTMs)取代。虽然后来提出的许多新模型在经典的 LSTM 上进行了扩展,但它仍然是强有力的基础模型。甚至 Bengio 等人的经典前馈神经网络在某些设定下也和更复杂的模型效果相当,因为这些任务只需要考虑邻近的词语。更好地理解语言模型究竟捕捉了哪些信息也是当今一个活跃的研究领域。

 

语言模型的建立是一种无监督学习(unsupervised learning),Yann LeCun 也将其称之为预测学习(predictive learning),是获得世界如何运作常识的先决条件。关于语言模型最引人注目的是,尽管它很简单,但却与后文许多核心进展息息相关。

 

反过来,这也意味着自然语言处理领域的许多重要进展都可以简化为某种形式的语言模型构建。但要实现对自然语言真正意义上的理解,仅仅从原始文本中进行学习是不够的,我们需要新的方法和模型。

 

2008年——多任务学习(Multi-tasklearning)640?


多任务学习是在多个任务下训练的模型之间共享参数的方法,在神经网络中可以通过捆绑不同层的权重轻松实现。多任务学习的思想在 1993 年由 Rich Caruana 首次提出,并应用于道路追踪和肺炎预测。多任务学习鼓励模型学习对多个任务有效的表征描述。这对于学习一般的、低级的描述形式、集中模型的注意力或在训练数据有限的环境中特别有用。

 

多任务学习于 2008 年被Collobert 和 Weston 等人首次在自然语言处理领域应用于神经网络。在他们的模型中,词嵌入矩阵被两个在不同任务下训练的模型共享,如图 2 所示。

 

640?wx_fmt=png

图 2 | 词嵌入矩阵共享(Collobert & Weston, 2008; Collobert et al., 2011)

 

共享的词嵌入矩阵使模型可以相互协作,共享矩阵中的低层级信息,而词嵌入矩阵往往构成了模型中需要训练的绝大部分参数。Collobert 和 Weston 发表于 2008 年的论文,影响远远超过了它在多任务学习中的应用。它开创的诸如预训练词嵌入和使用卷积神经网络处理文本的方法,在接下来的几年被广泛应用。他们也因此获得了 2018 年机器学习国际会议(ICML)的 test-of-time 奖。

 

如今,多任务学习在自然语言处理领域广泛使用,而利用现有或“人工”任务已经成为 NLP 指令库中的一个有用工具。虽然参数的共享是预先定义好的,但在优化的过程中却可以学习不同的共享模式。当模型越来越多地在多个任务上进行测评以评估其泛化能力时,多任务学习就变得愈加重要,近年来也涌现出更多针对多任务学习的评估基准。

 

2013年——词嵌入

640?

 

通过稀疏向量对文本进行表示的词袋模型,在自然语言处理领域已经有很长的历史了。而用稠密的向量对词语进行描述,也就是词嵌入,则在 2001 年首次出现。2013 年Mikolov 等人工作的主要创新之处在于,通过去除隐藏层和近似计算目标使词嵌入模型的训练更为高效。尽管这些改变在本质上是十分简单的,但它们与高效的 word2vec(word to vector,用来产生词向量的相关模型)组合在一起,使得大规模的词嵌入模型训练成为可能。

 

Word2vec 有两种不同的实现方法:CBOW(continuous bag-of-words)和 skip-gram。它们在预测目标上有所不同:一个是根据周围的词语预测中心词语,另一个则恰恰相反。如图 3 所示。

 

640?wx_fmt=png

图 3 | CBOW 和skip-gram 架构(Mikolov et al., 2013a; 2013b)

 

虽然这些嵌入与使用前馈神经网络学习的嵌入在概念上没有区别,但是在一个非常大语料库上的训练使它们能够获取诸如性别、动词时态和国际事务等单词之间的特定关系。如下图 4 所示。

 

640?wx_fmt=png


图 4 | word2vec 捕获的联系(Mikolov et al., 2013a; 2013b)

 

这些关系和它们背后的意义激起了人们对词嵌入的兴趣,许多研究都在关注这些线性关系的来源。然而,使词嵌入成为目前自然语言处理领域中流砥柱的,是将预训练的词嵌入矩阵用于初始化可以提高大量下游任务性能的事实。

 

虽然 word2vec 捕捉到的关系具有直观且几乎不可思议的特性,但后来的研究表明,word2vec 本身并没有什么特殊之处:词嵌入也可以通过矩阵分解来学习,经过适当的调试,经典的矩阵分解方法 SVD 和 LSA 都可以获得相似的结果。

 

从那时起,大量的工作开始探索词嵌入的不同方面。尽管有很多发展,word2vec 仍然是目前应用最为广泛的选择。Word2vec 的应用范围也超出了词语级别:带有负采样的 skip-gram——一个基于上下文学习词嵌入的方便目标,已经被用于学习句子的表征。它甚至超越了自然语言处理的范围,被应用于网络和生物序列等领域。

 

一个激动人心的研究方向是在同一空间中构建不同语言的词嵌入模型,以达到(零样本)跨语言转换的目的。通过无监督学习构建这样的映射变得越来越有希望(至少对于相似的语言来说),这也为语料资源较少的语言和无监督机器翻译的应用程序创造可能。

 

2013年——用于自然语言处理的神经网络

640?


2013年 和 2014 年是自然语言处理领域神经网络时代的开始。其中三种类型的神经网络应用最为广泛:循环神经网络(recurrent neural networks)、卷积神经网络(convolutionalneural networks)和结构递归神经网络(recursive neural networks)。

 

循环神经网络是 NLP 领域处理动态输入序列最自然的选择。Vanilla 循环神经网络很快被经典的长短期记忆网络(long-shortterm memory networks,LSTM)代替,该模型能更好地解决梯度消失和梯度爆炸问题。在 2013 年之前,人们仍认为循环神经网络很难训练,直到 Ilya Sutskever 博士的论文改变了循环神经网络这一名声。双向的长短期记忆记忆网络通常被用于同时处理出现在左侧和右侧的文本内容。LSTM 结构如图 5 所示。

 

640?wx_fmt=png

图 5 | LSTM 网络(来源:ChrisOlah)

 

应用于文本的卷积神经网络只在两个维度上进行操作,卷积层只需要在时序维度上移动即可。图6 展示了应用于自然语言处理的卷积神经网络的典型结构。

 

640?wx_fmt=png

图 6 | 卷积神经网络(Kim,2014)

 

与循环神经网络相比,卷积神经网络的一个优点是具有更好的并行性。因为卷积操作中每个时间步的状态只依赖于局部上下文,而不是循环神经网络中那样依赖于所有过去的状态。卷积神经网络可以使用更大的卷积层涵盖更广泛的上下文内容。卷积神经网络也可以和长短期记忆网络进行组合和堆叠,还可以用来加速长短期记忆网络的训练。

 

循环神经网络和卷积神经网络都将语言视为一个序列。但从语言学的角度来看,语言是具有层级结构的:词语组成高阶的短语和小句,它们本身可以根据一定的产生规则递归地组合。这激发了利用结构递归神经网络,以树形结构取代序列来表示语言的想法,如图 7 所示。

 

640?wx_fmt=png

图 7 | 结构递归神经网络(Socher et al., 2013)

 

结构递归神经网络自下而上构建序列的表示,与从左至右或从右至左对序列进行处理的循环神经网络形成鲜明的对比。树中的每个节点是通过子节点的表征计算得到的。一个树也可以视为在循环神经网络上施加不同的处理顺序,所以长短期记忆网络则可以很容易地被扩展为一棵树。

 

不只是循环神经网络和长短期记忆网络可以扩展到使用层次结构,词嵌入也可以在语法语境中学习,语言模型可以基于句法堆栈生成词汇,图形卷积神经网络可以树状结构运行。

 

2014年——序列到序列模型(Sequence-to-sequencemodels)

640?

 

2014 年,Sutskever 等人提出了序列到序列学习,即使用神经网络将一个序列映射到另一个序列的一般化框架。在这个框架中,一个作为编码器的神经网络对句子符号进行处理,并将其压缩成向量表示;然后,一个作为解码器的神经网络根据编码器的状态逐个预测输出符号,并将前一个预测得到的输出符号作为预测下一个输出符号的输入。如图 8 所示。

 

640?wx_fmt=png

图 8 | 序列到序列模型(Sutskever et al., 2014)

 

机器翻译是这一框架的杀手级应用。2016 年,谷歌宣布他们将用神经机器翻译模型取代基于短语的整句机器翻译模型。谷歌大脑负责人 Jeff Dean 表示,这意味着用 500 行神经网络模型代码取代 50 万行基于短语的机器翻译代码。

 

由于其灵活性,该框架在自然语言生成任务上被广泛应用,其编码器和解码器分别由不同的模型来担任。更重要的是,解码器不仅可以适用于序列,在任意表示上均可以应用。比如基于图片生成描述(如图 9)、基于表格生成文本、根据源代码改变生成描述,以及众多其他应用。

 

640?wx_fmt=png

图 9 | 基于图像生成标题(Vinyalset al., 2015)

 

序列到序列的学习甚至可以应用到自然语言处理领域常见的结构化预测任务中,也就是输出具有特定的结构。为简单起见,输出就像选区解析一样被线性化(如图 10)。在给定足够多训练数据用于语法解析的情况下,神经网络已经被证明具有产生线性输出和识别命名实体的能力。

 

640?wx_fmt=png

图 10 | 线性化选区解析树(Vinyalset al., 2015)

 

序列的编码器和解码器通常都是基于循环神经网络,但也可以使用其他模型。新的结构主要都从机器翻译的工作中诞生,它已经成了序列到序列模型的培养基。近期提出的模型有深度长短期记忆网络、卷积编码器、Transformer(一个基于自注意力机制的全新神经网络架构)以及长短期记忆依赖网络和的 Transformer 结合体等。

 

2015年——注意力机制

640?


注意力机制是神经网络机器翻译 (NMT) 的核心创新之一,也是使神经网络机器翻译优于经典的基于短语的机器翻译的关键。序列到序列学习的主要瓶颈是,需要将源序列的全部内容压缩为固定大小的向量。注意力机制通过让解码器回顾源序列的隐藏状态,以此为解码器提供加权平均值的输入来缓解这一问题,如图 11 所示。

 

640?wx_fmt=png

图 11 | 注意力机制(Bahdanau et al., 2015)

 

之后,各种形式的注意力机制涌现而出。注意力机制被广泛接受,在各种需要根据输入的特定部分做出决策的任务上都有潜在的应用。它已经被应用于句法分析、阅读理解、单样本学习等任务中。它的输入甚至不需要是一个序列,而可以包含其他表示,比如图像的描述(图 12)。

 

注意力机制一个有用的附带作用是它通过注意力权重来检测输入的哪一部分与特定的输出相关,从而提供了一种罕见的虽然还是比较浅层次的,对模型内部运作机制的窥探。


640?wx_fmt=png

图 12 | 图像描述模型中的视觉注意力机制指示在生成”飞盘”时所关注的内容(Xu etal., 2015)

 

注意力机制也不仅仅局限于输入序列。自注意力机制可以用来观察句子或文档中周围的单词,获得包含更多上下文信息的词语表示。多层的自注意力机制是神经机器翻译前沿模型 Transformer 的核心。

 

2015年——基于记忆的神经网络

640?

 

注意力机制可以视为模糊记忆的一种形式,其记忆的内容包括模型之前的隐藏状态,由模型选择从记忆中检索哪些内容。与此同时,更多具有明确记忆单元的模型被提出。他们有很多不同的变化形式,比如神经图灵机(Neural Turing Machines)、记忆网络(Memory Network)、端到端的记忆网络(End-to-end Memory Newtorks)、动态记忆网络(DynamicMemory Networks)、神经可微计算机(Neural Differentiable Computer)、循环实体网络(RecurrentEntity Network)。

 

记忆的存取通常与注意力机制相似,基于与当前状态且可以读取和写入。这些模型之间的差异体现在它们如何实现和利用存储模块。比如说,端到端的记忆网络对输入进行多次处理并更新内存,以实行多次推理。神经图灵机也有一个基于位置的寻址方式,使它们可以学习简单的计算机程序,比如排序。基于记忆的模型通常用于需要长时间保留信息的任务中,例如语言模型构建和阅读理解。记忆模块的概念非常通用,知识库和表格都可以作为记忆模块,记忆模块也可以基于输入的全部或部分内容进行填充。

 

2018——预训练的语言模型

640?

 

预训练的词嵌入与上下文无关,仅用于初始化模型中的第一层。近几个月以来,许多有监督的任务被用来预训练神经网络。相比之下,语言模型只需要未标记的文本,因此其训练可以扩展到数十亿单词的语料、新的领域、新的语言。预训练的语言模型于 2015 年被首次提出,但直到最近它才被证明在大量不同类型的任务中均十分有效。语言模型嵌入可以作为目标模型中的特征,或者根据具体任务进行调整。如下图所示,语言模型嵌入为许多任务的效果带来了巨大的改进。

 

640?wx_fmt=png

图 13 | 改进的语言模型嵌入(Peterset al., 2018)

 

使用预训练的语言模型可以在数据量十分少的情况下有效学习。由于语言模型的训练只需要无标签的数据,因此他们对于数据稀缺的低资源语言特别有利。

 

其他里程碑

640?

 

一些其他进展虽不如上面提到的那样流行,但仍产生了广泛的影响。

 

基于字符的描述(Character-based representations)

 

在字符层级上使用卷积神经网络和长短期记忆网络,以获得一个基于字符的词语描述,目前已经相当常见了,特别是对于那些语言形态丰富的语种或那些形态信息十分重要、包含许多未知单词的任务。据目前所知,基于字符的描述最初用于序列标注,现在,基于字符的描述方法,减轻了必须以增加计算成本为代价建立固定词汇表的问题,并使完全基于字符的机器翻译的应用成为可能。

 

对抗学习(Adversarial learning)

 

对抗学习的方法在机器学习领域已经取得了广泛应用,在自然语言处理领域也被应用于不同的任务中。对抗样例的应用也日益广泛,他们不仅仅是探测模型弱点的工具,更能使模型更具鲁棒性(robust)。(虚拟的)对抗性训练,也就是最坏情况的扰动,和域对抗性损失(domain-adversariallosses)都是可以使模型更具鲁棒性的有效正则化方式。生成对抗网络 (GANs) 目前在自然语言生成任务上还不太有效,但在匹配分布上十分有用。

 

强化学习(Reinforcement learning)

 

强化学习已经在具有时间依赖性的任务上证明了它的能力,比如在训练期间选择数据和对话建模。在机器翻译和概括任务中,强化学习可以有效地直接优化”红色”和”蓝色”这样不可微的度量,而不必去优化像交叉熵这样的代理损失函数。同样,逆向强化学习(inverse reinforcement learning)在类似视频故事描述这样的奖励机制非常复杂且难以具体化的任务中,也非常有用。


编辑:维尼 责编:王新凯

参考:

http://blog.aylien.com/a-review-of-the-recent-history-of-natural-language-processing/


未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能,互联网和脑科学交叉研究机构。


未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”

640?wx_fmt=jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/493882.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最短路径实现

主要工具 QGIS建立拓扑关系 Postgres存储数据表 Geoserver发布相关服务 QGIS建立拓扑关系 使用v.clean运行,并用DBManager即可以建立拓扑关系并导入数据库。 注意 QGIS2.16有数据溢出问题,使用QGIS2.14可以解决这个问题 Postgres存储数据表 导…

2019将成机器学习关键年:中美AI或有一战

作者 | Hussain Fakhruddin译者 | 大小非编辑 | Vincent 来源 | AI前线(ID:ai-front)导读:2019 年将是机器学习关键的一年。ML 已经成为全球数字转型的关键要素之一——到 2021 年底,累计投资预计将达到 580 亿美元。在企业应用领域&#xff…

深度 | IBM长文解读人工智能、机器学习和认知计算

来源:人工智能产业链联盟人工智能的发展曾经经历过几次起起伏伏,近来在深度学习技术的推动下又迎来了一波新的前所未有的高潮。近日,IBM 官网发表了一篇概述文章,对人工智能技术的发展过程进行了简单梳理,同时还图文并…

多变量线性回归

目前为止,我们探讨了单变量/特征的回归模型,现在我们对房价模型增加更多的特征, 例如房间数楼层等,构成一个含有多个变量的模型,模型中的特征为(x1,x2,…,xn) 增添更多特征后,我们引入一系列新的注释: n 代表特征的数量 x(i)代表第 i 个训练实例,是特征矩阵中的第 i 行,是一…

人工智能乌托邦 迪拜认为2071年人类应该这样生活!

来源:网易智能不同于硅谷老牌的科技力量,迪拜一直是独特的存在。他们日益崛起的科技实力正在被验证,无论是全面AI化的基础建设和城市治安力量,还是频频登上全球科技头条的机器人警察和空中出租车,迪拜试图摆脱很多人眼…

逻辑回归与正则化

在分类问题中,你要预测的变量 y 是离散的值,我们将学习一种叫做逻辑回归 (Logistic Regression) 的算法,这是目前最流行使用最广泛的一种学习算法。 在分类问题中,我们尝试预测的是结果是否属于某一个类(例如正确或错误)。分类问 题的例子有:判断一封电子邮件是否是垃圾邮件;判…

万字报告!一文看懂全球车厂的技术家底模块化平台

来源:智东西摘要:介绍模块化平台以及该平台对车企的重要意义,详解车企模块化平台布局。汽车的研发制造方式经历了手工作坊式到标准化流水线再到平台化,目前主流车企纷纷采取模块化平台方式。汽车模块化平台研发制造是指车企基于通…

西湖大学全披露:68位顶级科学家加盟,已获捐资35亿,最小捐赠者12岁

来源:量子位最终,2018年10月20日,成为了西湖大学的成立日。在刚结束的成立大会上,5名诺贝尔奖得主、70余位国内外校长及代表、近百位捐赠人齐聚。可谓少长咸集,高朋满座,生而备受期待。而且就在创立大会上&…

字体大宝库:设计师必备的专业免费英文字体

字体绝对是每一个设计非常重要的部分,设计者总是希望有最好的免费字体,以保持他们字体库的更新。所以今天我要向设计师们分享一个专业的免费英文字体集合。这些免费的字体是适用于任何类型的图形设计:Web,打印,动态图形…

神经网络学习

代价函数 首先引入一些便于稍后讨论的新标记方法: 假设神经网络的训练样本有 m 个,每个包含一组输入 x 和一组输出信号 y,L 表示神经 网络层数,Sl表示每层的 neuron 个数(SL表示输出层神经元个数),SL代表最后一层中处理 单元的个数。 将神经网络的分类定义为两种情况:二类分…

干货|深度!“人工智能+制造”产业发展研究报告

来源::腾讯研究院工业革命以后的“自动化”概念追求的是机器自动生产,本质是“机器替人”,强调在完全不需要人的情况下进行不间断的大规模机器生产;而“智能化”追求的是机器的柔性生产,本质是“人机协同”…

机器学习系统设计与建议

当我们在运用训练好了的模型来预测未知数据的时候发现有较大的误差,我们下一步可以 做什么? 1. 获得更多的训练实例——通常是有效的,但代价较大,下面的方法也可能有效,可 考虑先采用下面的几种方法。 2. 尝试减少特征的数量 3. 尝试获得更多的特征 4. 尝试增加多项式特征…

李飞飞重返斯坦福后的大动作:开启「以人为中心的AI计划」

来源:网络大数据刚刚,李飞飞宣布斯坦福开启「以人为中心的 AI 计划」(Human-Centered AI Initiative,HAI),该项目由李飞飞和斯坦福大学前教务长 John Etchemendy 共同主导,Chris Manning 也参与其中。李飞飞在 twitter…

支持向量机学习

与逻辑回归和神经网络相比,支持向量机,或者简称 SVM,在学习复杂的非线性 方程时 供了一种更为清晰,更加强大的方式 如果我们用一个新的代价函数来代替,即这条从 0 点开始的水平直线,然后是一条斜 线,像上图。那么,现在让我给这两个方程命名,左边的函数,我称之为cost1(z),同时,…

中国安防行业十年报告:产值增涨四倍!双巨头全球称雄

来源:智东西近年来,安防是一个快速增长的行业, 过去十年, 复合 17%的行业增长率证明了行业的持续性,龙头份额提升持续获得超越平均的增速。 根据历史数据, 2008 年至 2017 年, 十年内中国安防行…

聚类算法学习

聚类是一种非监督学习方法 在一个典型的监督学习中,我们有一个有标签的训练集,我们的目标是找到能够区分正 样本和负样本的决策边界,在这里的监督学习中,我们有一系列标签,我们需要据此拟合一 个假设函数。与此不同的是,在非监督学习中,我们的数据没有附带任何标签,我们拿到…

斯坦福大学:极限工况下的无人驾驶路径跟踪|厚势汽车

来源: 同济智能汽车研究所责任编辑:啜小雪文章译自 2017 年美国控制年会的会议论文原标题:Path-Tracking for Autonomous Vehicles at the Limit of Friction原作者:Vincent A. Laurense, Jonathan Y. Gohand J. Christian Gerdes…

SQLite DBHelp

c#连接SQLite SQLite这个精巧的小数据库,无需安装软件,只需要一个System.Data.SQLite.DLL文件即可操作SQLite数据库。SQLite是一个开源数据库,现在已变得越来越流行,它的体积很小,被广泛应用于各种不同类型的应用中。S…

手写数字识别实现

本文主要实现手写数字识别,利用多类逻辑回归与神经网络两种方法实现 Multi-class Classification 数据源 There are 5000 training examples in ex3data1.mat, where each training example is a 20 pixel by 20 pixel grayscale image of the digit. Each pixe…

Science:若DTC基因检测达2%成年人群,几乎所有人的身份或将无所遁形

来源:测序中国摘要:直接面向消费者(DTC)的基因检测不仅仅是有趣那么简单,它的有用性随着样本数据库的积累,会逐渐显露出来。消费级基因检测,即直接面向消费者(DTC)的基因…