CN110945500A - 键值记忆网络 - Google Patents

键值记忆网络 Download PDF

Info

Publication number
CN110945500A
CN110945500A CN201880048452.3A CN201880048452A CN110945500A CN 110945500 A CN110945500 A CN 110945500A CN 201880048452 A CN201880048452 A CN 201880048452A CN 110945500 A CN110945500 A CN 110945500A
Authority
CN
China
Prior art keywords
key
value
vector representation
generating
iteration
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201880048452.3A
Other languages
English (en)
Inventor
亚历山大·霍顿·米勒
亚当·约书亚·费什
杰西·迪恩·道奇
阿米尔-侯赛因·卡里米
安托万·博尔德
詹森·E·韦斯顿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Meta Platforms Inc
Original Assignee
Facebook Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Facebook Inc filed Critical Facebook Inc
Publication of CN110945500A publication Critical patent/CN110945500A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24564Applying rules; Deductive queries
    • G06F16/24566Recursive queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Machine Translation (AREA)

Abstract

在一个实施例中,计算系统可以生成输入(例如,问题)的查询向量表示。系统可以基于查询向量表示和记忆中的键的键向量表示之间的比较来生成与键值记忆集合相关联的相关性度量。系统可以基于相关性度量和记忆中的值的值向量表示来生成聚合结果。通过迭代地更新每次迭代中所使用的查询向量表示的迭代过程,系统可以使用最终查询向量表示来生成最终聚合结果。可以基于最终聚合结果和最终查询向量表示来生成组合特征表示。系统可以基于组合特征表示与候选输出集合之间的比较,响应于输入来选择输出(例如,问题的答案)。

Description

键值记忆网络
技术领域
本公开总体上涉及被设计用于使用机器学习来回答问题的信息检索系统。
背景
问答(QA)一直是自然语言处理中的一个长期研究问题。例如,对于机器来说,基于嵌入答案的文本来回答像“Where did John drop the ball(约翰把球丢在哪里了)”这样的问题并不是一项无足轻重的任务。早期的问答(QA)系统基于信息检索,并且被设计成返回包含答案的文本片段,但在问题复杂性和响应覆盖范围方面存在限制。
大规模知识库(KB)的建立导致了一类基于语义分析的新的QA方法的发展,这种方法可以返回复杂组合问题的精确答案。KB有助于将信息组织成结构化的形式,促使最近的进展集中在通过将问题转换成可以用于查询此类数据库的逻辑形式来回答问题上。不幸的是,KB经常受到太多限制的困扰,因为模式(schema)不能支持某些类型的答案。KB中的可用信息也过于稀疏,因为从中得到答案的可用信息必须首先被处理并输入到KB中。因此,即使文档的语料库(例如,基于互联网的数据源)可包括问题的答案,但是除非语料库中的信息被输入到KB中,否则基于KB的QA系统将无法利用这样的信息。
然而,由于KB数据的稀疏性,主要的挑战从寻找答案转向开发高效的信息提取(IE)方法来自动填充KB。不幸的是,基于IE的知识源在范围上仍然受到限制,并且受到用于表示知识的模式的限制。
特定实施例的概述
本文描述的实施例(其可以被称为键值记忆网络(Key-Value Memory Network))使得机器能够接受输入(例如,问题、难题、任务等),并且作为响应,基于来自知识源的信息生成输出(例如,答案、解决方案、对任务的响应等)。键值记忆网络模型的实施例对被结构化为(键,值)对的符号记忆(symbolic memory)进行操作,这给了模型更大的灵活性来用于对知识源进行编码,并且有助于缩小直接读取文档和从KB进行回答之间的差距。通过能够将关于手头任务的先验知识编码在键值记忆中,键值记忆网络具有多功能性来分析例如,文档、KB、或使用信息提取所构建的KB,并回答关于它们的问题。键值记忆网络通过在记忆读取操作的寻址和输出阶段使用不同的编码使得读取文档(例如,维基百科(Wikipedia)页面、互联网的网页、书籍、文章等)更可行。这些模型可以应用于存储并读取用于其他任务的记忆,也可以应用于其他领域,例如应用于完整对话设置。
本文公开的实施例仅仅是示例,并且本公开的范围不限于它们。特定实施例可以包括上面公开的实施例的部件、要素、特征、功能、操作或步骤中的全部、一些或不包括这些。根据本发明的实施例在涉及方法、存储介质、系统和计算机程序产品的所附权利要求中被具体公开,其中,在一个权利要求类别(例如方法)中提到的任何特征也可以在另一个权利要求类别(例如系统)中被要求保护。在所附权利要求中的从属性或往回引用仅为了形式原因而被选择。然而,也可以要求保护由对任何前面的权利要求的有意往回引用(特别是多项引用)而产生的任何主题,使得权利要求及其特征的任何组合被公开并且可被要求保护,而不考虑在所附权利要求中选择的从属性。可以被要求保护的主题不仅包括如在所附权利要求中阐述的特征的组合,而且还包括在权利要求中的特征的任何其他组合,其中,在权利要求中提到的每个特征可以与在权利要求中的任何其他特征或其他特征的组合相结合。此外,本文描述或描绘的实施例和特征中的任一个可以在单独的权利要求中和/或以与本文描述或描绘的任何实施例或特征的任何组合或以与所附权利要求的任何特征的任何组合被要求保护。
在根据本发明的实施例中,一种方法可以包括由计算设备:
接收输入;
生成表示输入的第一查询向量表示(first query vector representation);
生成与键值记忆集合相关联的第一相关性度量,每个键值记忆具有相关联的键和相关联的值,其中,基于第一查询向量表示与键向量表示(key vector representations)之间的比较来生成第一相关性度量,该键向量表示用于表示与键值记忆集合相关联的键;
基于(1)键值记忆集合的第一相关性度量和(2)表示与键值记忆集合相关联的值的值向量表示,生成第一聚合结果(aggregated result);
通过迭代过程,使用最终查询向量表示来生成最终聚合结果,其中,迭代过程中的初始迭代包括:
基于第一查询向量表示、第一聚合结果和第一机器学习模型来生成第二查询向量表示;
使用第二查询向量表示来生成与键值记忆集合相关联的第二相关性度量;以及
使用第二相关性度量来生成第二聚合结果;
基于最终聚合结果和最终查询向量表示来生成组合特征表示;以及
响应于输入,基于组合特征表示与候选输出集合之间的比较来选择输出。
在初始迭代之后,迭代过程的每个后续迭代可以包括:
基于(1)在前一次迭代中生成的前一次迭代查询向量表示、(2)在前一次迭代中生成的前一次迭代聚合结果和(3)当前迭代机器学习模型,生成当前迭代查询向量表示;
通过比较当前迭代查询向量表示和键向量表示来生成当前迭代相关性度量;以及
基于当前迭代相关性度量和值向量表示来生成当前迭代聚合结果。
可以使用训练样本集合来训练第一机器学习模型和迭代过程中每个后续迭代的当前迭代机器学习模型,每个训练样本包括训练输入和目标输出。
输入可以是问题并且输出可以是问题的答案。
在根据本发明的实施例中,一种方法可以包括:基于输入选择键值记忆集合。
第一查询向量表示、键向量表示和值向量表示中的每一个都可以是嵌入(embedding)。
可以使用第二机器学习模型和输入来生成第一查询向量表示;
其中,可以使用第二机器学习模型和相关联的键来生成键向量表示中的每一个;并且
其中,可以使用第二机器学习模型和相关联的值来生成值向量表示中的每一个。
可以使用训练样本集合来迭代地训练第一机器学习模型和第二机器学习模型,每个训练样本包括训练输入和目标输出;
其中,对于训练样本集合中的每个训练样本,可以基于(1)响应于该训练样本的训练输入而选择的训练输出与(2)该训练样本的目标输出之间的比较,更新第一机器学习模型和第二机器学习模型。
第一机器学习模型或第二机器学习模型可以是使用机器学习算法生成的矩阵。
键值记忆集合中的每个键值记忆的第一相关性度量可以是概率。
第一聚合结果可以是值向量表示的加权和,这些值向量表示以它们各自相关联的第一相关性度量进行加权。
候选输出集合可以各自是使用第二机器学习模型生成的、相关联的候选文本输出的向量表示。
键值记忆集合中的第一键值记忆可以与知识库条目相关联,该知识库条目包括主语(subject)、宾语(object)、以及主语和宾语之间的第一关系,其中第一键值记忆的键可以表示主语和第一关系,其中第一键值记忆的值可以表示宾语。
键值记忆集合中的第二键值记忆的键可以表示宾语以及宾语和主语之间的第二关系,其中第二键值记忆的值可以表示主语。
键值记忆集合中的第一键值记忆可以与文档中的词窗口(window of words)相关联,其中第一键值记忆的键可以表示词窗口,其中第一键值记忆的值可以表示词窗口中的中心词(center word)。
键值记忆集合中的第二键值记忆可以与文档中的词窗口相关联,其中第二键值记忆的键可以表示词窗口,其中第二键值记忆的值可以表示文档的标题。
在根据本发明的实施例中,一个或更多个计算机可读非暂时性存储介质可以体现软件,该软件在被执行时可操作来:
接收输入;
生成表示输入的第一查询向量表示;
生成与键值记忆集合相关联的第一相关性度量,每个键值记忆具有相关联的键和相关联的值,其中基于第一查询向量表示与键向量表示之间的比较来生成第一相关性度量,该键向量表示用于表示与键值记忆集合相关联的键;
基于(1)键值记忆集合的第一相关性度量和(2)表示与键值记忆集合相关联的值的值向量表示,生成第一聚合结果;
通过迭代过程,使用最终查询向量表示来生成最终聚合结果,其中迭代过程中的初始迭代包括:
基于第一查询向量表示、第一聚合结果和第一机器学习模型来生成第二查询向量表示;
使用第二查询向量表示来生成与键值记忆集合相关联的第二相关性度量;以及
使用第二相关性度量来生成第二聚合结果;
基于最终聚合结果和最终查询向量表示来生成组合特征表示;以及
响应于输入,基于组合特征表示与候选输出集合之间的比较来选择输出。
在初始迭代之后,迭代过程的每个后续迭代可以包括:
基于(1)在前一次迭代中生成的前一次迭代查询向量表示、(2)在前一次迭代中生成的前一次迭代聚合结果和(3)当前迭代机器学习模型,生成当前迭代查询向量表示;
通过比较当前迭代查询向量表示和键向量表示来生成当前迭代相关性度量;以及
基于当前迭代相关性度量和值向量表示来生成当前迭代聚合结果。
在根据本发明的实施例中,一种系统可以包括:一个或更多个处理器和一个或更多个计算机可读非暂时性存储介质,该一个或更多个计算机可读非暂时性存储介质耦合到一个或更多个处理器并包括指令,这些指令当由一个或更多个处理器执行时可操作来使系统:
接收输入;
生成表示输入的第一查询向量表示;
生成与键值记忆集合相关联的第一相关性度量,每个键值记忆具有相关联的键和相关联的值,其中基于第一查询向量表示与键向量表示之间的比较来生成第一相关性度量,该键向量表示用于表示与键值记忆集合相关联的键;
基于(1)键值记忆集合的第一相关性度量和(2)表示与键值记忆集合相关联的值的值向量表示,生成第一聚合结果;
通过迭代过程,使用最终查询向量表示来生成最终聚合结果,其中迭代过程中的初始迭代包括:
基于第一查询向量表示、第一聚合结果和第一机器学习模型来生成第二查询向量表示;
使用第二查询向量表示来生成与键值记忆集合相关联的第二相关性度量;以及
使用第二相关性度量来生成第二聚合结果;
基于最终聚合结果和最终查询向量表示来生成组合特征表示;以及
响应于输入,基于组合特征表示与候选输出集合之间的比较来选择输出。
在初始迭代之后,迭代过程的每个后续迭代可以包括:
基于(1)在前一次迭代中生成的前一次迭代查询向量表示、(2)在前一次迭代中生成的前一次迭代聚合结果和(3)当前迭代机器学习模型,生成当前迭代查询向量表示;
通过比较当前迭代查询向量表示和键向量表示来生成当前迭代相关性度量;以及
基于当前迭代相关性度量和值向量表示来生成当前迭代聚合结果。
在根据本发明的实施例中,一个或更多个计算机可读非暂时性存储介质可以体现软件,该软件在被执行时可操作来执行根据本发明或任何上面提到的实施例的方法。
在根据本发明的实施例中,系统可以包括:一个或更多个处理器;以及耦合到处理器并包括由处理器可执行的指令的至少一个存储器,处理器当执行指令时可操作来执行根据本发明或任何上面提到的实施例的方法。
在根据本发明的实施例中,优选地包括计算机可读非暂时性存储介质的计算机程序产品当在数据处理系统上被执行时可以可操作来执行根据本发明或任何上面提到的实施例的方法。
附图简述
图1示出了用于问答的键值记忆网络模型的示例。
图2示出了用于使用键值记忆网络模型的实施例为给定输入生成输出的示例方法。
图3示出了用于训练键值记忆网络模型的实施例的框图。
图4示出了与社交网络系统相关联的示例网络环境。
图5示出了示例计算机系统。
示例实施例的描述
直接读取文档并能够根据它们回答问题是一个尚未解决的挑战。为了避免其固有的困难,问答(QA)反而被导向使用知识库(KB),这被证明是有效的。例如,每个KB条目可以使用预定的结构,诸如<主语><关系><宾语>(例如,电影X,被导演(directed_by),导演姓名),用来表示特定的知识。不幸的是,KB经常受到限制太多的困扰,因为固定模式无法支持某些类型的答案,并且过于稀疏(即,信息的不完整性)。由于旨在填补KB中缺失信息的信息提取(IE)既不足够准确也不足够可靠,所以未经处理的文本资源和文档的集合(例如,维基百科页面)将总是包含更多信息。因此,即使KB和IE对封闭领域的难题可能是令人满意的,但它们也不太可能扩展到回答任何主题的一般性问题。
从这个论述开始,本文描述的实施例通过直接读取文档来解决问答和类似任务的难题。直接从文本中检索答案比从KB中检索要困难得多,因为信息的结构化程度要小得多,信息的表达间接而模糊,并且信息通常分散在多个文档中。这解释了为什么在某些情况下,使用令人满意的KB(通常只在封闭领域中可用)可能比未经处理的文本更受欢迎。然而,如以上所解释的,KB具有显著的局限性,使得基于KB的解决方案不可扩展。本文描述的实施例引入了机器学习的使用,以弥合使用KB和直接读取文档之间的差距。
根据本文描述的特定实施例,键值记忆网络(KV-MemNN)是能够与诸如KB、IE和未经处理的文本文档的知识源一起工作的神经网络体系结构。例如,KV-MemNN可以通过在对事实/知识进行推理以预测答案之前,首先将事实/知识存储在键值结构化记忆中来执行QA任务。记忆可以被设计成使得模型学会使用键来对关于问题的相关记忆进行寻址,随后返回该记忆对应的值。这种结构允许模型对所考虑任务的先验知识进行编码,并利用键和值之间的可能复杂的变换,同时仍然通过随机梯度下降法使用标准反向传播来被训练。
在特定实施例中,键值配对的记忆是上下文(例如,知识库或要读取的文档)在存储器中被存储的方式的概括。查找(寻址)阶段可以基于键记忆,而读取阶段(给出返回的结果)可以使用值记忆。这(i)给了从业者更大的灵活性来对关于他们任务的先验知识进行编码;以及(ii)通过键和值之间的非平凡变换(nontrivial transform)给了模型更有效的功效(power)。键可以被设计成具有有助于其匹配输入(例如,问题)的特征,而值可以被设计成具有有助于其匹配输出响应(例如,答案)的特征。在特定实施例中,模型的一个属性是整个模型可以在使用键值变换的同时仍然通过随机梯度下降法使用标准反向传播来被训练。
模型的特定实施例的高级描述如下。记忆可以被定义,它是可以编码长期和短期上下文的可能非常大的插槽(slot)阵列(例如,数百或数千)。在测试时,查询(例如,QA任务中的问题)可以被用来迭代地寻址并从记忆读取(这些迭代可以被称为“跳跃”),寻找相关信息来回答问题。在每个步骤中,从记忆收集的信息被累积地添加到最初的查询中,以构建下一轮的上下文。在最后一次迭代中,最终检索到的上下文和最近的查询被组合为特征,以从候选列表中预测响应。
图1示出了用于问答的键值记忆网络体系结构100的示例。在KV-MemNN中,记忆插槽可以被定义为向量对(k1,v1)…(kM,vM),并且问题(或者更一般地说,输入)可以用x 101表示。在特定实施例中,记忆的寻址和读取包括三个步骤:键散列(hashing)102、键寻址103和值读取104。
在键散列102操作的特定实施例中,问题x 101可以用于从知识源110(例如,文档的语料库、KB、IE等)预先选择可能大的阵列的小(例如30、50、100)子集115。这可以使用反向索引来完成,其发现大小为N的记忆115的子集(kh1,vh1)、…、(khN,vhN),其中每个键khi以小于预定阈值(例如,F<50、100或1000以忽略诸如“the(该)”、“is(为)”、“at(在)”、“which(哪个)”的停止词)的频率与问题x 101共享至少一个词。应当理解,这里也可以使用其他更复杂的检索方案。散列对于大的记忆大小的计算效率可能很重要。以下描述包括键值记忆在读取KB或文档的任务中的应用的示例。
在特定实施例中,记忆访问过程可以由“控制器”神经网络使用q=AΦX(x)作为查询105来执行。在特定实施例中,查询q 105可以是表示问题(或输入)x 101的向量表示(例如,实数向量)。向量表示例如可以是某个预定维度空间中的嵌入105。可以使用机器学习模型A(其可以是通过机器学习而被学习的矩阵)将问题x 101投影到嵌入空间中。在特定实施例中,机器学习模型A可以直接应用于x 101或应用于输入/问题x101的特征映射ΦX(x)。特征映射ΦX(x)可以基于x 101的词袋(bag-of-words)模型(例如,x 101中的文本由成员一元语法、二元语法的多重性的计数来表示)、隐含语义索引(Latent Semantic Indexing)、隐含狄利克雷分布(Latent Dirchlet Allocation)等。在特定实施例中,ΦX(x)可以是维度D的特征映射,并且机器学习模型A可以是d×D矩阵。
在特定实施例中,查询q 105可以在键寻址阶段103期间被使用。在特定实施例中,从输入x 101直接生成的最初的查询(可以由q1 105表示)可以用于对键值记忆进行寻址。对于最初的查询q1 105的初始寻址103,还没有跳跃104发生,因此没有附加的上下文信息可以被添加到查询q1 105(将在下面进一步详细解释)。
在特定实施例中,在寻址103期间,通过将查询q1 105与键值记忆115的每个键进行比较,可以为每个候选记忆115分配相关性度量125(例如,寻址概率或权重)。在特定实施例中,键值记忆115的键可以由对应的键向量表示120来表示(例如,每个键嵌入可以在特定维度的嵌入空间中)。键khi的每个键嵌入可以由AΦK(khi)表示,其中ΦK(khi)可以是维度D的特征映射(例如,基于词袋或键的其他数字表示),并且机器学习模型A可以是d×D矩阵。在特定实施例中,可以使用以下公式来计算第i个记忆115的相关性度量phi 125:
Figure BDA0002375227250000101
其中Φ是维度D的特征映射,A是d×D矩阵,并且
Figure BDA0002375227250000111
概念上,在所示实施例中,将查询q1 105(在(1)中被表示为AΦX(x))(通过方程(1)中的点积)与每个键向量表示AΦK(khi)进行比较,以生成对应的相关性度量phi 125。
在特定实施例中,在值读取阶段104期间,键值记忆115的值的值向量表示130(或值嵌入)通过使用相关性度量125(例如,寻址概率)取它们的加权和来被“读取”,并且聚合结果o 135(其可以是向量)被返回(最初的查询q1的聚合结果可以由o1表示)。在特定实施例中,键值记忆115的值可以由对应的值向量表示130来表示(例如,每个值嵌入可以在特定维度的嵌入空间中)。值vhi的每个值嵌入可以由AΦV(vhi)表示,其中ΦV(vhi)可以是维度D的特征映射(例如,基于词袋或值的其他数字表示),并且机器学习模型A可以是d×D矩阵。在特定实施例中,可以使用以下公式来计算聚合结果o 135:
Figure BDA0002375227250000112
为了便于参考,使用查询qj的聚合结果135将被表示为oj(例如,当q1用于寻址时,聚合结果135将被表示为o1,当q2被使用时,o2将表示对应的聚合结果135,等等)。
在接收到结果o 135之后,它可以用于生成新的查询q 160以用于后续寻址。在特定实施例中,(例如,j=2至H次跳跃的)迭代过程140可以用于迭代地访问记忆。在每次迭代140期间,可以基于前一次迭代的查询和相关联的聚合结果来更新查询160。这可以被公式化为:qj+1=Rj(qj+oj),其中Rj 150是机器学习模型(例如,使用机器学习生成的d×d矩阵)。例如,在用q1生成o1的初始“无跳跃(hopless)”步骤之后,可以基于q2=R1(q1+o1)来生成第一跳跃迭代的新查询q2 160。然后可以使用新的qj来重复记忆访问(具体地,仅仅是寻址103和读取104阶段,而不是散列102)。在每次跳跃或迭代j 140之后,可以使用不同的矩阵Rj150来更新查询。可以相应地变换键寻址方程以使用更新的查询:
Figure BDA0002375227250000121
这样做的动机是新的证据可以被组合到查询中,以便在后续访问中关注并检索更相关的信息。
在特定实施例中,在最后的跳跃H140之后,控制器的结果状态将是qH,具有对应的聚合结果oH。使用上述公式,最终的qH和oH可以用于生成组合特征表示qH+1。组合特征表示qH+1然后可以用于计算180最终输出或对可能输出的预测190。在特定实施例中,可以基于以下公式来计算180最终输出或预测190:
Figure BDA0002375227250000122
其中yi(i=1到C,为候选输出170的大小)表示可能的候选输出170(例如,KB中实体的全部或子集,或者可能的候选答案语句的全部或子集等);BΦY(yi)表示特定候选输出yi的向量表示(例如,嵌入空间中的嵌入);ΦY(yi)表示维度D的特征映射(例如,基于候选输出yi 170的词袋或其他数字表示);B表示机器学习模型(例如,使用机器学习训练的d×D矩阵);而Softmax如上面方程(2)中所定义。在特定实施例中,d×D矩阵B也可以被约束为与A相同。概念上,方程(5)将最终组合特征表示qH+1与候选输出170的向量表示中的每一个进行比较,并选择最匹配的一个。
图2示出了使用键值记忆网络的实施例为给定输入x生成输出的示例方法。该方法可以从步骤210开始,其中计算系统可以接收输入,例如问题。问题可能是文本的形式(例如,“电影x是哪一年发行的?(What year was movie x released?)”),其可以使用语音识别技术从口语音频中生成。计算系统可以通过系统的用户界面接收输入。例如,如果计算系统是移动设备或个人计算机,则用户界面可以是文本界面(例如,可以键入输入的文本输入框)或语音识别引擎(例如,用户可以经由该引擎通过语音来提供期望的输入)。计算系统也可以是服务器或基于云的服务,在这种情形中,用户的本地输入可以被传输到服务器或云进行处理。
在步骤220,系统可以执行前面提到的键散列过程,其中基于输入选择键值记忆集合。例如,反向索引可以用于基于输入中的词从与知识源(例如,维基百科或其他信息数据库)相关联的较大集合中识别键值记忆子集。散列过程有助于减小所使用的键值记忆集合的大小,这进而又有助于降低计算成本。如前所讨论的,每个键值记忆可以具有相关联的键和相关联的值。在特定实施例中,键可以表示问题,而相关联的值可以是该问题的答案。
在步骤230,系统可以生成表示输入x的查询向量表示q1。查询向量表示可以是预定长度的数字串(换句话说,向量可以在d维空间中)。例如,查询向量表示可以是嵌入。在特定实施例中,可以通过首先使用特征映射ΦX生成输入文本的数字特征表示来生成查询向量表示,特征映射ΦX可以基于词袋表示(例如,对出现在输入中的每个词的多重性进行计数)或任何其他合适的表示。然后,可以使用机器学习模型(例如,前面提到的A,其可以是使用机器学习算法生成的变换矩阵)将数字特征表示变换成查询向量表示。
在步骤240,系统可以生成与键值记忆集合相关联的相关性度量。可以基于查询向量表示与键向量表示之间的比较来生成相关性度量,该键向量表示用于表示与键值记忆集合相关联的键。例如,可以基于输入的查询向量表示(例如,q1)与键khi的键向量表示之间的点积比较(或任何其他比较算法)来生成第i个键值记忆(khi,vhi)的相关性度量phi。概念上,相关性度量可以表示相关联的键是正确值(或答案)的键的概率。类似于查询向量表示,键向量表示可以是预定长度的数字串,例如嵌入。在特定实施例中,可以使用机器学习模型和键来生成每个键的键向量表示。例如,可以通过首先使用特征映射ΦK生成键文本的数字特征表示来生成键向量表示,特征映射ΦK可以基于词袋表示(例如,对出现在输入中的每个词的多重性进行计数)或任何其他合适的表示。所使用的特征映射ΦK可以与用于生成查询向量表示的特征映射ΦX相同或不同。然后可以使用机器学习模型将数字特征表示变换成键向量表示。所使用的机器学习模型可以与用于生成查询向量表示的模型(例如,前面提到的模型A)相同或是不同的模型(例如,在训练期间,用于生成键向量表示的机器学习模型不限于与查询向量表示的模型相同)。
在步骤250,系统可以基于键值记忆集合的相关性度量(例如,每个第i个键值记忆的phi)和表示与键值记忆集合相关联的值的值向量表示来生成聚合结果o1。在特定实施例中,聚合结果可以是以值向量表示各自相关联的相关性度量进行加权的这些值向量表示的加权和或加权平均。例如,第i个键值记忆的第i个值向量表示可以以与该键值记忆相关联的第i个相关性度量phi进行加权(例如,乘以该度量)。每个值向量表示的加权结果然后可以被聚合(例如,求和、平均等)来生成聚合结果o1。关于值向量表示,类似于键向量表示,每个值向量表示可以是预定长度的数字串,例如嵌入。在特定实施例中,可以使用机器学习模型和值来生成每个值的值向量表示。例如,可以通过首先使用特征映射ΦV生成值文本的数字特征表示来生成值向量表示,特征映射ΦV可以基于词袋表示(例如,对出现在输入中的每个词的多重性计数)或任何其他合适的表示。所使用的特征映射ΦV可以与分别用于生成查询向量表示和键向量表示的特征映射ΦX和ΦK相同或不同。然后可以使用机器学习模型将数字特征表示变换成值向量表示。所使用的机器学习模型可以与用于生成查询向量表示(例如,前面提到的A)和/或键向量表示的模型相同,或者可以是不同的模型。
如前所讨论的,在计算了初始聚合结果之后,系统可以使用从先前迭代获得的结果来迭代地细化聚合结果。迭代过程如图2所示,使用从步骤255到280的循环。在步骤255,系统可以确定是否要执行迭代(例如,如果少于H次跳跃已经被执行)。在迭代过程的初始迭代(例如,j=2)中,在步骤260,系统可以基于初始查询向量表示q1、初始聚合结果o1和机器学习模型R1(其可以是使用机器学习算法生成的变换矩阵)来生成第二查询向量表示q2。在步骤270,系统可以使用第二查询向量表示q2生成与键值记忆集合相关联的第二相关性度量。这类似于步骤240,除了使用当前迭代中生成的查询向量表示(例如,q2)与键向量表示进行比较。在步骤280,系统可以使用当前迭代中生成的第二相关性度量来生成聚合结果o2。这类似于步骤250。迭代过程然后从步骤255开始重复,直到已经执行了指定次数的迭代。例如,在初始迭代之后(即,在j=1之后),迭代过程的每个后续迭代可以类似地涉及基于(1)在前一次迭代中生成的前一次迭代查询向量表示,(2)在前一次迭代中生成的前一次迭代聚合结果,以及(3)当前迭代机器学习模型Rj来生成当前查询向量表示。然后,系统通过将当前迭代查询向量表示与键向量表示进行比较来生成当前迭代相关性度量,然后基于当前迭代相关性度量和值向量表示来生成当前迭代聚合结果。在特定实施例中,机器学习模型R1至RH可以不同,但是都通过端到端训练过程使用相同的训练样本集合(每个训练样本包括训练输入和目标输出)来被训练。
通过以跳跃H结束的迭代过程,系统将使用最终查询向量表示qH来生成最终聚合结果oH。然后在步骤290,系统可以基于最终聚合结果oH和最终查询向量表示qH来生成组合特征表示qH+1
在步骤295,系统可以响应于输入x(例如,问题),基于组合特征表示与候选输出集合之间的比较(例如,点积或其他合适的比较算法)来选择输出(例如,答案)。可以选择与组合特征表示最匹配的候选输出作为输出(例如,问题的答案)。在特定实施例中,候选输出集合中的每一个都是使用机器学习模型生成的、相关联的候选文本输出yi的向量表示。在特定实施例中,每个候选输出向量表示可以是嵌入。在特定实施例中,可以通过首先使用特征映射ΦY生成候选输出yi文本的数字特征表示来生成候选输出向量表示,特征映射ΦY可以基于词袋表示(例如,对出现在输入中的每个词的多重性进行计数)或任何其他合适的表示。所使用的特征映射ΦY可以与分别用于生成查询向量表示、键向量表示和值向量表示的特征映射ΦX、ΦK和ΦV相同或不同。然后,可以使用机器学习模型(例如,前面提到的模型B)将数字特征表示变换成候选输出向量表示。所使用的机器学习模型可以与用于生成查询向量表示(例如,前面提到的模型A)和/或键向量表示的模型相同,或者可以是不同的模型。
图3示出了用于训练键值记忆网络模型的实施例的框图。在特定实施例中,整个网络可以被端到端地训练,并且模型通过最小化
Figure BDA0002375227250000151
和正确答案a之间的标准交叉熵损失来学习执行迭代访问以输出期望的目标a。例如,机器学习体系结构300可以包括任意数量的模型,包括前面提到的矩阵A、B以及R1、…、RH。可以使用数量足够大(例如,500、1000、10000等)的训练输入310样本来训练机器学习模型。每个训练输入310可以包括输入(例如,问题或文本任务),类似于上面参照图2描述的输入x。每个训练样本还可以包括目标输出330(也称为真值(ground truth)输出),目标输出330是相关联的输入310的已知的正确输出。机器学习模型可以使用训练样本集合来被迭代地训练。在每次训练迭代期间,模型可以以上面参照图2描述的方式(尽管各个机器学习模型尚未被完全训练)来处理训练样本的训练输入310,以生成响应于训练输入310而被选择的训练输出320(例如,问题的答案)。然后,损失函数301可以用于将生成的训练输出320与目标输出330(或真值)进行比较,并且比较结果可以用于(例如,通过反向传播)更新机器学习体系结构300中的模型。例如,反向传播和随机梯度下降法因此可用于学习矩阵A、B以及R1至RH。一旦模型已经被训练好,它们可以被分发到任何计算系统(例如,客户端设备、基于云的服务等)并由任何计算系统使用来例如,自动回答问题。
键值记忆网络的一个应用是使用来自各种知识源(例如文档、知识库和通过信息提取建立的知识库)的信息来回答问题。如上所述,键值记忆网络的一个益处是记忆能够灵活地适应不同类型的信息表示。信息在键值记忆中的存储方式会对整体性能产生显著影响。对知识进行编码的能力是键值记忆网络的一个显著益处,并且特定实施例提供了分别为查询、答案、键和值定义特征映射ΦX、ΦY、ΦK和ΦV的灵活性。下面描述了在实验中尝试的ΦK和ΦV的几种可能变型。为了简单起见,ΦX和ΦY可以保持固定为词袋表示,但是它们也可以使用其他技术(例如Word2Vec、隐含语义索引、隐含狄利克雷分布等)来表示。
在特定实施例中,键值记忆可以用于存储具有三元组“主语关系宾语”结构的知识库(KB)条目。电影Blade Runner的KB条目示例如下:
Blade Runner directed_by(被导演)Ridley Scott
Blade Runner written_by(被编写)Philip K.Dick,Hampton Fancher
Blade Runner starred_actors(主演演员)Harrison Ford,Sean Young,…
Blade Runner release_year(发行年)1982
Blade Runner has_tags(具有标签)反乌托邦(dystopian),黑色(noir),警察(police),机器人(androids),…
所考虑的表示是键由左侧实体(主语)和关系组成,并且值是右侧实体(宾语)。特定的实施例可以使KB加倍,并且也考虑反向关系(reversed relation)(例如,现在有两个三元组“Blade Runner directed_by Ridley Scott”和“Ridley Scott!directed_byBlade Runner”,其中!directed_by在字典中可以是与directed_by不同的条目)。在特定实施例中,使条目同时具有两种方式(both ways round)对于回答不同类型的问题(“谁导演了Blade Runner?(Who directed Blade Runner?)”相对于“Ridley Scott导演了什么?(What did Ridley Scott direct?)”)可能是重要的。对于没有键值对的典型记忆网络,整个三元组必须被编码到相同的记忆插槽中,因此与本文描述的实施例相比,导致较差的性能。
键值记忆也可以用来表示文档。例如,维基百科中关于电影Blade Runner的部分文档如下所示:
Blade Runner是由Ridley Scott导演的(directed by)并且由Harrison Ford、Rutger Hauer、Sean Young和Edward James Olmos主演的(starring)一部1982年的美国新黑色反乌托邦科幻影片(neo-noir dystopian science fiction film)。由HamptonFancher和David Peoples编剧(written by)的电影剧本是1968年Philip K.Dick的小说“机器人会梦见电子羊吗?(Do Androids Dream of Electric Sheep?)”的改编电影。影片描述了2019年11月的反乌托邦洛杉矶,在该影片中强大的Tyrell公司以及世界各地的其他“大公司”制造了视觉上与成年人类没有区别的基因改造的复制人。复制人被禁止在地球上使用,并且他们在太空殖民地(off-world colonies)上专门用于危险的、卑下的或闲散的(leisure)工作。违反禁令并返回到地球的复制人会被特警追捕并被“弃置(retire)”,这些特警被称为“Blade Runners”….
为了表示文档,特定实施例可以将其划分成语句,每个记忆插槽对一个语句进行编码。在特定实施例中,键和值都将整个语句编码为词袋(或语句的任何其他合适的特征表示)。在这种情形中,键和值可以相同。
在特定实施例中,文档可以被划分成W个词(例如,5个、10个、30个或50个词等)的窗口。在特定实施例中,只有中心词是实体(例如,人名、电影标题、地点、公司等)的窗口可以被包括在内。例如,窗口可以用词袋来表示。在键值记忆网络的特定实施例中,键可以被编码为整个窗口,而值仅被编码为中心词,这在没有键值记忆的传统记忆网络体系结构中是不可能的。这是有意义的,因为整个窗口更有可能与问题(作为键)的匹配相关,而中心处的实体与答案(作为值)的匹配更相关。
在特定实施例中,也可以用不同的特征对窗口中心与窗口的其余部分进行编码,而不是将窗口表示为纯词袋,导致窗口中心与窗口的其余部分混合。例如,词袋表示的字典的大小D可以加倍,并且可以使用第二字典来对窗口的中心和值进行编码(第一字典用于对窗口的其余部分和键进行编码)。这将有助于模型挑选出窗口中心(与答案更相关)而不是它两边词(与问题更相关)的相关性。
文档的标题通常是涉及它所包含文本的问题的答案。例如,“Harrison Ford主演了什么?(What did Harrison Ford star in?)”可以由标题为“Blade Runner”的维基百科文档(部分地)回答。为此,在特定实施例中的表示可以被定义,其中键如前所述是词窗口,但是值是文档标题。窗口级表示的标准(窗口,中心)键值对也可以保留,因此相比之下,记忆插槽的数量加倍。为了区分具有不同值的两个键,可以根据值来给键增加额外的特征“_window_”或“_title_”。“_title_”版本也可以在键中包括实际的电影标题。这种表示可以与中心编码进行组合。这种表示可以特定于每个文档都有明显或有意义标题的数据集。
已经对三种形式的知识表示进行了实验:(i)Doc:由提到的电影页面构成的未经处理的维基百科文档;(ii)KB:经典的基于图形的KB,其由实体和从开放电影数据库(OMDb)和MovieLens创建的关系构成;以及(iii)IE:在维基百科页面上执行的信息提取,以建立形式类似于(ii)的KB。问答(QA)对可以被构建为使得它们都可以从(ii)的KB或(i)的最初的维基百科文档中进行潜在的回答,以消除数据稀疏性问题。然而,应当注意的是,在某些应用中从未经处理的文档开展工作的优点是相较于KB更不关注数据稀疏性,而另一方面KB已经使信息以易于机器操作的形式被解析。这种数据集有助于分析可能需要哪些方法来弥合所有三种设置之间的差距,特别是当KB不可用时,读取文档的有用方法是什么。关于电影Blade Runner的维基百科文档的数据集和相关联的KB的示例如上所示。Blade Runner的相关联的IE条目的示例如下所示:
Blade Runner,Ridley Scott directed(导演了)反乌托邦(dystopian),科幻(science fiction),影片(film)
Hampton Fancher written(编写了)Blade Runner
Blade Runner starred(被主演)Harrison Ford,Rutger Hauer,Sean Young…
Blade Runner labeled(被标记)1982新黑色特警(neo noir special police),Blade retired(被弃置)
Blade Runner Blade Runner,特警(special police)known(已知)Blade数据集中的问题的示例如下所示:
Ridley Scott导演了哪些影片?(Ridley Scott directed which films?)
电影Blade Runner是哪一年发行的?谁是Blade Runner的编剧(writer)?
哪部影片可以用反乌托邦来描述?哪些电影的编剧是Philip K.Dick?
你能用几个词描述一下电影Blade Runner吗?
关于Doc,在一个示例中,可以通过从OMDb识别电影集合来选择关于电影的维基百科文章集合,该文章集合具有通过标题匹配的相关联的文章。对于每篇文章可以保留标题和第一章(在内容框前面)。这给出了大约17k个文档(电影),其包括模型为了回答问题将从其中进行读取的文档集合。
关于KB,一个示例中的电影集合也与MovieLens数据集匹配。KB可以使用OMDb和MovieLens元数据来被建立,其中包含每部电影和九种不同的关系类型的条目,例如,导演(director)、编剧(writer)、演员(actor)、发行年份(release year)、语言(language)、体裁(genre)、标签(tags)、IMDb评分(IMDb rating)和IMDb投票(IMDb vote),总共具有大约10k个相关演员、大约6k个导演和大约43k个实体。如在上面的示例中所示,KB可以被存储为三元组。在一个示例中,IMDb评分和投票最初是真实值,但是被入仓(bin)并转换成文本(“没有听说过(unheard of)”、“不知道(unknown)”、“众所周知(well known)”、“备受观注(highly watched)”、“著名的(famous)”)。在特定实施例中,实体也出现在维基百科文章中的KB三元组被保留,以试图保证所有QA对将由KB或维基百科文档源同等地可回答。
关于IE,作为直接读取文档的替代,在特定实施例中,信息提取技术可以用于将文档变换成KB格式。IE-KB表示具有吸引人的属性,例如事实的更精确且更紧凑的表达以及基于主语-动词-宾语分组的逻辑键值配对。由于有缺陷的或完全丢失的三元组,这可能会降低召回率(recall)。在特定实施例中,通过Stanford NLP工具包的共指消解(coreferenceresolution)可以首先通过用代词(“he(他)”、“it(它)”)和名词(“the film(该影片)”)指称的代表性实体替换这些指称来降低歧义。接下来,可以用SENNA语义角色标注工具来揭示每个语句的语法结构,并将动词与其实际变元(arguments)配对。每个三元组可以清除是不可识别实体的词,并且进行词形还原(lemmatization)以将重要的特定于任务的动词的不同语调变化合并(collapse)成一种形式(例如,明星(stars)、主演(starring)、明星(star)→主演(starred))。最后,电影标题可以被附加到每个三元组,这改善了结果。
在特定实施例中,在数据集的多于100,000个问答对中,可以区分对应于KB中不同种类边的13类问题。它们的范围从特定的——例如演员对于电影:“Harrison Ford主演了什么电影?(What movies did Harrison Ford star in?)”和电影对于演员:“谁主演了Blade Runner?(Who starred in Blade Runner?)”——到更一般的,例如标签对于电影:“哪些影片可以用反乌托邦来描述?(Which films can be described by dystopian?)”。对于某些问题,可能有多个正确答案。
在一个示例中,使用现有的开放领域问答据集,由人类注释者提出的涵盖我们的问题类型的问题子集被识别。可以通过用来自所有KB三元组的实体替换那些问题中的实体来创建问题集合。例如,如果注释者写的最初的问题是“Harrison Ford主演了什么电影?(What movies did Harrison Ford star in?)”,则以下模式将被创建“[@actor]主演了什么电影?(What movies did[@actor]star in?)”,其用于替换数据集中的任何其他演员,并对所有注释重复此操作。在特定实施例中,问题可以被分成分别具有大约96k个、10k个和10k个示例的不相交的训练集、开发集和测试集。在特定实施例中,相同的问题(即使措辞不同)不能同时出现在训练集和测试集中。请注意,这比大多数现有数据集大得多(例如,WIKIQA数据集只有大约1000个训练对)。
实验表明,由于键值记忆网络的键值记忆,键值记忆网络始终优于其他现有方法(例如,没有键值记忆的传统记忆网络)和基于注意力的神经网络模型(例如,基于注意力的LSTM和基于注意力的CNN),并减小了从人类注释的KB进行回答、从自动提取的KB进行回答或者通过直接读取文本知识源(例如,维基百科)进行回答之间的差距。实验表明,键值记忆网络在不同数据集上的性能优于其他几种方法。使用本文描述的方法和系统,所有三种设置(即文档、KB和IE表示)之间的差距减小了。本文描述的实施例还在现有的WIKIQA基准(benchmark)上实现了最先进的结果。
图4示出了与社交网络系统相关联的示例网络环境400。网络环境400包括通过网络410连接到彼此的客户端系统430、社交网络系统460和第三方系统470。尽管图4示出了客户端系统430、社交网络系统460、第三方系统470和网络410的特定布置,但是本公开设想了客户端系统430、社交网络系统460、第三方系统470和网络410的任何合适的布置。作为示例而不是作为限制,客户端系统430、社交网络系统460和第三方系统470中的两个或更多个可以直接连接到彼此,绕过网络410。作为另一示例,客户端系统430、社交网络系统460和第三方系统470中的两个或更多个可以全部或部分地在物理上或逻辑上彼此位于同一位置。此外,尽管图4示出了特定数量的客户端系统430、社交网络系统460、第三方系统470和网络410,但是本公开设想了任何合适数量的客户端系统430、社交网络系统460、第三方系统470和网络410。作为示例而不是作为限制,网络环境400可以包括多个客户端系统430、社交网络系统460、第三方系统470和网络410。
本公开设想了任何合适的网络410。作为示例而不是作为限制,网络410的一个或更多个部分可以包括自组织网络、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、互联网的一部分、公共交换电话网(PSTN)的一部分、蜂窝电话网、或这些中的两个或更多个的组合。网络410可以包括一个或更多个网络410。
链路450可以将客户端系统430、社交网络系统460和第三方系统470连接到通信网络410或连接到彼此。本公开设想了任何合适的链路450。在特定实施例中,一个或更多个链路450包括一个或更多个有线(例如数字用户线路(DSL)或基于电缆的数据服务接口规范(DOCSIS))链路、无线(例如Wi-Fi或全球互通微波接入(WiMAX))链路、或光(例如同步光网络(SONET)或同步数字体系(SDH))链路。在特定实施例中,一个或更多个链路450各自包括自组织网络、内联网、外联网、VPN、LAN、WLAN、WAN、WWAN、MAN、互联网的一部分、PSTN的一部分、基于蜂窝技术的网络、基于卫星通信技术的网络、另一链路450、或两个或更多个这种链路450的组合。链路450不需要在整个网络环境400中是相同的。一个或更多个第一链路450可以在一个或更多个方面上不同于一个或更多个第二链路450。
在特定实施例中,客户端系统430可以是包括硬件、软件或嵌入式逻辑部件、或两个或更多个这样的部件的组合,并且能够执行由客户端系统430实现或支持的适当功能的电子设备。作为示例而不是作为限制,客户端系统430可以包括计算机系统,例如台式计算机、笔记本或膝上型计算机、上网本、平板计算机、电子书阅读器、GPS设备、摄像机、个人数字助理(PDA)、手持电子设备、蜂窝电话、智能手机、增强/虚拟现实设备、其他合适的电子设备、或其任何合适的组合。本公开设想了任何合适的客户端系统430。客户端系统430可以使在客户端系统430处的网络用户能够访问网络410。客户端系统430可以使它的用户能够与在其他客户端系统430处的其他用户进行通信。
在特定实施例中,客户端系统430可以包括web浏览器432,例如MICROSOFTINTERNET EXPLORER、GOOGLE CHROME或MOZILLA FIREFOX,并且可以具有一个或更多个附加件、插件或其他扩展件,例如TOOLBAR或YAHOO TOOLBAR。在客户端系统430处的用户可以输入统一资源定位符(URL)或将web浏览器432引导到特定的服务器(例如服务器462或与第三方系统470相关联的服务器)的其他地址,并且web浏览器432可以生成超文本传输协议(HTTP)请求并将HTTP请求传递到服务器。服务器可以接受HTTP请求,并响应于HTTP请求而向客户端系统430传递一个或更多个超文本标记语言(HTML)文件。客户端系统430可以基于来自服务器的HTML文件来显现网页用于呈现给用户。本公开设想了任何合适的网页文件。作为示例而不是作为限制,可以根据特定的需要从HTML文件、可扩展超文本标记语言(XHTML)文件或可扩展标记语言(XML)文件来显现网页。这样的页面还可以执行脚本,例如且没有限制,用JAVASCRIPT、JAVA、MICROSOFT SILVERLIGHT编写的脚本、标记语言和脚本(例如AJAX(异步JAVASCRIPT和XML))的组合等。在本文,在适当的情况下,对网页的引用包括一个或更多个相应的网页文件(浏览器可以使用这些网页文件来显现网页),反之亦然。
在特定实施例中,社交网络系统460可以是可以托管在线社交网络的网络可寻址计算系统。社交网络系统460可以例如生成、存储、接收并发送社交网络数据(例如,用户简档数据、概念简档数据、社交图信息或与在线社交网络相关的其他合适的数据)。社交网络系统460可以由网络环境400的其他部件直接地或经由网络410来访问。作为示例而不是作为限制,客户端系统430可以使用web浏览器432或与社交网络系统460相关联的本机(native)应用(例如,移动社交网络应用、消息传送应用、另一合适的应用或其任何组合)直接地或经由网络410来访问社交网络系统460。在特定实施例中,社交网络系统460可以包括一个或更多个服务器462。每个服务器462可以是单一服务器(unitary server)或跨越多台计算机或多个数据中心的分布式服务器。服务器462可以具有各种类型,例如且没有限制,web服务器、新闻服务器、邮件服务器、消息服务器、广告服务器、文件服务器、应用服务器、交换服务器、数据库服务器、代理服务器、适合于执行本文描述的功能或过程的另一服务器、或者其任何组合。在特定实施例中,每个服务器462可以包括硬件、软件或嵌入式逻辑部件、或用于执行由服务器462实现或支持的适当功能的两个或更多个这样的部件的组合。在特定实施例中,社交网络系统460可以包括一个或更多个数据储存器464。数据储存器464可以用于存储各种类型的信息。在特定实施例中,可以根据特定的数据结构来组织存储在数据储存器464中的信息。在特定实施例中,每个数据储存器464可以是关系数据库、纵列(columnar)数据库、相关性数据库或其他合适的数据库。尽管本公开描述或示出了特定类型的数据库,但是本公开设想了任何合适类型的数据库。特定实施例可以提供使客户端系统430、社交网络系统460或第三方系统470能够管理、检索、修改、添加或删除存储在数据储存器464中的信息的接口。
在特定实施例中,社交网络系统460可以在一个或更多个数据储存器464中存储一个或更多个社交图。在特定实施例中,社交图可以包括多个节点——其可以包括多个用户节点(各自对应于特定用户)或多个概念节点(各自对应于特定概念)——以及连接节点的多条边。社交网络系统460可以向在线社交网络的用户提供与其他用户进行通信和交互的能力。在特定实施例中,用户可以经由社交网络系统460加入在线社交网络,且然后将关连(connection)(例如,关系)添加到社交网络系统460中的他们想要关连到的多个其他用户。在本文,术语“朋友”可以指社交网络系统460的任何其他用户,用户经由社交网络系统460与任何其他用户形成关连、关联(association)或关系。
在特定实施例中,社交网络系统460可以向用户提供对由社交网络系统460支持的各种类型的项目或对象采取动作的能力。作为示例而不是作为限制,项目和对象可以包括社交网络系统460的用户可以属于的组或社交网络、用户可能感兴趣的事件或日历条目、用户可以使用的基于计算机的应用、允许用户经由服务来购买或销售商品的交易、用户可以执行的与广告的交互、或其他合适的项目或对象。用户可以与能够在社交网络系统460中或者由第三方系统470的外部系统表示的任何事物进行交互,第三方系统470与社交网络系统460分离并且经由网络410耦合到社交网络系统460。
在特定实施例中,社交网络系统460可以链接各种实体。作为示例而不是作为限制,社交网络系统460可以使用户能够彼此交互以及从第三方系统470或其他实体接收内容,或者允许用户通过应用编程接口(API)或其他通信渠道与这些实体交互。
在特定实施例中,第三方系统470可以包括一种或更多种类型的服务器、一个或更多个数据储存器、一个或更多个接口(包括但不限于API)、一个或更多个web服务、一个或更多个内容源、一个或更多个网络或任何其他合适的部件(例如,服务器可以与这些部件通信)。第三方系统470可以由与操作社交网络系统460的实体不同的实体进行操作。然而,在特定实施例中,社交网络系统460和第三方系统470可以结合彼此来操作以向社交网络系统460或第三方系统470的用户提供社交网络服务。在这个意义上,社交网络系统460可以提供平台或骨干网,其他系统(例如第三方系统470)可以使用该平台或骨干网来在整个互联网上向用户提供社交网络服务和功能。
在特定实施例中,第三方系统470可以包括第三方内容对象提供者。第三方内容对象提供者可以包括可以被传递到客户端系统430的内容对象的一个或更多个源。作为示例而不是作为限制,诸如,内容对象可以包括关于用户感兴趣的事情或活动的信息,例如电影放映时间、电影评论、餐馆评论、餐馆菜单、产品信息和评论或其他合适的信息。作为另一示例而不是作为限制,内容对象可以包括激励内容对象(例如优惠券、折扣券、礼品券或其他合适的激励对象)。
在特定实施例中,社交网络系统460还包括用户生成的内容对象,其可以增强用户与社交网络系统460的交互。用户生成的内容可以包括用户可以添加、上传、发送或“发布”到社交网络系统460的任何内容。作为示例而不是作为限制,用户将帖子从客户端系统430传送到社交网络系统460。帖子可以包括数据,例如状态更新或其他文本数据、位置信息、照片、视频、链接、音乐或其他类似数据或媒体。内容还可以由第三方通过“通信渠道”(例如动态消息(newsfeed)或流)来添加到社交网络系统460。
在特定实施例中,社交网络系统460可以包括各种服务器、子系统、程序、模块、日志和数据储存器。在特定实施例中,社交网络系统460可以包括下列项中的一个或更多个:web服务器、动作记录器、API请求服务器、相关性和排名引擎、内容对象分类器、通知控制器、动作日志、第三方内容对象暴露日志、推理模块、授权/隐私服务器、搜索模块、广告定位模块(advertisement-targeting module)、用户界面模块、用户简档储存器、关连储存器、第三方内容储存器或位置储存器。社交网络系统460还可以包括合适的部件,例如网络接口、安全机构、负载平衡器、故障转移服务器、管理和网络操作控制台、其他合适的部件、或其任何合适的组合。在特定实施例中,社交网络系统460可以包括用于存储用户简档的一个或更多个用户简档储存器。用户简档可以包括例如传记信息、人口统计信息、行为信息、社交信息或其他类型的描述性信息(例如工作经验、教育历史、爱好或偏好、兴趣、喜好或位置)。兴趣信息可以包括与一个或更多个类别相关的兴趣。类别可以是一般的或特定的。作为示例而不是作为限制,如果用户“点赞(like)”关于一种品牌的鞋的文章,则该类别可以是品牌,或者“鞋”或“衣服”的一般类别。关连储存器可以用于存储关于用户的关连信息。关连信息可以指示具有相似或共同的工作经历、组成员资格、爱好、教育历史或者以任何方式相关或共享共同属性的用户。关连信息还可以包括在不同用户和内容(内部和外部)之间的用户定义的关连。web服务器可以用于经由网络410将社交网络系统460链接到一个或更多个客户端系统430或一个或更多个第三方系统470。web服务器可以包括邮件服务器或用于在社交网络系统460和一个或更多个客户端系统430之间接收并按规定路线发送消息的其他消息传送功能。API请求服务器可以允许第三方系统470通过调用一个或更多个API来访问来自社交网络系统460的信息。动作记录器可以用于从web服务器接收关于用户在社交网络系统460上或之外的动作的通信。结合动作日志,可以维护关于对第三方内容对象的用户暴露的第三方内容对象日志。通知控制器可以向客户端系统430提供关于内容对象的信息。信息可以作为通知被推送到客户端系统430,或者信息可以响应于从客户端系统430接收的请求而从客户端系统430中被拉取。授权服务器可以用于实施社交网络系统460的用户的一个或更多个隐私设置。用户的隐私设置确定与用户相关联的特定信息可以如何被分享。授权服务器可以例如通过设置适当的隐私设置来允许用户决定加入或决定退出使他们的动作由社交网络系统460记录或者与其他系统(例如,第三方系统470)分享。第三方内容对象储存器可以用于存储从第三方(例如第三方系统470)接收的内容对象。位置储存器可以用于存储从与用户相关联的客户端系统430接收的位置信息。广告定价模块可以组合社交信息、当前时间、位置信息或其他合适的信息以用通知的形式向用户提供相关广告。
图5示出了示例计算机系统500。在特定实施例中,一个或更多个计算机系统500执行本文描述或示出的一个或更多个方法的一个或更多个步骤。在特定实施例中,一个或更多个计算机系统500提供本文描述或示出的功能。在特定实施例中,在一个或更多个计算机系统500上运行的软件执行本文描述或示出的一个或更多个方法的一个或更多个步骤,或者提供本文描述或示出的功能。特定实施例包括一个或更多个计算机系统500的一个或更多个部分。在本文,在适当的情况下,对计算机系统的引用可以包括计算设备,反之亦然。此外,在适当的情况下,对计算机系统的引用可以包括一个或更多个计算机系统。
本公开设想了任何合适数量的计算机系统500。本公开设想了计算机系统500采取任何合适的物理形式。作为示例而不是作为限制,计算机系统500可以是嵌入式计算机系统、片上系统(SOC)、单板计算机系统(SBC)(例如,模块上计算机(COM)或模块上系统(SOM))、台式计算机系统、膝上型或笔记本计算机系统、交互式信息亭、大型机、计算机系统网状网、移动电话、个人数字助理(PDA)、服务器、平板计算机系统、增强/虚拟现实设备、或者这些系统的两个或更多个的组合。在适当的情况下,计算机系统500可以包括一个或更多个计算机系统500;是整体式的或分布式的;跨越多个位置;跨越多台机器;跨越多个数据中心;或者驻留在云中,云可以包括在一个或更多个网络中的一个或更多个云部件。在适当的情况下,一个或更多个计算机系统500可以在没有实质性空间或时间限制的情况下执行本文描述或示出的一个或更多个方法的一个或更多个步骤。作为示例而不是作为限制,一个或更多个计算机系统500可以实时地或以批处理模式来执行本文描述或示出的一个或更多个方法的一个或更多个步骤。在适当的情况下,一个或更多个计算机系统500可以在不同的时间或在不同的位置处执行本文描述或示出的一个或更多个方法的一个或更多个步骤。
在特定实施例中,计算机系统500包括处理器502、存储器504、存储装置506、输入/输出(I/O)接口508、通信接口510和总线512。尽管本公开描述并示出了具有在特定布置中的特定数量的特定部件的特定计算机系统,但是本公开设想了具有在任何合适布置中的任何合适数量的任何合适部件的任何合适的计算机系统。
在特定实施例中,处理器502包括用于执行指令(例如构成计算机程序的那些指令)的硬件。作为示例而不是作为限制,为了执行指令,处理器502可以从内部寄存器、内部高速缓存、存储器504或存储装置506中检索(或取回)指令;将他们解码并执行它们;以及然后将一个或更多个结果写到内部寄存器、内部高速缓存、存储器504或存储装置506。在特定实施例中,处理器502可以包括用于数据、指令或地址的一个或更多个内部高速缓存。在适当的情况下,本公开设想了处理器502包括任何合适数量的任何合适的内部高速缓存。作为示例而不是作为限制,处理器502可以包括一个或更多个指令高速缓存、一个或更多个数据高速缓存、以及一个或更多个转译后备缓冲器(TLB)。在指令高速缓存中的指令可以是在存储器504或存储装置506中的指令的副本,并且指令高速缓存可以加速处理器502对那些指令的检索。在数据高速缓存中的数据可以是在存储器504或存储装置506中的数据的副本,用于使在处理器502处执行的指令进行操作;在处理器502处执行的先前指令的结果,用于由在处理器502处执行的后续指令访问或者用于写到存储器504或存储装置506;或其他合适的数据。数据高速缓存可以加速由处理器502进行的读或写操作。TLB可以加速关于处理器502的虚拟地址转换。在特定实施例中,处理器502可以包括用于数据、指令或地址的一个或更多个内部寄存器。在适当的情况下,本公开设想了处理器502包括任何合适数量的任何合适的内部寄存器。在适当的情况下,处理器502可以包括一个或更多个算术逻辑单元(ALU);是多核处理器;或者包括一个或更多个处理器502。尽管本公开描述并示出了特定的处理器,但是本公开设想了任何合适的处理器。
在特定实施例中,存储器504包括用于存储用于使处理器502执行的指令或用于使处理器502操作的数据的主存储器。作为示例而不是作为限制,计算机系统500可以将指令从存储装置506或另一个源(例如,另一个计算机系统500)加载到存储器504。处理器502然后可以将指令从存储器504加载到内部寄存器或内部高速缓存。为了执行指令,处理器502可以从内部寄存器或内部高速缓存中检索指令并将它们解码。在指令的执行期间或之后,处理器502可以将一个或更多个结果(其可以是中间结果或最终结果)写到内部寄存器或内部高速缓存。处理器502然后可以将这些结果中的一个或更多个写到存储器504。在特定实施例中,处理器502仅执行在一个或更多个内部寄存器或内部高速缓存中或在存储器504(与存储装置506相对或其它地方)中的指令,并且仅对在一个或更多个内部寄存器或内部高速缓存中或在存储器504(与存储装置506相对或其它地方)中的数据进行操作。一个或更多个存储器总线(其可以各自包括地址总线和数据总线)可以将处理器502耦合到存储器504。如下所述,总线512可以包括一个或更多个存储器总线。在特定实施例中,一个或更多个存储器管理单元(MMU)驻留在处理器502和存储器504之间,并且便于由处理器502请求的对存储器504的访问。在特定实施例中,存储器504包括随机存取存储器(RAM)。在适当的情况下,该RAM可以是易失性存储器。在适当的情况下,该RAM可以是动态RAM(DRAM)或静态RAM(SRAM)。此外,在适当的情况下,该RAM可以是单端口RAM或多端口RAM。本公开设想了任何合适的RAM。在适当的情况下,存储器504可以包括一个或更多个存储器504。尽管本公开描述并示出了特定的存储器,但是本公开设想了任何合适的存储器。
在特定实施例中,存储装置506包括用于数据或指令的大容量存储装置。作为示例而不是作为限制,存储装置506可以包括硬盘驱动器(HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(USB)驱动器、或这些中的两个或更多个的组合。在适当的情况下,存储装置506可以包括可移动或不可移动(或固定)介质。在适当的情况下,存储装置506可以在计算机系统500的内部或外部。在特定实施例中,存储装置506是非易失性固态存储器。在特定实施例中,存储装置506包括只读存储器(ROM)。在适当的情况下,该ROM可以是掩模编程ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可变ROM(EAROM)、或闪存、或这些中的两个或更多个的组合。本公开设想了采用任何合适的物理形式的大容量存储装置506。在适当的情况下,存储装置506可以包括便于在处理器502和存储装置506之间的通信的一个或更多个存储装置控制单元。在适当的情况下,存储装置506可以包括一个或更多个存储装置506。尽管本公开描述并示出了特定的存储装置,但是本公开设想了任何合适的存储装置。
在特定实施例中,I/O接口508包括为在计算机系统500和一个或更多个I/O设备之间的通信提供一个或更多个接口的硬件、软件或两者。在适当的情况下,计算机系统500可以包括这些I/O设备中的一个或更多个。这些I/O设备中的一个或更多个可以实现在人和计算机系统500之间的通信。作为示例而不是作为限制,I/O设备可以包括键盘、小键盘、麦克风、监视器、鼠标、打印机、扫描仪、扬声器、静态摄像机、触笔、平板计算机、触摸屏、跟踪球、视频摄像机、另一个合适的I/O设备、或这些中的两个或更多个的组合。I/O设备可以包括一个或更多个传感器。本公开设想了任何合适的I/O设备以及用于它们的任何合适的I/O接口508。在适当的情况下,I/O接口508可以包括使处理器502能够驱动这些I/O设备中的一个或更多个的一个或更多个设备或软件驱动器。在适当的情况下,I/O接口508可以包括一个或更多个I/O接口508。尽管本公开描述并示出了特定的I/O接口,但是本公开设想了任何合适的I/O接口。
在特定实施例中,通信接口510包括提供用于在计算机系统500和一个或更多个其他计算机系统500或一个或更多个网络之间的通信(例如,基于分组的通信)的一个或更多个接口的硬件、软件或两者。作为示例而不是作为限制,通信接口510可以包括用于与以太网或其他基于有线的网络进行通信的网络接口控制器(NIC)或网络适配器,或用于与无线网络(例如WI-FI网络)进行通信的无线NIC(WNIC)或无线适配器。本公开设想了任何合适的网络和用于它的任何合适的通信接口510。作为示例而不是作为限制,计算机系统500可以与自组织网络、个域网(PAN)、局域网(LAN)、广域网(WAN)、城域网(MAN)或互联网的一个或更多个部分、或这些中的两个或更多个的组合进行通信。这些网络中的一个或更多个的一个或更多个部分可以是有线的或无线的。作为示例,计算机系统500可以与无线PAN(WPAN)(例如,蓝牙WPAN)、WI-FI网络、WI-MAX网络、蜂窝电话网络(例如,全球移动通信系统(GSM)网络)、或其他合适的无线网络、或这些中的两个或更多个的组合进行通信。在适当的情况下,计算机系统500可以包括用于这些网络中的任一个的任何合适的通信接口510。在适当的情况下,通信接口510可以包括一个或更多个通信接口510。尽管本公开描述并示出了特定的通信接口,但是本公开设想了任何合适的通信接口。
在特定实施例中,总线512包括将计算机系统500的部件耦合到彼此的硬件、软件或两者。作为示例而不是作为限制,总线512可以包括加速图形端口(AGP)或其他图形总线、扩展工业标准体系结构(EISA)总线、前端总线(FSB)、HYPERTRANSPORT(HT)互连、工业标准体系结构(ISA)总线、INFINIBAND互连、低引脚数(LPC)总线、存储器总线,微通道体系结构(MCA)总线、外围部件互连(PCI)总线、PCI-Express(扩展)(PCIe)总线、串行高级技术附件(SATA)总线、视频电子标准协会本地(VLB)总线、或任何其他合适的总线、或这些中的两个或更多个的组合。在适当的情况下,总线512可以包括一个或更多个总线512。尽管本公开描述并示出了特定总线,但是本公开设想了任何合适的总线或互连。
在本文,在适当的情况下,一个或更多个计算机可读非暂时性存储介质可以包括一个或更多个基于半导体的或其他集成电路(IC)(例如,现场可编程门阵列(FPGA)或专用IC(ASIC))、硬盘驱动器(HDD)、混合硬盘驱动器(HHD)、光盘、光盘驱动器(ODD)、磁光盘、磁光盘驱动器、软盘、软盘驱动器(FDD)、磁带、固态驱动器(SSD)、RAM驱动器、安全数字(SECURE DIGITAL)卡或驱动器、任何其他合适的计算机可读非暂时性存储介质、或这些中的两个或更多个的任何合适的组合。在适当的情况下,计算机可读非暂时性存储介质可以是易失性的、非易失性的或者易失性和非易失性的组合。
本文中,除非另有明确指示或通过上下文另有指示,否则“或”是包括一切的而非排他性的。因此在本文,除非另有明确指示或通过上下文另有指示,否则“A或B”意指“A、B或两者”。此外,除非另有明确指示或通过上下文另有指示,否则“和”既是联合的又是各自的。因此在本文,除非另有明确指示或通过上下文另有指示,否则“A和B”意指“A和B,联合地或各自地”。
本公开的范围包括本领域中的普通技术人员将理解的对本文描述或示出的示例实施例的所有改变、替换、变化、变更和修改。本公开的范围不限于本文描述或示出的示例实施例。此外,尽管本公开将本文的相应实施例描述并示为包括特定的部件、元件、特征、功能、操作或步骤,但是这些实施例中的任何一个可以包括本领域中的普通技术人员将理解的在本文任何地方描述或示出的任何部件、元件、特征、功能、操作或步骤的任何组合或置换。此外,在所附权利要求中对适合于、被布置成、能够、被配置成、实现来、可操作来、或操作来执行特定功能的装置或系统或装置或系统的部件的引用包括该装置、系统、部件,无论它或那个特定功能是否被激活、开启或解锁,只要该装置、系统或部件是如此被调整、被布置、有能力的、被配置、实现、可操作的、或操作的。此外,尽管本公开将特定实施例描述或示为提供特定优点,但是特定实施例可以提供这些优点中的一些、全部或不提供这些优点。

Claims (35)

1.一种方法,所述方法包括由计算设备:
接收输入;
生成表示所述输入的第一查询向量表示;
生成与键值记忆集合相关联的第一相关性度量,每个键值记忆具有相关联的键和相关联的值,其中,基于所述第一查询向量表示与键向量表示之间的比较来生成所述第一相关性度量,所述键向量表示用于表示与所述键值记忆集合相关联的键;
基于(1)所述键值记忆集合的第一相关性度量和(2)表示与所述键值记忆集合相关联的值的值向量表示,生成第一聚合结果;
通过迭代过程,使用最终查询向量表示来生成最终聚合结果,其中,所述迭代过程中的初始迭代包括:
基于所述第一查询向量表示、所述第一聚合结果和第一机器学习模型来生成第二查询向量表示;
使用所述第二查询向量表示来生成与所述键值记忆集合相关联的第二相关性度量;以及
使用所述第二相关性度量来生成第二聚合结果;
基于所述最终聚合结果和所述最终查询向量表示来生成组合特征表示;以及
响应于所述输入,基于所述组合特征表示与候选输出集合之间的比较来选择输出。
2.根据权利要求1所述的方法,其中,在所述初始迭代之后,所述迭代过程的每个后续迭代包括:
基于(1)在前一次迭代中生成的前一次迭代查询向量表示、(2)在所述前一次迭代中生成的前一次迭代聚合结果和(3)当前迭代机器学习模型,生成当前迭代查询向量表示;
通过比较所述当前迭代查询向量表示和所述键向量表示来生成当前迭代相关性度量;以及
基于所述当前迭代相关性度量和所述值向量表示来生成当前迭代聚合结果。
3.根据权利要求2所述的方法,
其中,使用训练样本集合来训练所述第一机器学习模型和所述迭代过程中每个后续迭代的当前迭代机器学习模型,每个训练样本包括训练输入和目标输出。
4.根据权利要求1所述的方法,其中,所述输入是问题并且所述输出是所述问题的答案。
5.根据权利要求1所述的方法,还包括:
基于所述输入来选择所述键值记忆集合。
6.根据权利要求1所述的方法,其中,所述第一查询向量表示、所述键向量表示和所述值向量表示中的每一个都是嵌入。
7.根据权利要求1所述的方法,
其中,使用第二机器学习模型和所述输入来生成所述第一查询向量表示;
其中,使用所述第二机器学习模型和相关联的键来生成所述键向量表示中的每一个;并且
其中,使用所述第二机器学习模型和相关联的值来生成所述值向量表示中的每一个。
8.根据权利要求7所述的方法,
其中,使用训练样本集合来迭代地训练所述第一机器学习模型和所述第二机器学习模型,每个训练样本包括训练输入和目标输出;
其中,对于所述训练样本集合中的每个训练样本,基于(1)响应于该训练样本的训练输入而选择的训练输出与(2)该训练样本的目标输出之间的比较,更新所述第一机器学习模型和所述第二机器学习模型。
9.根据权利要求7所述的方法,其中,所述第一机器学习模型或所述第二机器学习模型是使用机器学习算法生成的矩阵。
10.根据权利要求1所述的方法,其中,所述键值记忆集合中的每个键值记忆的第一相关性度量是概率。
11.根据权利要求1所述的方法,其中,所述第一聚合结果是所述值向量表示的加权和,所述值向量表示以它们各自相关联的第一相关性度量进行加权。
12.根据权利要求1所述的方法,其中,所述候选输出集合中的每一个候选输出是使用第二机器学习模型生成的、相关联的候选文本输出的向量表示。
13.根据权利要求1所述的方法,其中,所述键值记忆集合中的第一键值记忆与知识库条目相关联,所述知识库条目包括主语、宾语以及主语和宾语之间的第一关系,其中,所述第一键值记忆的键表示所述主语和所述第一关系,其中,所述第一键值记忆的值表示所述宾语。
14.根据权利要求13所述的方法,其中,所述键值记忆集合中的第二键值记忆的键表示所述宾语以及所述宾语和所述主语之间的第二关系,其中,所述第二键值记忆的值表示所述主语。
15.根据权利要求1所述的方法,
其中,所述键值记忆集合中的第一键值记忆与文档中的词窗口相关联,其中,所述第一键值记忆的键表示所述词窗口,其中,所述第一键值记忆的值表示所述词窗口中的中心词。
16.根据权利要求15所述的方法,其中,所述键值记忆集合中的第二键值记忆与所述文档中的所述词窗口相关联,其中,所述第二键值记忆的键表示所述词窗口,其中,所述第二键值记忆的值表示所述文档的标题。
17.体现软件的一个或更多个计算机可读非暂时性存储介质,所述软件当被执行时可操作来:
接收输入;
生成表示所述输入的第一查询向量表示;
生成与键值记忆集合相关联的第一相关性度量,每个键值记忆具有相关联的键和相关联的值,其中,基于所述第一查询向量表示与键向量表示之间的比较来生成所述第一相关性度量,所述键向量表示用于表示与所述键值记忆集合相关联的键;
基于(1)所述键值记忆集合的第一相关性度量和(2)表示与所述键值记忆集合相关联的值的值向量表示,生成第一聚合结果;
通过迭代过程,使用最终查询向量表示来生成最终聚合结果,其中,所述迭代过程中的初始迭代包括:
基于所述第一查询向量表示、所述第一聚合结果和第一机器学习模型来生成第二查询向量表示;
使用所述第二查询向量表示来生成与所述键值记忆集合相关联的第二相关性度量;以及
使用所述第二相关性度量来生成第二聚合结果;
基于所述最终聚合结果和所述最终查询向量表示来生成组合特征表示;以及
响应于所述输入,基于所述组合特征表示与候选输出集合之间的比较来选择输出。
18.根据权利要求17所述的介质,其中,在所述初始迭代之后,所述迭代过程的每个后续迭代包括:
基于(1)在前一次迭代中生成的前一次迭代查询向量表示、(2)在所述前一次迭代中生成的前一次迭代聚合结果和(3)当前迭代机器学习模型,生成当前迭代查询向量表示;
通过比较所述当前迭代查询向量表示和所述键向量表示来生成当前迭代相关性度量;以及
基于所述当前迭代相关性度量和所述值向量表示来生成当前迭代聚合结果。
19.一种系统,包括一个或更多个处理器和一个或更多个计算机可读非暂时性存储介质,所述一个或更多个计算机可读非暂时性存储介质耦合到一个或更多个所述处理器并包括指令,所述指令当由一个或更多个所述处理器执行时可操作来使所述系统:
接收输入;
生成表示所述输入的第一查询向量表示;
生成与键值记忆集合相关联的第一相关性度量,每个键值记忆具有相关联的键和相关联的值,其中,基于所述第一查询向量表示与键向量表示之间的比较来生成所述第一相关性度量,所述键向量表示用于表示与所述键值记忆集合相关联的键;
基于(1)所述键值记忆集合的第一相关性度量和(2)表示与所述键值记忆集合相关联的值的值向量表示,生成第一聚合结果;
通过迭代过程,使用最终查询向量表示来生成最终聚合结果,其中,所述迭代过程中的初始迭代包括:
基于所述第一查询向量表示、所述第一聚合结果和第一机器学习模型来生成第二查询向量表示;
使用所述第二查询向量表示来生成与所述键值记忆集合相关联的第二相关性度量;以及
使用所述第二相关性度量来生成第二聚合结果;
基于所述最终聚合结果和所述最终查询向量表示来生成组合特征表示;以及
响应于所述输入,基于所述组合特征表示与候选输出集合之间的比较来选择输出。
20.根据权利要求19所述的系统,其中,在所述初始迭代之后,所述迭代过程的每个后续迭代包括:
基于(1)在前一次迭代中生成的前一次迭代查询向量表示、(2)在所述前一次迭代中生成的前一次迭代聚合结果和(3)当前迭代机器学习模型,生成当前迭代查询向量表示;
通过比较所述当前迭代查询向量表示和所述键向量表示来生成当前迭代相关性度量;以及
基于所述当前迭代相关性度量和所述值向量表示来生成当前迭代聚合结果。
21.一种方法,所述方法包括由计算设备:
接收输入;
生成表示所述输入的第一查询向量表示;
生成与键值记忆集合相关联的第一相关性度量,每个键值记忆具有相关联的键和相关联的值,其中,基于所述第一查询向量表示与键向量表示之间的比较来生成所述第一相关性度量,所述键向量表示用于表示与所述键值记忆集合相关联的键;
基于(1)所述键值记忆集合的第一相关性度量和(2)表示与所述键值记忆集合相关联的值的值向量表示,生成第一聚合结果;
通过迭代过程,使用最终查询向量表示来生成最终聚合结果,其中,所述迭代过程中的初始迭代包括:
基于所述第一查询向量表示、所述第一聚合结果和第一机器学习模型来生成第二查询向量表示;
使用所述第二查询向量表示来生成与所述键值记忆集合相关联的第二相关性度量;以及
使用所述第二相关性度量来生成第二聚合结果;
基于所述最终聚合结果和所述最终查询向量表示来生成组合特征表示;以及
响应于所述输入,基于所述组合特征表示与候选输出集合之间的比较来选择输出。
22.根据权利要求21所述的方法,其中,在所述初始迭代之后,所述迭代过程的每个后续迭代包括:
基于(1)在前一次迭代中生成的前一次迭代查询向量表示、(2)在所述前一次迭代中生成的前一次迭代聚合结果和(3)当前迭代机器学习模型,生成当前迭代查询向量表示;
通过比较所述当前迭代查询向量表示和所述键向量表示来生成当前迭代相关性度量;以及
基于所述当前迭代相关性度量和所述值向量表示来生成当前迭代聚合结果。
23.根据权利要求22所述的方法,
其中,使用训练样本集合来训练所述第一机器学习模型和所述迭代过程中每个后续迭代的当前迭代机器学习模型,每个训练样本包括训练输入和目标输出。
24.根据权利要求21至23中任一项所述的方法,其中,所述输入是问题并且所述输出是所述问题的答案。
25.根据权利要求21至24中任一项所述的方法,还包括:
基于所述输入来选择所述键值记忆集合。
26.根据权利要求21至25中任一项所述的方法,其中,所述第一查询向量表示、所述键向量表示和所述值向量表示中的每一个都是嵌入。
27.根据权利要求21至26中任一项所述的方法,
其中,使用第二机器学习模型和所述输入来生成所述第一查询向量表示;
其中,使用所述第二机器学习模型和相关联的键来生成所述键向量表示中的每一个;并且
其中,使用所述第二机器学习模型和相关联的值来生成所述值向量表示中的每一个;
可选地,
其中,使用训练样本集合来迭代地训练所述第一机器学习模型和所述第二机器学习模型,每个训练样本包括训练输入和目标输出;
其中,对于该训练样本集合中的每个训练样本,基于(1)响应于该训练样本的训练输入而选择的训练输出与(2)该训练样本的目标输出之间的比较,更新所述第一机器学习模型和所述第二机器学习模型;和/或
可选地其中,所述第一机器学习模型或所述第二机器学习模型是使用机器学习算法生成的矩阵。
28.根据权利要求21至27中任一项所述的方法,其中,所述键值记忆集合中每个键值记忆的第一相关性度量是概率。
29.根据权利要求21至28中任一项所述的方法,其中,所述第一聚合结果是所述值向量表示的加权和,所述值向量表示以它们各自相关联的第一相关性度量进行加权;和/或
其中,所述候选输出集合中的每一个候选输出是使用第二机器学习模型生成的、相关联的候选文本输出的向量表示。
30.根据权利要求21至29中任一项所述的方法,其中,所述键值记忆集合中的第一键值记忆与知识库条目相关联,所述知识库条目包括主语、宾语以及所述主语和所述宾语之间的第一关系,其中,所述第一键值记忆的键表示所述主语和所述第一关系,其中,所述第一键值记忆器的值表示所述宾语;
可选地其中,所述键值记忆集合中的第二键值记忆的键表示所述宾语以及所述宾语和所述主语之间的第二关系,其中,所述第二键值记忆的值表示所述主语。
31.根据权利要求21至30中任一项所述的方法,
其中,所述键值记忆集合中的第一键值记忆与文档中的词窗口相关联,其中,所述第一键值记忆的键表示所述词窗口,其中,所述第一键值记忆的值表示所述词窗口中的中心词;
可选地其中,所述键值记忆集合中的第二键值记忆与所述文档中的所述词窗口相关联,其中,所述第二键值记忆的键表示所述词窗口,其中,所述第二键值记忆的值表示所述文档的标题。
32.体现软件的一个或更多个计算机可读非暂时性存储介质,所述软件当被执行时可操作来:
接收输入;
生成表示所述输入的第一查询向量表示;
生成与键值记忆集合相关联的第一相关性度量,每个键值记忆具有相关联的键和相关联的值,其中,基于所述第一查询向量表示与键向量表示之间的比较来生成所述第一相关性度量,所述键向量表示用于表示与所述键值记忆集合相关联的键;
基于(1)所述键值记忆集合的第一相关性度量和(2)表示与所述键值记忆集合相关联的值的值向量表示,生成第一聚合结果;
通过迭代过程,使用最终查询向量表示来生成最终聚合结果,其中,所述迭代过程中的初始迭代包括:
基于所述第一查询向量表示、所述第一聚合结果和第一机器学习模型来生成第二查询向量表示;
使用所述第二查询向量表示来生成与所述键值记忆集合相关联的第二相关性度量;以及
使用所述第二相关性度量来生成第二聚合结果;
基于所述最终聚合结果和所述最终查询向量表示来生成组合特征表示;以及
响应于所述输入,基于所述组合特征表示与候选输出集合之间的比较来选择输出。
33.根据权利要求32所述的介质,其中,在所述初始迭代之后,所述迭代过程的每个后续迭代包括:
基于(1)在前一次迭代中生成的前一次迭代查询向量表示、(2)在所述前一次迭代中生成的前一次迭代聚合结果和(3)当前迭代机器学习模型,生成当前迭代查询向量表示;
通过比较所述当前迭代查询向量表示和所述键向量表示来生成当前迭代相关性度量;以及
基于所述当前迭代相关性度量和所述值向量表示来生成当前迭代聚合结果。
34.一种系统,包括一个或更多个处理器和一个或更多个计算机可读非暂时性存储介质,所述一个或更多个计算机可读非暂时性存储介质耦合到一个或更多个所述处理器并包括指令,所述指令当由一个或更多个所述处理器执行时可操作来使所述系统:
接收输入;
生成表示所述输入的第一查询向量表示;
生成与键值记忆集合相关联的第一相关性度量,每个键值记忆具有相关联的键和相关联的值,其中,基于所述第一查询向量表示与键向量表示之间的比较来生成所述第一相关性度量,所述键向量表示用于表示与所述键值记忆集合相关联的键;
基于(1)所述键值记忆集合的第一相关性度量和(2)表示与所述键值记忆集合相关联的值的值向量表示,生成第一聚合结果;
通过迭代过程,使用最终查询向量表示来生成最终聚合结果,其中,所述迭代过程中的初始迭代包括:
基于所述第一查询向量表示、所述第一聚合结果和第一机器学习模型来生成第二查询向量表示;
使用所述第二查询向量表示来生成与所述键值记忆集合相关联的第二相关性度量;以及
使用所述第二相关性度量来生成第二聚合结果;
基于所述最终聚合结果和所述最终查询向量表示来生成组合特征表示;以及
响应于所述输入,基于所述组合特征表示与候选输出集合之间的比较来选择输出。
35.根据权利要求34所述的系统,其中,在所述初始迭代之后,所述迭代过程的每个后续迭代包括:
基于(1)在前一次迭代中生成的前一次迭代查询向量表示、(2)在所述前一次迭代中生成的前一次迭代聚合结果和(3)当前迭代机器学习模型,生成当前迭代查询向量表示;
通过比较所述当前迭代查询向量表示和所述键向量表示来生成当前迭代相关性度量;以及
基于所述当前迭代相关性度量和所述值向量表示来生成当前迭代聚合结果。
CN201880048452.3A 2017-06-08 2018-06-07 键值记忆网络 Pending CN110945500A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762517097P 2017-06-08 2017-06-08
US62/517,097 2017-06-08
PCT/US2018/036467 WO2018226960A1 (en) 2017-06-08 2018-06-07 Key-value memory networks

Publications (1)

Publication Number Publication Date
CN110945500A true CN110945500A (zh) 2020-03-31

Family

ID=64563424

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880048452.3A Pending CN110945500A (zh) 2017-06-08 2018-06-07 键值记忆网络

Country Status (3)

Country Link
US (1) US20180357240A1 (zh)
CN (1) CN110945500A (zh)
WO (1) WO2018226960A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023185515A1 (zh) * 2022-03-30 2023-10-05 北京字节跳动网络技术有限公司 特征提取方法、装置、存储介质及电子设备

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10691886B2 (en) * 2017-03-09 2020-06-23 Samsung Electronics Co., Ltd. Electronic apparatus for compressing language model, electronic apparatus for providing recommendation word and operation methods thereof
US11256985B2 (en) 2017-08-14 2022-02-22 Sisense Ltd. System and method for generating training sets for neural networks
US11216437B2 (en) 2017-08-14 2022-01-04 Sisense Ltd. System and method for representing query elements in an artificial neural network
US20190050724A1 (en) 2017-08-14 2019-02-14 Sisense Ltd. System and method for generating training sets for neural networks
US10482162B2 (en) * 2017-11-30 2019-11-19 International Business Machines Corporation Automatic equation transformation from text
CN111344779B (zh) 2017-12-15 2024-01-23 谷歌有限责任公司 训练和/或使用编码器模型确定自然语言输入的响应动作
US10853725B2 (en) * 2018-05-18 2020-12-01 Deepmind Technologies Limited Neural networks with relational memory
US11809983B2 (en) * 2018-08-30 2023-11-07 Qualtrics, Llc Machine-learning-based digital survey creation and management
CN112771530B (zh) * 2018-09-27 2024-08-20 谷歌有限责任公司 用于交互式web文档的自动导航的方法和系统
US11055330B2 (en) * 2018-11-26 2021-07-06 International Business Machines Corporation Utilizing external knowledge and memory networks in a question-answering system
RU2744028C2 (ru) * 2018-12-26 2021-03-02 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для хранения множества документов
KR20210098247A (ko) * 2020-01-31 2021-08-10 삼성전자주식회사 전자 장치 및 그 동작방법
US11775533B2 (en) * 2021-01-14 2023-10-03 Capital One Services, Llc Customizing search queries for information retrieval
CN113177562B (zh) * 2021-04-29 2024-02-06 京东科技控股股份有限公司 基于自注意力机制融合上下文信息的向量确定方法及装置
US11709866B2 (en) * 2021-08-13 2023-07-25 Snowflake Inc. Scalable compaction in a concurrent transaction processing distributed database
US11514370B1 (en) * 2021-12-03 2022-11-29 FriendliAI Inc. Selective batching for inference system for transformer-based generation tasks

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011081275A (ja) * 2009-10-09 2011-04-21 Hideaki Yasuda 知識ネット可視化システムおよび知識ネット可視化方法ならびにそのプログラム
US20120209847A1 (en) * 2011-02-16 2012-08-16 Clearwell Systems, Inc. Methods and systems for automatically generating semantic/concept searches
US20130204885A1 (en) * 2012-02-02 2013-08-08 Xerox Corporation Document processing employing probabilistic topic modeling of documents represented as text words transformed to a continuous space
US20150142807A1 (en) * 2013-11-15 2015-05-21 Saffron Technology, Inc. Methods, systems and computer program products for using a distributed associative memory base to determine data correlations and convergence therein
CN105095069A (zh) * 2015-06-19 2015-11-25 北京京东尚科信息技术有限公司 一种人工智能应答系统测试方法及系统
US20160041980A1 (en) * 2014-08-07 2016-02-11 International Business Machines Corporation Answering time-sensitive questions
US20160179979A1 (en) * 2014-12-22 2016-06-23 Franz, Inc. Semantic indexing engine
US20170091662A1 (en) * 2015-09-29 2017-03-30 Cognitive Scale, Inc. Cognitive Learning Framework

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9165074B2 (en) * 2011-05-10 2015-10-20 Uber Technologies, Inc. Systems and methods for performing geo-search and retrieval of electronic point-of-interest records using a big index
US9535960B2 (en) * 2014-04-14 2017-01-03 Microsoft Corporation Context-sensitive search using a deep learning model
CN107209785B (zh) * 2015-02-11 2021-02-09 胡露有限责任公司 数据库系统中的相关性表聚合
US9684876B2 (en) * 2015-03-30 2017-06-20 International Business Machines Corporation Question answering system-based generation of distractors using machine learning
US9996533B2 (en) * 2015-09-30 2018-06-12 International Business Machines Corporation Question answering system using multilingual information sources
US11449744B2 (en) * 2016-06-23 2022-09-20 Microsoft Technology Licensing, Llc End-to-end memory networks for contextual language understanding
US11288584B2 (en) * 2016-06-23 2022-03-29 Tata Consultancy Services Limited Systems and methods for predicting gender and age of users based on social media data
US10462199B2 (en) * 2016-12-23 2019-10-29 Cerner Innovation, Inc. Intelligent and near real-time monitoring in a streaming environment

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011081275A (ja) * 2009-10-09 2011-04-21 Hideaki Yasuda 知識ネット可視化システムおよび知識ネット可視化方法ならびにそのプログラム
US20120209847A1 (en) * 2011-02-16 2012-08-16 Clearwell Systems, Inc. Methods and systems for automatically generating semantic/concept searches
US20130204885A1 (en) * 2012-02-02 2013-08-08 Xerox Corporation Document processing employing probabilistic topic modeling of documents represented as text words transformed to a continuous space
US20150142807A1 (en) * 2013-11-15 2015-05-21 Saffron Technology, Inc. Methods, systems and computer program products for using a distributed associative memory base to determine data correlations and convergence therein
US20160041980A1 (en) * 2014-08-07 2016-02-11 International Business Machines Corporation Answering time-sensitive questions
US20160179979A1 (en) * 2014-12-22 2016-06-23 Franz, Inc. Semantic indexing engine
CN105095069A (zh) * 2015-06-19 2015-11-25 北京京东尚科信息技术有限公司 一种人工智能应答系统测试方法及系统
US20170091662A1 (en) * 2015-09-29 2017-03-30 Cognitive Scale, Inc. Cognitive Learning Framework

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ALEXANDER MILLER等: ""Key-Value Memory Networks for Directly Reading Docunments"" *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023185515A1 (zh) * 2022-03-30 2023-10-05 北京字节跳动网络技术有限公司 特征提取方法、装置、存储介质及电子设备

Also Published As

Publication number Publication date
US20180357240A1 (en) 2018-12-13
WO2018226960A1 (en) 2018-12-13

Similar Documents

Publication Publication Date Title
CN110945500A (zh) 键值记忆网络
US11657231B2 (en) Capturing rich response relationships with small-data neural networks
CN111506714B (zh) 基于知识图嵌入的问题回答
EP3724785B1 (en) Fast indexing with graphs and compact regression codes on online social networks
US20220269707A1 (en) Method and system for analyzing entities
US11468239B2 (en) Joint intent and entity recognition using transformer models
CN106663124B (zh) 生成和使用知识增强型模型
US10559308B2 (en) System for determining user intent from text
US20190188285A1 (en) Image Search with Embedding-based Models on Online Social Networks
US10678786B2 (en) Translating search queries on online social networks
US20190108282A1 (en) Parsing and Classifying Search Queries on Online Social Networks
Lei et al. Deep learning application on code clone detection: A review of current knowledge
US10762083B2 (en) Entity- and string-based search using a dynamic knowledge graph
KR20160144384A (ko) 딥 러닝 모델을 이용한 상황 의존 검색 기법
US20160078014A1 (en) Rule development for natural language processing of text
CN115917529A (zh) 生成标识在web文档中表达的主题之间的关系的图形数据结构
Dang et al. Deep knowledge-aware framework for web service recommendation
US20180144305A1 (en) Personalized contextual recommendation of member profiles
EP3413218A1 (en) Key-value memory networks
Luraschi et al. Mastering Spark with R: the complete guide to large-scale analysis and modeling
Sarkar et al. The Python machine learning ecosystem
Rajan et al. Text summarization using residual-based temporal attention convolutional neural network
US20180137588A1 (en) Contextual personalized list of recommended courses
Chen et al. Capsule-based bidirectional gated recurrent unit networks for question target classification
US20180144304A1 (en) Contextual recommendation of member profiles

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: California, USA

Applicant after: Yuan platform Co.

Address before: California, USA

Applicant before: Facebook, Inc.

CB02 Change of applicant information
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20200331

WD01 Invention patent application deemed withdrawn after publication