CN116490864A - 生成式检索中基于trie的集束搜索的前瞻策略 - Google Patents
生成式检索中基于trie的集束搜索的前瞻策略 Download PDFInfo
- Publication number
- CN116490864A CN116490864A CN202080106212.1A CN202080106212A CN116490864A CN 116490864 A CN116490864 A CN 116490864A CN 202080106212 A CN202080106212 A CN 202080106212A CN 116490864 A CN116490864 A CN 116490864A
- Authority
- CN
- China
- Prior art keywords
- predictive
- token
- tokens
- trie
- score
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 105
- 238000010801 machine learning Methods 0.000 claims abstract description 17
- 238000003860 storage Methods 0.000 claims description 34
- 230000015654 memory Effects 0.000 claims description 22
- 230000004044 response Effects 0.000 claims description 13
- 230000008569 process Effects 0.000 description 17
- 238000012545 processing Methods 0.000 description 12
- 239000004606 Fillers/Extenders Substances 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 4
- 238000013549 information retrieval technique Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 238000007792 addition Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000007476 Maximum Likelihood Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9532—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/3332—Query translation
- G06F16/3338—Query expansion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0251—Targeted advertisements
- G06Q30/0254—Targeted advertisements based on statistics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0251—Targeted advertisements
- G06Q30/0255—Targeted advertisements based on user history
- G06Q30/0256—User search
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Strategic Management (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Accounting & Taxation (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Entrepreneurship & Innovation (AREA)
- Game Theory and Decision Science (AREA)
- Economics (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供了用于从输入查询生成关键字序列的系统和方法。可以接收对应于输入查询的第一文本序列,并且使用机器学习模型的编码器将第一文本序列编码为源序列表示。然后可以使用机器学习模型的解码器从源序列表示生成关键字语句。解码器可以为多个预测令牌生成经修改的生成得分,其中经修改的生成得分基于相应预测令牌生成得分和每个预测令牌的后缀的最大生成得分。解码器然后可以基于经修改的生成得分来选择多个预测令牌中的预测令牌,并且将选择的预测令牌添加到由解码器提供的先前解码的部分假设。
Description
背景技术
来自用户的搜索查询可以被扩展或以其他方式修改以包括与媒体内容提供商相关的关键字。由于媒体内容提供商倾向于在用户点击内容时依赖于被触发的关键字来显示其内容,因此将来自用户的搜索查询扩展或修改为与内容提供商相关的库中的关键字是非常令人感兴趣的。尽管需要以前的关键字与用户输入查询完全相同来触发将内容显示给用户,但通常使用如具有质量过滤的信息检索等方法来调用更相关的关键字。然而,传统的信息检索技术无法填补查询与关键字之间的语义间隔。因此,搜索引擎服务提供商的主要兴趣是从用户查询中开发更加语义相关的关键字,而不是从传统的信息检索技术生成关键字。正是关于这些和其他一般考虑来描述实施例。此外,尽管已经讨论了相对特定的问题,但是应当理解,实施例不应当局限于解决在背景技术中指出的特定问题。
发明内容
根据本公开的示例,提供了一种用于从输入查询生成关键字序列的方法。该方法可以包括接收对应于输入查询的第一文本序列,并且使用机器学习模型的编码器将第一文本序列编码为源序列表示,使用机器学习模型的解码器从源序列表示生成关键字序列。此外,该方法可以包括为多个预测令牌生成生成得分,其中多个预测令牌基于源序列表示和由解码器提供的先前解码的部分假设,为多个预测令牌生成经修改的生成得分,其中经修改的生成得分基于相应预测令牌生成得分和每个预测令牌的后缀的最大生成得分,基于经修改的生成得分选择多个预测令牌中的预测令牌,并且将选择的预测令牌添加到由解码器提供的先前解码的部分假设。然后,可以基于所选择的预测令牌来选择内容并且响应于输入查询而将该内容提供给计算设备,其中所选择的预测令牌匹配与要提供给计算设备的内容相关联的至少一个关键字。通过前瞻(look ahead)未来令牌的得分来修改下一预测令牌的得分,由此可以优化搜索空间,从而允许与过去的序列预测模型相比召回更相关的关键字。此外,可以利用与未来令牌相关联的未来信息来缓解常见问题,诸如但不限于不是期望目标序列的一部分的常见前缀、或者在目标序列中遇到“噪声”或拼写错误的单词。
在一些示例中,提供了一种计算机可读存储介质。该计算机可读存储介质可以包括指令,该指令在由处理器执行时引起处理器接收对应于输入查询的第一文本序列,使用机器学习模型的编码器将第一文本序列编码为源序列表示,使用机器学习模型的解码器从源序列表示生成关键字序列,为多个预测令牌生成生成得分,其中多个预测令牌基于源顺序表示和由解码器提供的先前解码的部分假设,为多个预测令牌生成经修改的生成得分,其中经修改的生成得分基于相应预测令牌生成得分和多个预测令牌中的每个预测令牌的后缀的最大生成得分,基于经修改的生成得分选择多个预测令牌中的预测令牌,并且将所选择的预测令牌添加到由解码器提供的先前解码的部分假设。在一些示例中,提供了一种包括处理器和存储器的系统。处理器可以包括用于执行方法的指令,该方法包括接收对应于输入查询的第一文本序列,并且使用机器学习模型的编码器将第一文本序列编码为源序列表示,使用机器学习模型的解码器从源序列表示生成关键字序列。此外,处理器可以为多个预测令牌生成生成得分,其中多个预测令牌基于源序列表示和由解码器提供的先前解码的部分假设,为多个预测令牌生成经修改的生成得分,其中经修改的生成得分基于相应预测令牌生成得分和每个预测令牌的后缀的最大生成得分,基于经修改的生成得分选择多个预测令牌中的预测令牌,并且将选择的预测令牌添加到由解码器提供的先前解码的部分假设。然后,可以基于所选择的预测令牌选择内容并且响应于输入查询而将该内容提供给计算设备,其中所选择的预测令牌匹配与要提供给计算设备的内容相关联的至少一个关键字。通过前瞻未来令牌的得分来修改下一预测令牌的得分,由此可以优化搜索空间,从而允许与过去的序列预测模型相比召回更相关的关键字。此外,可以利用与未来令牌相关联的未来信息来缓解常见问题,诸如但不限于不是期望目标序列的一部分的常见前缀、或者在目标序列中遇到“噪声”或拼写错误的单词。
在上述方法、系统和/或计算机可读存储介质的一些方面,多个预测令牌中的每个预测令牌的后缀的生成得分可以基于令牌的生成得分,该令牌是一个或多个预测令牌的后缀的后缀。因此,预测令牌的紧邻后缀之外的令牌的未来信息可以被用于优化搜索空间,并且允许与过去的序列预测模型相比调用更相关的关键字。
在上述方法、系统和/或计算机可读存储介质的一些方面,多个预测令牌和每个预测令牌的后缀从Trie被访问和/或被约束到Trie。由于可以从中进行选择的可能预测令牌的数目在使用Trie时可以显著减少,因此本文中描述的方法可能不会遇到与在大于Trie的搜索空间进行搜索相关联的开销。例如,可以减少所利用的资源量(诸如存储器和计算)。在一些方面,Trie可以是特定于输入查询的,使得可以生成关键字特定Trie。
提供本发明内容是为了以简化的形式介绍概念的选择,这些概念将在下面的详细描述中进一步描述。本发明内容不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在用于限制所要求保护主题的范围。
附图说明
参考以下附图描述非限制性的非详尽的示例。
图1描绘了根据本公开的示例的用于对基于Trie的生成检索模型执行前瞻策略的示例系统。
图2A描绘了第一Trie的细节。
图2B描绘了第二Trie的细节。
图2C描绘了第三Trie的细节。
图2D描绘了第四Trie的细节。
图2E描绘了第五Trie的细节。
图3描绘了根据本公开的示例的与Seq2Seq模型相关联的解码过程的细节。
图4A描绘了根据本公开的示例的与Seq2Seq模型相关联的解码过程的细节。
图4B描绘了根据本公开的示例的与Seq2Seq模型相关联的解码过程的附加细节。
图4C描绘了根据本公开的示例的与Seq2Seq模型相关联的解码过程的附加细节。
图4D描绘了根据本公开的示例的与Seq2Seq模型相关联的解码过程的附加细节。
图4E描绘了根据本公开的示例的与Seq2Seq模型相关联的解码过程的附加细节。
图5描绘了根据本公开的示例的与Seq2Seq模型相关联的解码过程的细节。
图6描绘了根据本公开的示例的与Seq2Seq模型相关联的解码过程的附加细节。
图7描绘了根据本公开的示例的搜索引擎服务、受赞助内容服务和Trie服务器的附加细节。
图8描绘了根据本公开的示例的第一方法的细节。
图9描绘了根据本公开的示例的第二方法的细节。
图10描绘了根据本公开的示例的第三方法的细节。
图11描绘了根据本公开的示例的第四方法的细节。
图12是示出可以用于实践本公开的各方面的计算设备的物理组件(例如,硬件)的框图。
图12A示出了可以用于实践本公开的实施例的移动计算设备。
图12B示出了可以用于实践本公开的实施例的移动计算设备的附加细节。
图13示出了用于处理数据的系统的架构的一个方面。
具体实施方式
在以下详细描述中,参考附图,附图构成本文的一部分,并且在附图中通过图示的方式示出了具体实施例或示例。在不脱离本公开的情况下,可以组合这些方面,可以利用其他方面,并且可以进行结构改变。实施例可以作为方法、系统或设备来实践。因此,实施例可以采取硬件实现、完全软件实现、或结合软件和硬件方面的实现的形式。因此,以下详细描述不应当被视为限制性的,并且本公开的范围由所附权利要求及其等同物来限定。
在受赞助搜索引擎中,来自用户的搜索查询被扩展或以其他方式修改以包括与赞助商(诸如广告商)相关的关键字。赞助商可以对被触发的关键字竞价以显示其内容,并且可以在用户点击内容时以每次点击为基础为受赞助搜索引擎付费。由于受赞助搜索引擎的主要收入是提供用户可能感兴趣的内容,因此受赞助搜索引擎提供商对从用户到与赞助商相关的关键字库中的关键字的搜索查询的扩展或修改非常感兴趣。尽管过去的关键字需要与用户输入查询相同以触发将内容显示给用户,但通常使用如具有质量过滤的信息检索等方法来调用更相关的关键字。然而,传统的信息检索技术无法填补赞助商提供的查询与关键字之间的语义间隔。因此,受赞助搜索引擎服务提供商感兴趣的是从用户查询中开发更加语义相关的关键字,而不是从传统的信息检索技术生成关键字。
在一些示例中,初始用户查询被重写以包括一系列中间查询;然后中间查询的结果可以被组合。查询重写策略通常被广泛使用,但往往效率低下,因为从扩展查询重写策略生成的很多关键字未被包括在与赞助商或其他媒体内容提供商相关联的关键字库中。查询重写的示例可以包括利用自然语言生成(NLG)序列到序列(Seq2Seq)模型来基于输入文本段(诸如用户查询)输出一个或多个文本段。NLG Seq2Seq模型可以接收诸如查询等输入,并且在解码过程中一次一个字地生成多个输出段。也就是说,每个输出段可以包括在整个解码过程中在各种时间步骤生成的多个令牌或单词。在每个解码时间步骤,生成多个预测令牌或预测单词,其中每个预测令牌或预测单词与生成得分相关联。生成得分指示基于输入和先前预测的输出段(也称为解码的部分假设),预测令牌或预测单词是输出段中的下一元素的有条件概率或可能性。解码的部分假设是包括在先前时间步骤生成的先前预测令牌或单词的部分输出段。因此,一旦解码过程已经完成,解码器就可以已经预测一个或多个最多解码的部分假设。然而,在一些示例中,NLG Seq2Seq模型在生成流利的语句方面可以是高效的,但可能缺乏生成包括在库中找到的关键字或赞助商、广告商或其他媒体内容提供商以其他方式感兴趣的关键字的查询的准确性。
在一些示例中,基于Trie的Seq2Seq模型在每个时间步骤生成单词或令牌,其中单词或令牌存在于Trie的路径上。Trie(也称为前缀树)是一种树状数据结构,其具有存储库中的每个关键字的节点。通过以特定方式构造节点,可以通过遍历树的分支路径来从Trie中检索包括一个或多个单词的文本段。因此,在基于Trie的Seq2Seq模型中,所有生成的单词或令牌都被约束到Trie;因此,在Trie由来自与一个或多个赞助商相关联的内容关键字库的关键字组成的情况下,由基于Trie的Seq2Seq模型产生的输出段可以被限制到关键字库。虽然基于Trie的Seq2Seq模型将关键字的生成约束到搜索空间,即,出现在Trie中的那些关键字,但先前的基于Trie的Seq2Seq模型没有利用全局信息,并且因此存在噪声、常见前缀和令牌选择问题。
也就是说,当将Seq2Seq模型约束到Trie时,该模型可以生成Trie中已有的但具有低生成得分的令牌或单词。依赖于这样的具有低生成得分的令牌可能导致Trie中不正确的搜索路径,并且可能导致低效率的结果,其中Seq2Seq模型生成在语义上与用户查询或与一个或多个赞助商相关联的内容关键字库中的关键字不相似的文本段。这种生成的具有低生成得分的令牌可以称为噪声令牌。
先前的基于Trie的Seq2Seq模型的第二问题发生在在Trie中遇到没有未来对象的常见前缀时。例如,在基于Trie的Seq2Seq模型中,常见前缀可以有助于相关关键字;然而,常见前缀的预期后缀可以不存在于Trie中,并且因此期望的关键字段可能不会被生成。简单地从Trie中删除常见前缀并不能解决这个问题,因为这些前缀在期望关键字段中是常见的并且因此需要生成这样的期望关键字段。此外,当若干预测后缀具有类似的高生成得分时,基于Trie的Seq2Seq模型也会遇到令牌选择问题。虽然具有高生成得分的后缀中的每个后缀都可以用于组成流畅的语句,但使用这样的后缀进行关键字扩展可能不会导致期望关键字段,因为先前的基于Trie的Seq2Seq模型没有足够的信息来确定哪个后缀将导致Trie中的期望路径并且从而导致期望关键字段。
根据本公开的示例,通过使用基于Trie的NLG模型来同时预测接下来的若干令牌,与Trie中的未来令牌相关的未来生成得分可以用于在Trie中进行前瞻并且优化搜索空间。也就是说,对于基于Trie的搜索,要由模型生成的下一令牌被约束为存在于Trie中的可能后缀,其中可能后缀是解码的部分假设中的一个或多个令牌的后缀。
更具体地,尽管NLG Seq2Seq模型可以基于单词的生成得分或令牌来预测下一令牌或单词,但本公开的示例将这样的生成得分修改为生成得分和未来令牌生成得分的加权和以优化搜索空间。然后,每个预测的令牌或单词可以根据已修改得分进行排序,并且可以被选择为段或输出中的下一元素。然而,当基于解码的部分假设的未来预测时,可以使用所选择的令牌或单词的原始生成得分。
图1描绘了根据本公开的示例的用于对基于Trie的生成检索模型执行前瞻策略的示例系统100。系统100可以允许用户102与计算设备104交互,该计算设备104在计算设备104的显示器处绘制内容106。所绘制的内容106可以经由网络112从计算设备或服务器114接收,并且可以被显示为例如网页、应用或app的一部分。所绘制的内容106可以允许诸如用户102等用户输入包括例如一个或多个单词、短语、文本段或符号的查询108,并且经由网络112将查询108提供给搜索引擎服务116,其中搜索引擎服务116可以在计算设备或服务器114处运行或者以其他方式由计算设备或服务114托管。计算设备或服务器114可以包括提供分布式或基于云的服务(诸如搜索引擎服务116)的一个或多个计算设备。搜索引擎服务116可以基于查询108向计算设备104提供内容。例如,搜索引擎服务116可以接收查询108,并且标识与查询108匹配或以其他方式类似的内容。在一些示例中,可以利用索引内容的搜索索引来确定与查询108匹配或以其他方式类似的内容结果。搜索引擎服务116然后可以组装结果,并且将组装的结果作为例如内容110提供给计算设备104。内容110可以在计算设备104的显示器处绘制,并且可以包括例如与查询108匹配或以其他方式类似的结果115A、115B、115C。内容110还可以包括受赞助内容134和135(其包括受赞助内容,也称为广告),并且响应于查询108而被绘制在计算设备104的显示器处。
为了确定要响应于查询108而提供的受赞助内容134和/或135,搜索引擎服务116可以包括查询关键字扩展器118;查询关键字扩展器118可以接收查询108并且将查询108扩展为多个扩展文本段128。在一些示例中,受赞助内容134和/或135可以是广告。查询关键字扩展器118可以利用Seq2Seq模型和解码器,Seq2Seq模型采用编码器将查询编码为源序列表示,解码器基于源序列表示和先前预测段(也称为解码的部分假设)提供一个或多个文本段作为有条件似然。多个扩展文本段128可以被提供给受赞助内容服务130,受赞助内容服务130接收多个扩展文本段128并且使用查询匹配服务132来标识与多个扩展文本段128相关联的受赞助内容。例如,查询匹配服务132可以基于多个扩展文本段128和与受赞助内容存储库140中的受赞助内容138相关联的多个关键字136来标识受赞助内容134。多个关键字136可以对应于已经由赞助商放置或以其他方式与赞助商相关联的多个关键字竞价;因此,可以响应于查询108而提供与赞助商相关联的受赞助内容,该赞助商对与多个扩展文本段128中的一个或多个文本段匹配的一个或多个关键字具有最高竞价。因此,受赞助内容服务130可以向搜索引擎服务116提供受赞助内容142或与受赞助内容相关联的位置,使得搜索引擎服务116可以提供受赞助内容142作为对用户输入查询108的响应的一部分。因此,受赞助内容可以作为内容110的一部分来提供,并且可以被绘制到计算设备104的显示器。
在一些示例中,查询关键字扩展器118可以基于词汇表126A、126B来提供或生成多个扩展文本段128,其中词汇表126A和126B可以包括多个文本段。多个文本段可以对应于如Trie 124中布置的关键字段。如前所述,Trie是一种树状数据结构,其具有存储每个关键字的节点。通过以特定方式构造节点,可以通过遍历树的分支路径来从Trie中检索包括一个或多个单词的文本段。包含Trie 124的词汇表125A、126A可以经由网络112被访问;替代地或另外地,包含Trie 124的词汇表126A可以驻留在查询关键字扩展器118中或以其他方式是查询关键字扩展器118的一部分。
图2A至图2E提供了根据本公开的示例的Trie的附加示例。更具体地,图2A描绘了第一Trie 200A的细节。作为非限制性示例,第一Trie 200A可以包括可以与由一个或多个赞助商提供的关键字竞价相关联的关键字或文本段202。例如,文本段可以包括短语“besthotel of tokyo”,当作为查询(诸如查询108)的一部分被生成时,该短语将返回与这样的短语相关联的赞助商的内容,诸如广告。作为另一示例,文本段可以包括短语“texashotels”。当诸如查询108等查询生成“texas hotels”时,特定于赞助商的内容可以被显示,其中赞助商可以具有竞价,或者以其他方式已经提供了一些补偿手段以在查询或与查询相关联的扩展文本段匹配期望文本段时使该内容被显示。
每个文本段202被表示为多个令牌或节点。也就是说,文本段202中的每个单词可以被布置为第一Trie 200A中的有序令牌。作为示例,第一Trie 200A可以包括开始令牌204,该开始令牌204通常标识Trie的开始节点。与单词“the”相关联的下一令牌206可以在开始令牌204之后。由于“the”是一个常用的单词,附加令牌可以被布置为“the”的后缀。例如,“texas”、“best”208和“flight”是令牌“the”的后缀。如第一Trie 200A中进一步描绘的,每个文本段202中的每个单词可以以有序方式存在。也就是说,短语“best hotel oftokyo”可以包括令牌208、212、216和220。在一些示例中,结束节点或叶节点可以包括表示特定文本段或语句的结束的语句结束(例如,<eos>)令牌224。因此,短语或语句可以包括在开始令牌204与叶节点或<eos>令牌224之间的所有令牌。
如图2B所示,例如,关键字236可以添加到已有第一Trie 200A以生成第二Trie200B。因为令牌“best”和“hotel”已经被包括在第一Trie 200A中,所以“in”令牌240和“toronto”令牌244可以被添加到“hotel”令牌212。作为另一示例,关键字252可以被添加到已有第二Trie 200B,以生成第三Trie 200,如图2C所示。由于“best”令牌、“hotel”令牌和“in”令牌已经被包括在第二Trie 200B中,因此令牌“texas”256可以被添加到“in”令牌240。作为另一示例,文本段264可以被添加到已有第三Trie 200C,以生成第四Trie 200,如图2D所示。由于“best”令牌已经被包括在第三Trie 200C中,因此“wine”令牌268可以被添加到“best”令牌。当然,如果需要,<eos>令牌可以被添加以表示文本段的结束。在示例中,文本段可以对应于关键字和/或关键字序列或段。
根据本公开的一些示例,诸如图2E中所示的Trie等Trie可以用于将由Seq2Seq模型在一个或多个时间步骤做出的输出预测约束到Trie内出现的令牌。因此,与输入查询(诸如查询108)最相似的文本段可以由Seq2Seq模型基于Trie的词汇表生成。
图3描绘了根据本公开的示例的与Seq2Seq模型302相关联的解码过程300的附加细节。Seq2Seq模型是一种基于编码器解码器的自然语言生成模型,该模型将序列的输入映射到输出序列。Seq2Seq模型将所接收的序列转换为输出序列。Seq2Seq模型可以使用递归神经网络(RNN)、长短期记忆(LSTM)神经网络、门控递归单元(GRU)神经网络或其他机器学习结构中的一种或多种。Seq2Seq模型的主要组件包括编码器308和解码器312。编码器308将输入到编码器的每个项目转换为包含该项目及其上下文的源序列表示318,其中每个项目的上下文可以是先前步骤的输出,并且可以对应于解码的部分假设。解码器312通常反转该过程,以使用先前输出或解码的部分假设作为每个步骤的输入上下文,将源序列表示318变成输出项目。Seq2Seq模型302可以被联合训练以在给定输入序列的情况下使目标序列的条件概率最大化。
可以对应于查询108的输入序列304可以由Seq2Seq模型302的编码器308接收;输入序列304可以在每个时间步骤316、320被输入一个字以生成源序列表示318。在示例中,编码器308可以包括具有多头自注意机制的多层Transformer编码器,诸如Yan等人在出版物“ProphetNet:Predicting Future N-gram for Sequence-to-Sequence Pre-training”中讨论的编码器,该出版物通过引用整体并入本文,用于其教导的所有内容和用于所有目的。编码器308可以将输入序列304编码为源序列表示318。编码的源序列表示318然后可以被提供给解码器312。解码器312可以包括LSTM+Tree模型,如Chen等人在出版物“An end-to-endgenerative retrieval method for sponsored search engine decoding efficientlyinto a closed target domain”中所建议的,该出版物通过引用整体并入本文,用于其所教导的所有内容和用于所有目的。在一些示例中,解码器312模型可以实现复制机制以强调出现在输入序列304中的那些单词的生成得分。也就是说,输出单词通常与输入查询有一些重叠,并且复制机制允许模型在合成答案时直接从输入序列304中选择令牌。
根据本公开的示例,利用输入序列304和编码器308生成的源序列表示318,解码器312可以通过针对每个下一预测单词和针对一个或多个前瞻或未来预测一次预测一个令牌或单词来生成输出序列;每个预测可以包括针对每个相应位置在输出序列中每个令牌的所有可能单词的概率分布(例如,下一预测、未来预测)。换言之,对于解码器312正在预测的每个单词,它将生成概率阵列,该概率阵列指示特定单词成为下一输出令牌的可能性有多大和/或特定单词成为未来输出令牌的可能性有多大。这些概率中的每个都可以被认为是一个生成得分。
如前所述,预测的下一令牌和预测的未来令牌可以被约束到Trie中的单词,并且更具体地,被约束到沿着Trie的路径。因此,解码器312可以确定与Trie中的下一令牌相对应的Trie中的令牌以及Trie中的一个或多个未来令牌的生成得分。例如,假设“the”317在时间步骤316被选择,“best”321在第三时间步骤322被选择,并且“hotel”323在第三时间步骤322被选择,则预测令牌“in”和“of”的生成得分可以在时间步骤324被生成,其中预测令牌“in”和“of”对应于沿着Trie路径出现的解码的部分假设(例如,“the best hotel”)中的最后预测单词(例如,“hotel”323)的后缀。根据本公开的示例,解码器312还可以为未来令牌“toronto”、“texas”和“tokyo”生成生成得分作为前瞻预测,其中前瞻预测可以影响预测令牌“in”或“of”作为输出序列中的下一单词的选择。
根据本公开的示例,预测令牌“in”的经修改的生成得分可以基于在给定先前预测段“the best hotel”的情况下“in”是输出序列中的下一单词的可能性和由Trie提供的下一未来令牌的最大可能性(例如,在给定先前预测段“the best hotel”的情况下“toronto”是输出序列中的下一单词的可能性或者在给定先前预测段“the best hotel”的情况下“texas”是输出序列中的下一单词的可能性中的最大值)。“Toronto”和“texas”是下一后缀节点(例如,在时间步骤7 326),该后缀节点对应于当预测令牌“in”被选择时通过Trie的“the best hotel”路线。令牌“of”的生成得分可以基于先前预测分段“the best hotel”和由Trie提供的(多个)下一未来令牌的最大可能性(例如,在给定先前预测段“the besthotel”的情况下“tokyo”是输出序列中的下一单词的可能性的最大值)。“Tokyo”是下一后缀节点(例如,在时间步骤7 326),该后缀节点对应于当预测令牌“of”被选择时通过Trie的“the best hotel”路线。虽然图3描绘了在时间步骤326的单个前瞻,但也考虑了附加前瞻时间步骤。
图4A至图4E提供了根据本公开的示例的针对与Seq2Seq模型相关联的解码过程的附加细节。编码器402可以与先前讨论的编码器308相同或相似。编码器402可以接收输入序列401,并且将输入序列编码为源序列表示h 404。解码器406可以与先前讨论的解码器312相同或相似。根据本公开的示例,下一预测令牌的生成得分可以通过基于先前预测段前瞻一个或多个未来令牌的得分来修改。如前所述,可以减少与预测相关联的问题,其中输入包括常见前缀但不返回期望输出,或者其中输入可以包括噪声或在目标序列中包括拼写错误。
图4A至图4E中提供的解码示例使用与预测令牌的后缀相关的信息来修改预测令牌的生成得分,其中预测令牌和未来令牌被约束为Trie中的令牌。解码器406可以前瞻l个步骤,其中对于n-gram生成模型,l可以等于n-1。因此,当确定对输出序列中的下一输出的预测时,可以同时为下一预测令牌和n-1个未来令牌生成生成得分;因此,下一第一预测令牌和n-1个未来令牌可以用作该预测的前瞻。残差权重λ可以被设置以控制下一令牌的生成得分及其前瞻得分的权重。
如图4A所示,解码器406可以同时为待预测令牌[tbd]408和未来待预测令牌[tbd]410生成生成得分。待预测令牌[tbd]408的生成得分可以称为g1,并且未来待预测令牌[tbd]410的生成得分可以称为g2。先前解码序列可以称为seq,如图4A所示,其可以包括<start>或语句开始<bos>令牌412。seq的第一后缀可以称为s1,并且对于s1中的每个节点ρ1,ρ1的一个前瞻步骤后缀记为s2。根据等式1,修改下一第一令牌ρ1的生成得分,以得到经修改的生成得分。
g1[ρ1]=λ×g1[ρ1]+(1-λ)×max(g2[s2]) 等式1
因此,如图4A所示,解码器406可以为下一预测令牌414生成生成得分g1[″the″]并且为下一预测令牌416生成生成得分g1[″a″],其中预测令牌414和416被约束到Trie,诸如图2E的Trie。也就是说,生成得分g1[″the″]可以等于在给定输入序列401和部分解码的输出序列的情况下令牌414“the”是输出序列中的下一令牌的概率,如图4A所示,其可以等于<start>或语句开始<bos>令牌或标识。生成得分g1[″a″]可以等于在给定输入序列401和部分解码的输出序列的情况下令牌416“a”是输出序列中的下一令牌的概率,如图4A所示,其可以等于<start>或语句开始<bos>令牌或标识。此外,解码器406可以为未来令牌418生成生成得分g2[″texas″],为未来令牌420生成生成得分g2[″best″],并且为未来令牌422生成生成得分g2[″flight″],其中令牌418、420和422是预测令牌414的后缀,如Trie所示。生成得分g2[″texas″]可以等于在给定输入序列401和部分解码的输出序列的情况下令牌418“texas”是输出序列中的下一令牌的概率,如图4A所示,其可以等于<start>或语句开始<bos>令牌或标识。类似地,生成得分g2[″best″]和g2[″flight″]可以等于在给定输入序列401和部分解码的输出序列的情况下相应令牌420“best”或422“flight”是输出序列中的下一令牌的概率,如图4A所示,其可以等于<start>或语句开始<bos>令牌或标识。如果基于预测令牌416存在后缀,则解码器406将为这样的后缀生成生成得分。
根据本公开的示例,解码器406可以基于预测令牌的生成得分g1和未来令牌的最大生成得分g2来为预测令牌生成经修改的生成得分。例如,令牌414的经修改的生成得分可以根据下式生成:如附图标记424所示,其中经修改的生成得分/>等于生成得分g1[″the″]·λ加上令牌418、420和422的最大生成得分g2乘以(1-λ),其中残差权重λ可以被设置以控制预测令牌的生成得分及其前瞻得分的权重。经修改的生成得分/>可以与令牌414相关联。令牌416的经修改的生成得分可以以类似方式生成。因此,选择下一预测令牌作为输出序列中的下一令牌可以基于经修改的生成得分/>如图4A所示,在令牌414与416之间,令牌414可以具有最高经修改的生成得分/>
继续图4A的示例,图4B描绘了后续时间步骤,其中解码器406可以同时为待预测令牌[tbd]426和未来待预测令牌[tbd]430生成生成得分。待预测令牌[tbd]426的生成得分可以称为g1,并且未来待预测令牌[tbd]430的生成得分可以称为g2。先前解码序列可以称为seq,如图4B所示,其可以包括序列“<start>the”或“<bos>the”。
因此,如图4B所示,解码器406可以为下一预测令牌420生成生成得分g1[″best″],为下一预测令牌418生成生成得分g1[″texas],为下一预测令牌422生成生成得分g1[″flight],其中预测令牌420、418和422被约束到Trie,诸如图2E的Trie。也就是说,生成得分g1[″best″]可以等于在给定输入序列401和部分解码的输出序列(如图4B所示,其可以包括“<start>the”)的情况下令牌420“best”是输出序列中的下一令牌的概率。生成得分g1[″texas]可以等于在给定输入序列401和部分解码的输出序列(如图4B所示,其可以包括“<start>the”)的情况下令牌418“texas”是输出序列中的下一令牌的概率。生成得分g1[″flight]可以等于在给定输入序列401和部分解码的输出序列(如图4B所示,其可以包括“<start>the”)的情况下令牌422“flight”是输出序列中的下一令牌的概率。
此外,解码器406可以为未来令牌432生成生成得分g2[″wine″],为未来令牌434生成生成得分g2[″hotel″],为未来令牌436生成生成得分g2[″hotels″],为未来令牌438生成生成分别g2[″cars″],并且为可以是语句结束标识符的未来令牌440生成生成得分g2[eos],其中令牌432和434是预测令牌420的后缀,令牌436和438是预测令牌418的后缀,并且令牌440是预测令牌422的后缀,如Trie所示。生成得分g2[″wine″]、gx[″hotel″]、g2[″hotels″]、g2[″cars″]和g2[″flight]可以等于在给定输入序列401和部分解码的输出序列(如图4B所示,其可以包括“<start>the”)的情况下相应令牌432、434、436、438或440是输出序列中的下一令牌的概率。
如先前关于图4A所述,解码器406可以基于预测令牌的生成得分g1和未来令牌的最大生成得分g2来为预测令牌生成经修改的生成得分。例如,令牌420的经修改的生成得分可以根据下式生成其中经修改的生成得分/>等于生成得分g1[″best″]·λ加上令牌432和434中的最大生成得分g2乘以(1-λ),其中残差权重λ可以被设置以控制预测令牌的生成得分及其前瞻得分的权重。经修改的生成得分/>可以与令牌420相关联。类似地,令牌418和422的经修改的生成得分可以以类似方式生成。因此,选择下一预测令牌作为输出序列中的下一令牌可以基于经修改的生成得分/>如图4B所示,在令牌418、420与422之间,令牌420可以具有最高经修改的生成得分/>
继续图4A和图4B的示例,图4C描绘了后续时间步骤,其中解码器406可以同时为待预测令牌[tbd]442和未来待预测令牌[tbd]444生成生成得分。待预测令牌[tbd]442的生成得分可以称为g1,并且未来待预测令牌[tbd]444的生成得分可以称为g2。先前解码序列可以称为seq,如图4C所示,其可以包括序列“<start>“the best”。
因此,如图4C所示,解码器406可以为下一预测令牌432生成生成得分g1[″hotel″],为下一预测令牌434生成生成得分g1[″wine],其中预测令牌432和434被约束到Trie作为沿着Trie路径的下一后缀。
此外,解码器406可以为432的前瞻令牌生成生成得分g2[″in″]和生成得分g2[″of″]。解码器可以为前瞻令牌434生成生成得分g2[eos]。如先前关于图4A和图4B所述,解码器406可以基于预测令牌的生成得分g1和未来令牌的最大生成得分g2来为预测令牌生成经修改的生成得分。例如,令牌432的经修改的生成得分可以根据下式生成:
其中经修改的生成得分/>等于生成得分g1[″hotel″]·λ加上生成得分g2[“in”]和g2[“of”]中的最大值乘以(1-λ),其中残差权重λ可以被设置以控制预测令牌的生成得分及其前瞻得分的权重。经修改的生成得分/>可以与令牌432相关联。类似地,令牌434的经修改的生成得分可以以类似方式生成。因此,选择下一预测令牌作为输出序列中的下一令牌可以基于经修改的生成得分/>如图4C所示,在令牌432与434之间,令牌432可以具有最高经修改的生成得分/>
继续图4A至图4C的示例,图4D描绘了后续时间步骤,其中解码器406可以同时为待预测令牌[tbd]452和未来待预测令牌[tbd]454生成生成得分。待预测令牌[tbd]452的生成得分可以称为g1,并且未来待预测令牌[tbd]454的生成得分可以称为g2。先前解码序列可以称为seq,如图4D所示,其可以包括序列“<start>“the best hotel”。
因此,如图4D所示,解码器406可以为下一预测令牌446生成生成得分g1[″in″],为下一预测令牌448生成生成得分g1[″of″],其中预测令牌446和448被约束到Trie作为沿着Trie路径的下一后缀。
此外,解码器406可以为令牌446的前瞻令牌生成生成得分g2[″tokyo″]和生成得分g2[″texas″]。解码器可以为前瞻令牌448生成生成得分g2[″tokyo″]。如先前关于图4A至图4C所述,解码器406可以基于预测令牌的生成得分g1和未来令牌的最大生成得分g2来为预测令牌生成经修改的生成得分。例如,令牌446的经修改的生成得分可以根据下式生成:
其中经修改的生成得分/>等于生成得分g1[″in″]·λ加上生成得分g2[“toronto”]和g2[″texas″]中的最大值乘以(1-λ),其中残差权重λ可以被设置以控制预测令牌的生成得分及其前瞻得分的权重。经修改的生成得分/>可以与令牌446相关联。
类似地,令牌448的经修改的生成得分可以以类似方式生成。因此,选择下一预测令牌作为输出序列中的下一令牌可以基于经修改的生成得分如图4D所示,在令牌446与448之间,令牌446可以具有最高经修改的生成得分/>当为“thebest hotel”生成下一令牌时,“in”和“of”是根据Trie的后缀令牌。尽管“in”和“of”通常都是生成关键字的良好后缀,但“of”没有具有高生成得分的未来令牌,而“in”的未来令牌覆盖期望令牌“texas”,该令牌为“texas”提供高生成得分,为“in”提供更高的经修改的生成得分。因此生成“in”。
继续图4A至图4D的示例,图4E描绘了后续时间步骤,其中解码器406可以同时为待预测令牌[tbd]460和未来待预测令牌[tbd]462生成生成得分。待预测令牌[tbd]460的生成得分可以称为g1,并且未来待预测令牌[tbd]462的生成得分可以称为g2。先前解码序列可以称为seq,如图4E所示,其可以包括序列“<start>“the best hotel in”。
因此,如图4D所示,解码器406可以为下一预测令牌458生成生成得分g1[″texas″],为下一预测令牌456生成生成得分g1[″toronto″],其中预测令牌458和456被约束到Trie作为沿着Trie路径的下一后缀。
此外,解码器406可以为令牌的相应前瞻令牌生成生成得分g2[eos]。如先前关于图4A至图4D所述,解码器406可以基于预测令牌的生成得分g1和未来令牌的最大生成得分g2来为预测令牌生成经修改的生成得分。例如,令牌458的经修改的生成得分可以根据下式生成:
类似地,令牌456的经修改的生成得分可以以类似方式生成。因此,选择下一预测令牌作为输出序列中的下一令牌可以基于经修改的生成得分如图4E所示,在令牌458与456之间,令牌458可以具有最高经修改的生成得分/>此外,该令牌458覆盖输入序列401中提供的期望令牌“texas”。由于基于包括“the best hotel intexas”的路径的Trie中的下一后缀是语句结束标识符,解码器406可以输出解码序列“thebest hotel in texas”作为可能的候选序列。
在一些示例中,集束搜索的大小(例如,集束宽度)可以确定有多少具有最大经修改的生成得分的结果可以被传递给父节点和/或在任何一个时间可以遍历多少Trie路径。例如,集束宽度等于2的集束搜索可以允许令牌418和令牌420两者被选择作为解码序列的可能添加。替代地或另外地,仅与最高经修改的生成得分相关联的令牌可以被选择作为解码序列的添加。在某些示例中,可能会在显式地前瞻之前考虑高置信度后缀。例如,如果不存在高置信度的前瞻令牌,则可以向后传递低的未来得分。相反,如果后缀中存在任何噪声令牌具有高置信度前瞻令牌,则另外的高置信度得分将在“噪声”(例如,低生成得分的令牌)上被传递,以为正在预测的令牌提供增强的经修改的生成得分。
经修改的生成得分的使用可以用于对最佳序列进行排序和选择。在将得分用于使用集束搜索技术来计算解码序列得分的情况下,结果可能与不采用前瞻策略的生成模型不一致。也就是说,前瞻策略修改输出序列的得分,这可能导致误差累积。因此,经修改的生成得分/>可以用于对具有最高得分的最佳序列进行排序和选择,但是生成得分g1(例如,不采用前瞻策略的原始生成得分)可以被存储并且用于选择下一预测令牌。
图5描绘了根据本公开的示例的与Seq2Seq模型504相关联的解码过程500的附加细节。在示例中,图5与图3的不同之处在于,Seq2Seq模型502的解码器可以提供预测令牌510以及两个前瞻令牌512和514的生成得分,其中第一前瞻令牌512是预测令牌510的后缀,并且第二前瞻令牌514是第一前瞻令牌512的后缀。如前所述,预测的下一令牌和预测的未来令牌可以被约束到Trie中的单词,并且更具体地,被约束到沿着Trie的路径的单词。
图6描绘了根据本公开的示例的针对与图5的Seq2Seq模型相关联的解码过程的附加细节。编码器602可以与先前讨论的编码器308相同或相似。编码器602可以接收输入序列601,并且将输入序列编码为源序列表示h 604。解码器606可以与先前讨论的解码器312相同或相似。根据本公开的示例,下一预测令牌的生成得分可以通过基于先前预测段前瞻一个或多个未来令牌的得分来修改。如图6A所示,解码器606可以同时为待预测令牌[tbd]608、未来待预测令牌[tbd]610和另一未来待预测令牌612生成生成得分,其中未来待预测令牌612是待预测令牌[tbd]610的后缀。待预测令牌[tbd]608的生成得分可以称为g1,未来待预测令牌[tbd]610的生成得分可以称为g2,并且未来待预测令牌的生成得分612可以称为g3。因此,令牌614的示例经修改的生成得分可以是:
由于图2A至图4E提供了一个示例,其中要添加到输出序列的所选择的单词基于预测令牌和预测令牌的后缀,而图5和图6提供了一个示例,其中要添加到输出序列的所选择的单词基于预测令牌、预测令牌的后缀和预测令牌的后缀的后缀,可以设想,可以利用任何数目的未来前瞻令牌来选择输出序列中的下一单词。表1中提供了一种示例递归算法,该递归算法用于基于输入序列生成令牌并且对其进行排名,从而生成文本段。
表1
图7描绘了根据本公开的示例的搜索引擎服务116、受赞助内容服务130和Trie服务器748的附加细节。如前所述,搜索引擎服务116可以基于所接收的查询(诸如查询702)向计算设备提供内容。例如,搜索引擎服务116可以在搜索服务728处接收查询702,并且使用搜索服务728标识与查询702匹配或以其他方式类似的内容。在一些示例中,可以利用可以位于内容储存库732中的索引内容的搜索索引来确定与查询702匹配或以其他方式类似的内容。搜索引擎服务116然后可以组装结果并且将组装的结果提供给计算设备。内容还可以包括响应于查询702而在计算设备的显示器处绘制的一个或多个广告。
为了标识要被提供作为绘制给显示器的内容的一部分的受赞助内容,搜索引擎服务116可以包括查询关键字扩展器118,查询关键字扩展器118接收查询702并且将查询702扩展为多个上下文感知文本段。查询关键字扩展器118可以利用Seq2Seq模型,该Seq2Seq模型采用编码器308和解码器312,编码器308将查询编码为源序列表示,解码器312基于源序列表示和先前预测段(诸如单词)作为输入来提供一个或多个文本段作为有条件似然。如前所述,编码器308可以是多层编码器,并且解码器可以是多层解码器。多个扩展文本段可以被提供给受赞助内容服务130,受赞助内容服务130接收多个扩展文本段并且使用查询匹配服务132来标识与多个扩展文本段相关联的受赞助内容。例如,查询匹配服务可以基于多个扩展文本段和与受赞助内容存储库140中的受赞助内容138相关联的多个关键字136来确定要显示的受赞助内容。在一些示例中,受赞助内容可以是广告。多个关键字136可以对应于已经由赞助商放置或以其他方式与赞助商相关联的多个关键字竞价;因此,可以响应于查询702而提供与赞助商相关联的受赞助内容,该赞助商对与多个扩展文本段中的一个或多个文本段匹配的一个或多个关键字具有最高竞价。因此,受赞助内容服务130可以向搜索引擎服务116提供受赞助内容,使得搜索引擎服务116提供受赞助内容作为对用户输入查询702的响应的一部分。因此,除了其他内容之外,还可以提供受赞助内容,并且可以将受赞助内容绘制给计算设备的显示器。
在一些示例中,查询关键字扩展器118可以基于词汇表来提供或生成多个扩展文本段,其中词汇表可以包括多个文本段。多个文本段可以对应于具有关键字竞价的关键字,并且可以被布置为如前所述的Trie。Trie可以驻留在Trie存储库736中,并且可以使用Trie生成器740来生成、改变或修改。也可以使用Trie遍历引擎744来遍历Trie。Trie服务器748可以提供对Trie数据结构的生成和遍历的访问。
图8示出了用于接收与查询竞价相关联的关键字段并且将所接收的关键字段添加到Trie的示例方法800的概述。方法800的步骤的一般顺序如图8所示。通常,方法800在802处开始并且在824处结束。方法800可以包括更多或更少的步骤,或者可以与图8所示的步骤不同地布置步骤的顺序。方法800可以作为由计算机系统执行并且编码或存储在计算机可读介质上的一组计算机可执行指令来执行。此外,方法800可以由与处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、片上系统(SOC)、图形处理单元(GPU)或其他硬件设备相关联的门或电路来执行。在下文中,将参考结合图1至图7描述的系统、组件、模块、软件、数据结构、用户界面等来解释方法800。
方法800在操作804处开始,在操作804,可以接收关键字段要被添加到Trie的指示。例如,赞助商可以对一个或多个关键字进行竞价。一旦竞价被建立了,一个或多个关键字就可以被添加到Trie。因此,方法800可以前进到808,在808,可以标识将接收关键字或关键字段的Trie。在一些示例中,Trie可以包括来自受赞助搜索提供商的所有关键字段的词汇表。例如,诸如搜索引擎等受赞助搜索提供商可以将所有关键字和/或关键字段存储为单个Trie中的词汇表。替代地或另外地,受赞助搜索提供商可以基于搜索类别或分组来对Trie进行分段。在示例中,Trie可以驻留在Trie存储库376中。方法800可以前进到812,在812,可以接收与查询竞价相关联的(多个)关键字。更具体地,例如,在步骤816,Trie服务器364可以接收(多个)关键字并且使用Trie生成器368将(多个)关键字添加到已有Trie。因此,在步骤820,可以将具有所接收的(多个)关键字的Trie存储在诸如Trie存储库736等Trie储存库中。一旦被存储,方法800就可以在824结束。
图9示出了用于基于查询来标识要在计算设备上显示的受赞助内容的示例方法900的概述。方法900的步骤的一般顺序如图9所示。通常,方法900在904处开始并且在932处结束。方法900可以包括更多或更少的步骤,或者可以与图9所示的步骤不同地布置步骤的顺序。方法900可以作为由计算机系统执行并且编码或存储在计算机可读介质上的一组计算机可执行指令来执行。此外,方法900可以由与处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、片上系统(SOC)、图形处理单元(GPU)或其他硬件设备相关联的门或电路来执行。在下文中,将参考结合图1至图8描述的系统、组件、模块、软件、数据结构、用户界面等来解释方法900。
方法900在操作904处开始,并且前进到操作908,在操作908,接收与查询相关联的文本段。该方法可以进行到912以标识包含词汇表的Trie,该词汇表用于扩展或以其他方式生成与查询相关联的多个文本段。在示例中,多个文本段可以被认为是与查询相关联的文本段的已扩展列表。该方法可以进行到916,在916,根据本文中描述的示例生成附加文本段。例如,查询关键字扩展器118可以使用编码器308对所接收的文本段进行编码,并且将编码的文本段提供给解码器312。解码器312可以为所标识的Trie中的一个或多个节点生成得分。得分可以基于先前描述的和/或关于图10描述的前瞻预测方法。一旦多个文本段被生成,方法900就可以进行到操作920,在操作920,可以向诸如受赞助内容服务130等受赞助内容服务发送所生成的文本段中的一个或多个。例如,受赞助内容服务130可以将一个或多个生成的文本段与受赞助内容和/或与受赞助内容相关联的关键字相匹配,并且向搜索引擎服务116发送受赞助内容。方法900可以前进到928,在928,搜索引擎服务116可以向计算设备提供添加,从而使受赞助内容被绘制到与计算设备相关联的显示器。方法900然后可以在932处结束。
图10示出了用于基于输入序列生成输出序列的示例方法1000的概述。方法1000的步骤的一般顺序如图10所示。通常,方法1000在1004处开始并且在1036处结束。方法1000可以包括更多或更少的步骤,或者可以与图10所示的步骤不同地布置步骤的顺序。方法1000可以作为由计算机系统执行并且编码或存储在计算机可读介质上的一组计算机可执行指令来执行。此外,方法1000可以通过与处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、片上系统(SOC)、图形处理单元(GPU)或其他硬件设备相关联的门或电路来执行。在下文中,将参考结合图1至图9描述的系统、组件、模块、软件、数据结构、用户界面等来解释方法1000。
方法1000在操作1004处开始,并且前进到操作1008,在操作1008,可以标识基于所接收的解码的部分假设的预测令牌。更具体地,解码的部分假设可以对应于已经由解码器(诸如解码器312)基于由编码器(诸如编码器308)编码的输入序列而生成的中间输出序列。因此,解码器可以提供对多个下一预测令牌的预测。在1012,对于驻留在Trie中的每个预测令牌,解码器可以为预测令牌生成生成得分。在一些情况下,解码器可以在最初提供受Trie约束的下一预测令牌的预测时生成生成得分。在其他示例中,解码器可以首先查看Trie以确定下一预测令牌,并且基于所标识的预测令牌生成生成得分。
方法1000可以前进到1016,在1016,标识预测令牌的前瞻后缀,使得可以在1020处为所标识的前瞻后缀生成生成得分。在一些情况下,解码器可以在最初提供受Trie约束的下一预测令牌和前瞻后缀的预测时生成生成得分。在其他示例中,解码器可以首先查看Trie以确定下一预测令牌和前瞻令牌,并且基于所标识的预测令牌和前瞻令牌来生成生成得分。方法1000可以前进到1024,在1024,可以为预测令牌生成经修改的生成得分。如先前关于图3至图6所讨论的,解码器可以基于预测令牌的生成得分g1和未来令牌的最大生成得分g2来为预测令牌生成经修改的生成得分。方法1000然后可以前进到1028,由此可以选择具有最大经修改的生成得分的一个或多个预测令牌。在利用贪婪搜索的一些示例中,仅选择具有最大经修改的生成得分的预测令牌。在可以利用集束搜索的示例中,可以选择具有最大经修改的生成得分的前x个预测令牌,其中x等于集束搜索的集束宽度。因此,方法1000可以前进到1032,在1032,将(多个)所选择的预测令牌添加到部分解码的序列。方法1000可以在1008处重复,这取决于例如Trie的路径长度或最大文本段长度。例如,在附加令牌在Trie路径中的情况下,方法1000可以前进到1008,以在部分解码的序列中生成下一段或字。在遇到作为预测令牌或作为前瞻后缀的语句结尾的情况下,方法1000可以在1036处结束。
图11至图13和相关描述提供了对可以在其中实践本公开的各方面的各种操作环境的讨论。然而,关于图11至图13所示出和讨论的设备和系统是用于示例和说明的目的,而不是限制可以用于实践本文中描述的本公开的各方面的大量计算设备配置。
图11是示出可以用于实践本公开的各方面的计算设备1100的物理组件(例如,硬件)的框图。下面描述的计算设备组件可以适合于上面描述的计算和/或处理设备。在基本配置中,计算设备1100可以包括至少一个处理单元1102和系统存储器1104。根据计算设备的配置和类型,系统存储器1104可以包括但不限于易失性存储装置(例如,随机存取存储器(RAM))、非易失性存储装置(例如,只读存储器(ROM))、闪存、或这样的存储器的任何组合。
系统存储器1104可以包括操作系统1105和适合于运行软件应用1120的一个或多个程序模块1106,诸如本文中描述的系统所支持的一个或多个组件。例如,系统存储器1104可以包括查询关键字扩展器1123、编码器1125、解码器1127、受赞助内容服务1135、查询匹配服务1133、Trie生成器1129和Trie遍历引擎1131。查询关键字扩展器1123可以与查询关键字扩展器118相同或相似。编码器1125可以与先前描述的编码器308相同或相似。解码器1127可以与先前描述的解码器312相同或相似。受赞助内容服务1135可以与先前描述的受赞助内容服务130相同或相似。查询匹配服务1133可以与先前描述的查询匹配服务132相同或相似。Trie生成器1129可以与先前描述的Trie生成器740相同或相似。Trie遍历引擎可以与先前描述的Trie遍历引擎1131相同或相似。例如,操作系统1105可以适合于控制计算设备1100的操作。
此外,本公开的实施例可以结合图形库、其他操作系统或任何其他应用程序来实践,并且不限于任何特定应用或系统。这一基本配置在图11中由虚线1108内的组件进行说明。计算设备1100可以具有附加特征或功能。例如,计算设备1100还可以包括附加数据存储设备(可移动和/或不可移动),例如磁盘、光盘或磁带。这样的附加存储装置在图11中由可移除存储设备1109和不可移除存储设备1110示出。
如上所述,多个程序模块和数据文件可以存储在系统存储器1104中。当在处理单元1102上执行时,程序模块1106可以执行包括但不限于本文中描述的各方面的过程。根据本公开的各方面而可以使用的其他程序模块可以包括电子邮件和联系人应用、文字处理应用、电子表格应用、数据库应用、幻灯片演示应用、绘图或计算机辅助程序等。
此外,本公开的实施例可以在电路离散电子元件、包含逻辑门的封装或集成电子芯片、利用微处理器的电路中、或者在包含电子元件或微处理器的单个芯片上实践。例如,本公开的实施例可以经由片上系统(SOC)来实践,其中图11所示的每个或多个组件可以集成到单个集成电路上。这样的SOC设备可以包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元和各种应用功能,所有这些都被集成(或“烧录”)到芯片基板上作为单个集成电路。当经由SOC操作时,本文中描述的关于客户端切换协议的能力的功能可以经由与计算设备1100的其他组件集成在单个集成电路(芯片)上的专用逻辑来操作。本公开的实施例还可以使用能够执行逻辑运算(例如,AND、OR和NOT)的其他技术(包括但不限于机械、光学、流体和量子技术)来实践。此外,本公开的实施例可以在通用计算机内或在任何其他电路或系统中实践。
计算设备1100还可以具有一个或多个输入设备1112,诸如键盘、鼠标、笔、声音或语音输入设备、触摸或滑动输入设备等。还可以包括(多个)输出设备1114,诸如显示器、扬声器、打印机等。上述设备是示例,并且可以使用其他设备。计算设备1100可以包括允许与其他计算设备1150通信的一个或多个通信连接1116。合适的通信连接916的示例包括但不限于射频(RF)传输器、接收器和/或收发器电路系统;通用串行总线(USB)、并行和/或串行端口。
本文中使用的术语计算机可读介质可以包括计算机存储介质。计算机存储介质可以包括以用于存储信息的任何方法或技术实现的易失性和非易失性的可移动和不可移动介质,诸如计算机可读指令、数据结构或程序模块。系统存储器1104、可移动存储设备1109和不可移动存储设备1110都是计算机存储介质示例(例如,存储器存储)。计算机存储介质可以包括RAM、ROM、电可擦除只读存储器(EEPROM)、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光存储、磁带盒、磁带、磁盘存储或其他磁存储设备、或者可以用于存储信息并且可以由计算设备1100访问的任何其他制品。任何这样的计算机存储介质都可以是计算设备1100的一部分。计算机存储介质不包括载波或其他传播或调制的数据信号。
通信介质可以由计算机可读指令、数据结构、程序模块、或者调制数据信号(诸如载波或其他传输机制)中的其他数据来实现,并且包括任何信息传递介质。术语“调制数据信号”可以描述具有一个或多个特性的信号,该特性以在信号中对信息进行编码的方式进行设置或改变。作为示例而非限制,通信介质可以包括诸如有线网络或直接有线连接等有线介质、以及诸如声学、射频(RF)、红外和其他无线介质等无线介质。
图12A至图12B示出了可以用于实践本公开的实施例的移动计算设备1200,例如,移动电话、智能电话、可穿戴计算机(诸如智能手表)、平板电脑、膝上型电脑等。在某些方面,客户端可以是移动计算设备。参考图12A,示出了用于实现这些方面的移动计算设备1200的一个方面。在基本配置中,移动计算设备1200是既具有输入元件又具有输出元件的手持式计算机。移动计算设备1200通常包括显示器1205和一个或多个输入按钮1210,输入按钮1210允许用户将信息输入到移动计算设备1200中。移动计算设备1200的显示器1205也可以用作输入设备(例如,触摸屏显示器)。
如果包括,则可选的侧面输入元件1215允许另外的用户输入。侧面输入元件1215可以是旋转开关、按钮或任何其他类型的手动输入元件。在替代方面,移动计算设备1200可以并入更多或更少的输入元件。例如,在一些实施例中,显示器1205可以不是触摸屏。
在又一替代实施例中,移动计算设备1200是便携式电话系统,诸如蜂窝电话。移动计算设备1200还可以包括可选的小键盘1235。可选的小键盘1235可以是物理键盘或在触摸屏显示器上生成的“软”键盘。
在各种实施例中,输出元件包括用于示出图形用户界面(GUI)的显示器1205、视觉指示器1220(例如,发光二极管)和/或音频换能器1225(例如,扬声器)。在一些方面,移动计算设备1200并入用于向用户提供触觉反馈的振动换能器。在又一方面,移动计算设备1200并入用于向外部设备发送信号或从外部设备接收信号的输入和/或输出端口,诸如音频输入(例如,麦克风插孔)、音频输出(例如,耳机插孔)和视频输出(例如,HDMI端口)。
图12B是示出移动计算设备的一个方面的架构的框图。也就是说,移动计算设备1200可以并入系统(例如,架构)1202以实现一些方面。在一个实施例中,系统1202被实现为能够运行一个或多个应用(例如,浏览器、电子邮件、日历、联系人管理器、消息客户端、游戏和媒体客户端/播放器)的“智能手机”。在一些方面,系统1202被集成为计算设备,诸如集成的个人数字助理(PDA)和无线电话。
一个或多个应用1266可以被加载到存储器1262中,并且在操作系统1264上运行或与操作系统1266相关联地运行。应用程序的示例包括电话拨号程序、电子邮件程序、个人信息管理(PIM)程序、文字处理程序、电子表格程序、互联网浏览器程序、消息传递程序等。系统1202还包括在存储器1262内的非易失性存储区域1268。非易失性存储区域1268可以用于存储在系统1202断电时不应当丢失的持久信息。应用1266可以使用信息并且将信息存储在非易失性存储区域1268中,诸如电子邮件或由电子邮件应用使用的其他消息等。同步应用(未示出)也驻留在系统1202上,并且被编程为与驻留在主计算机上的对应同步应用交互,以保持存储在非易失性存储区域1268中的信息与存储在主计算机处的对应信息同步。应当理解,其他应用可以加载到存储器1262中,并且在本文中描述的移动计算设备1200上运行(例如,搜索引擎、提取器模块、相关性排名模块、答案评分模块等)。
系统1202具有电源1270,电源1270可以被实现为一个或多个电池。电源1270还可以包括对电池进行补充或再充电的外部电源,诸如AC适配器或供电对接支架。
系统1202还可以包括执行传输和接收射频通信的功能的无线电接口层1272。无线电接口层1272经由通信运营商或服务提供商促进系统1202与“外部世界”之间的无线连接。去往和来自无线电接口层1272的传输是在操作系统1264的控制下进行的。换言之,由无线电接口层1272接收的通信可以经由操作系统1264传播到应用1266,反之亦然。
视觉指示器1220可以用于提供视觉通知,和/或音频接口1274可以用于经由音频换能器1225产生可听通知。在所示实施例中,视觉指示器1220是发光二极管(LED),并且音频换能器1225是扬声器。这些设备可以直接耦合到电源1270,使得当被激活时,它们可以在由通知机制规定的持续时间内保持开启,即使处理器1260和其他组件可能为了节省电池功率而关闭。LED可以被编程为无限期地保持开启,直到用户采取行动来指示设备的通电状态。音频接口1274用于向用户提供可听信号以及从用户接收可听信号。例如,除了耦合到音频换能器1225之外,音频接口1274还可以耦合到麦克风以接收可听输入,以促进电话交谈。根据本公开的实施例,麦克风还可以用作音频传感器,以促进对通知的控制,如下所述。系统1202还可以包括视频接口1276,视频接口1276使得车载相机1230的操作能够记录静止图像、视频流等。
实现系统1202的移动计算设备1200可以具有附加特征或功能。例如,移动计算设备1200还可以包括附加数据存储设备(可移动和/或不可移动的),诸如磁盘、光盘或磁带。这样的附加存储在图12B中由非易失性存储区域1268示出。
由移动计算设备1200生成或捕获并且经由系统1202存储的数据/信息可以如上所述本地存储在移动计算设备1200上,或者数据可以存储在任何数目的存储介质上,该存储介质可以由设备经由无线电接口层1272或者经由移动计算设备1200与与移动计算设备1200相关联的单独计算设备(例如,诸如互联网等分布式计算网络中的服务器计算机)之间的有线连接来访问。应当理解,这样的数据/信息可以经由移动计算设备1200经由无线电接口层1272或经由分布式计算网络来访问。类似地,根据众所周知的数据/信息传输和存储手段,包括电子邮件和协作数据/信息共享系统,这样的数据/信息可以容易地在计算设备之间传输以供存储和使用。
图13示出了用于处理在计算系统处从远程源(诸如如上所述的个人计算机1304、平板计算设备1306或移动计算设备1308)接收的数据的系统的架构的一个方面。服务器设备1310处的内容可以存储在不同通信信道或其他存储类型中。例如,各种文档可以使用目录服务1322、门户网站1324、邮箱服务1326、即时消息传递存储1328或社交网站1330来存储。
如上所述,前述程序模块1106或软件应用1107中的一个或多个可以由服务器设备1310和/或个人计算机1304、平板计算设备1306或移动计算设备1308采用。例如,服务器设备1310可以包括查询关键字扩展器1323、编码器1325、解码器1327、受赞助内容服务1335、查询匹配服务1333、Trie生成器1329和Trie遍历引擎1331。查询关键字扩展器1323可以与查询关键字扩展器118相同或相似。编码器1325可以与先前描述的编码器308相同或相似。解码器1327可以与先前描述的解码器312相同或相似。受赞助内容服务1335可以与先前描述的受赞助内容服务130相同或相似。查询匹配服务1333可以与先前描述的查询匹配服务132相同或相似。Trie生成器1329可以与先前描述的Trie生成器740相同或相似。Trie遍历引擎可以与先前描述的Trie遍历引擎1331相同或相似。
服务器设备1310可以通过网络1315向诸如个人计算机1304、平板计算机设备1306和/或移动计算设备1308(例如,智能电话)等客户端计算设备提供数据、以及从该客户端计算设备提供数据。例如,上述计算机系统可以体现在个人计算机1304、平板计算设备1306和/或移动计算设备1308(例如,智能手机)中。除了接收可以在图形始发系统处预处理或在接收计算系统处后处理的图形数据之外,计算设备的这些实施例中的任何一个还可以从存储库1316获取内容。
本公开涉及用于根据至少以下部分中提供的示例从输入查询生成关键字序列的系统和方法:
(A1)在一个方面,一些实施例包括一种用于从输入查询(例如,108)生成关键字序列的方法(例如,1000);接收对应于输入查询(例如,108)的第一文本序列(例如,908),并且使用机器学习模型(例如,302)的编码器(例如,308)将第一文本序列编码为源序列表示;使用机器学习模型(例如,302)的解码器(例如,312)从源序列表示生成关键字序列(例如,128);为多个预测令牌(例如,418、420、422)生成生成得分(例如,g1),其中多个预测令牌(例如,418、420、422)基于源序列表示(例如,318)和由解码器(例如,312)提供的先前解码的部分假设;为多个预测令牌(例如,418、420、422)生成经修改的生成得分(例如,),其中经修改的生成得分(例如,/>)基于相应预测令牌生成得分(例如,g1)和多个预测令牌(例如,418、420、422)中的每个预测令牌(例如,420;418;422)的后缀(例如,432、434;436、438、440)的最大生成得分;基于经修改的生成得分(例如,)来选择多个预测令牌(例如,418、420、422)中的预测令牌(例如,420);将由所选择的预测令牌(例如,420)表示的文本添加到由解码器(例如,312)提供的先前解码的部分假设;以及基于所选择的预测令牌(例如,420)来选择要响应于输入查询(例如,108)而提供给计算设备(例如,104)的内容(例如,142),其中所选择的预测令牌(例如,420)匹配与要提供给计算设备(例如,104)的内容(例如,142)相关联的至少一个关键字(例如,136)。
(A2)在Al的一些实施例中,要提供给计算设备(例如,104)的内容(例如,142)是广告。
(A3)在A1-A2的一些实施例中,多个预测令牌(例如,418、420、422)中的每个预测令牌(例如,420;418;422)的后缀(例如,432、434;436、438、440)的生成得分(例如,g1)基于作为一个或多个预测令牌(例如,420)的后缀的后缀(例如,432)的令牌(例如,446)的生成得分(例如,g1)。
(A4)在A1-A3的一些实施例中,机器学习模型(例如,302)是在与关键字序列和输出序列对相对应的数据上训练的序列到序列机器学习模型。
(A5)在A1-A4的一些实施例中,多个预测令牌(例如,418、420、422)的经修改的生成得分(例如,)基于相应预测令牌生成得分(例如,g1)和多个预测令牌(例如,420、418、422)中的每个预测令牌(例如,420;418;422)的后缀(例如,432、434;436、438、440)的最大生成得分(例如,max(g2[s2])。
(A6)在A1-A5的一些实施例中,多个预测令牌(例如,420、418、422)和每个预测令牌(例如,420;418;422)的后缀(例如,432、434;436、438、440)(例如,图2E)从Trie被访问。
(A7)在A1-A6的一些实施例中,该方法还包括接收要添加到Trie的关键字(例如,812)(例如,图2B);以及将关键字添加(例如,816)到Trie(例如,图2B),其中关键字(例如,240)作为后缀被添加到Trie中的已有令牌(例如,212)(例如,图2B)。
(A8)在A1-A7的一些实施例中,多个预测令牌(例如,420、418、422)和每个预测令牌(例如,420;418;422)的后缀(例如,432、434;436、438、440)被约束到Trie(例如,图2E)。
(A9)在A1-A8的一些实施例中,该方法还包括基于先前解码的部分假设和所选择的预测令牌(例如,420)来选择要响应于输入查询(例如,108)而提供给计算设备(例如,104)的内容(例如,142),其中先前解码的部分假设和所选择的预测令牌(例如,420)匹配与要提供给计算设备(例如,104)的内容(例如,142)相关联的至少一个关键字(例如,236)。
(A10)在A1-A9的一些实施例中,该方法还包括基于所选择的预测令牌生成多个假设(例如,420)。
(A11)在A1-A10的一些实施例中,该方法还包括标识与第一文本序列相关联的Trie(例如,808)。
(A12)在A1-A11的一些实施例中,该方法还包括从与第一文本序列相关联的Trie(例如,图2E)中标识预测令牌(例如,420、418)的后缀(例如,432、434)。
(A13)在A1-A12的一些实施例中,该方法还包括为多个预测令牌(例如,420、418、422)中的每个预测令牌(例如,420;418;422)的后缀(例如,432、434;436、438、440)生成经修改的生成得分(例如,)。
在又一方面,一些实施例包括一种计算系统,该计算系统包括一个或多个处理器和耦合到该一个或多个处理器的存储器,该存储器存储被配置为由该一个或多个处理器执行的一个或多个程序,该一个或多个程序包括用于执行本文中描述的任何方法(例如,上述A1-A13)的指令。
在又一方面,一些实施例包括一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储用于由存储设备的一个或多个处理器执行的一个或多个程序的,该一个或更少个程序包括用于执行本文中描述的任何方法(例如,上述A1-A13)的指令。
此外,本文中描述的方面和功能可以在分布式系统(例如,基于云的计算系统)上操作,其中应用功能、存储器、数据存储和检索以及各种处理功能可以在诸如互联网或内联网等分布式计算网络上彼此远程操作。各种类型的用户界面和信息可以经由板载计算设备显示器或经由与一个或多个计算设备相关联的远程显示单元来显示。例如,各种类型的用户界面和信息可以在墙面上显示并且与墙面交互,不同类型的用户界面和信息被投影到该墙面上。与可以实践本发明的实施例的多个计算系统的交互包括键击输入、触摸屏输入、语音或其他音频输入、手势输入,其中相关联的计算设备配备有用于捕获和解释用于控制计算设备的功能的用户手势的检测(例如,相机)功能等。
例如,上面参考根据本公开的各方面的方法、系统和计算机程序产品的框图和/或操作图示描绘了本公开的各个方面。块中注明的功能/动作可以不按任何流程图中所示的顺序发生。例如,事实上,连续示出的两个块可以基本上同时执行,或者这些块有时可以以相反的顺序执行,这取决于所涉及的功能/动作。
本申请中提供的一个或多个方面的描述和说明不旨在以任何方式限制或约束所要求保护的本公开的范围。本申请中提供的方面、示例和细节被认为足以传达占有权,并且使得其他人能够做出和使用所要求保护的本公开的最佳模式。所要求保护的公开不应当被解释为限于本申请中提供的任何方面、示例或细节。无论是组合示出和描述还是单独示出和描述,各种特征(结构和方法)都旨在选择性地被包括或省略,以产生具有特定特征集的实施例。已经提供了本申请的描述和说明,本领域技术人员可以设想落入本申请中体现的一般发明概念的更广泛方面的精神范围内的变化、修改和替代方面,这些变化、修改、替代方面没有脱离所要求保护的本公开的更广泛范围。
Claims (15)
1.一种用于从输入查询生成关键字序列的方法,所述方法包括:
接收对应于输入查询的第一文本序列;
使用机器学习模型的编码器将所述第一文本序列编码为源序列表示;
使用所述机器学习模型的解码器从所述源序列表示生成关键字序列;
为多个预测令牌生成生成得分,其中所述多个预测令牌基于所述源序列表示和由所述解码器提供的先前解码的部分假设;
为所述多个预测令牌生成经修改的生成得分,其中所述经修改的生成得分基于所述相应预测令牌生成得分和所述多个预测令牌中的每个预测令牌的后缀的最大生成得分;
基于所述经修改的生成得分选择所述多个预测令牌中的预测令牌;
将选择的预测令牌添加到由所述解码器提供的所述先前解码的部分假设;以及
基于所述选择的预测令牌来选择响应于所述输入查询而要被提供给计算设备的内容,其中所述选择的预测令牌匹配与要被提供给所述计算设备的所述内容相关联的至少一个关键字。
2.根据权利要求1所述的方法,其中要被提供给所述计算设备的所述内容是广告。
3.根据权利要求1所述的方法,其中所述多个预测令牌中的每个预测令牌的所述后缀的所述生成得分基于令牌的生成得分,所述令牌是一个或多个预测令牌的所述后缀的后缀。
4.根据权利要求1所述的方法,其中所述机器学习模型是序列到序列机器学习模型,所述序列到序列机器学习模型在对应于关键字序列和输出序列的数据上被训练。
5.根据权利要求1所述的方法,其中所述多个预测令牌的所述经修改的生成得分基于所述相应预测令牌生成得分和所述多个预测令牌中的每个预测令牌的后缀的最大生成得分。
6.根据权利要求1所述的方法,其中所述多个预测令牌和每个预测令牌的所述后缀从Trie被访问。
7.根据权利要求6所述的方法,还包括:
接收要添加到所述Trie的关键字;以及
将所述关键字添加到所述Trie,其中所述关键字是所述Trie中的已有关键字的后缀。
8.根据权利要求6所述的方法,其中所述多个预测令牌和每个预测令牌的所述后缀被约束到所述Trie。
9.根据权利要求1所述的方法,还包括:基于所述先前解码的部分假设和所述选择的预测令牌来选择响应于所述输入查询而要被提供给所述计算设备的内容,其中所述先前解码的部分假设和所述选择的预测令牌匹配与要被提供给所述计算设备的所述内容相关联的至少一个关键字段。
10.根据权利要求1所述的方法,还包括:基于所述选择的预测令牌生成多个假设。
11.根据权利要求1所述的方法,还包括:标识与所述第一文本序列相关联的Trie。
12.根据权利要求11所述的方法,还包括:从与所述第一文本序列相关联的所述Trie中标识所述预测令牌的后缀。
13.根据权利要求1所述的方法,还包括:为所述多个预测令牌中的每个预测令牌的后缀生成经修改的生成得分。
14.一种包括指令的计算机可读存储介质,所述指令在由处理器执行时使所述处理器执行根据权利要求1至13中任一项所述的方法。
15.一种包括处理器和存储器的系统,所述存储器包括指令,所述指令在由所述处理器执行时使所述处理器执行根据权利要求1至13中任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/120731 WO2022077244A1 (en) | 2020-10-14 | 2020-10-14 | A look-ahead strategy for trie-based beam search in generative retrieval |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116490864A true CN116490864A (zh) | 2023-07-25 |
Family
ID=81207557
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080106212.1A Pending CN116490864A (zh) | 2020-10-14 | 2020-10-14 | 生成式检索中基于trie的集束搜索的前瞻策略 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230385315A1 (zh) |
EP (1) | EP4229519A4 (zh) |
CN (1) | CN116490864A (zh) |
WO (1) | WO2022077244A1 (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7392185B2 (en) * | 1999-11-12 | 2008-06-24 | Phoenix Solutions, Inc. | Speech based learning/training system using semantic decoding |
US20120072287A1 (en) * | 2010-09-17 | 2012-03-22 | Microsoft Corporation | Using location for determining relevance between queries and advertisements |
US10346548B1 (en) * | 2016-09-26 | 2019-07-09 | Lilt, Inc. | Apparatus and method for prefix-constrained decoding in a neural machine translation system |
US10474709B2 (en) * | 2017-04-14 | 2019-11-12 | Salesforce.Com, Inc. | Deep reinforced model for abstractive summarization |
US10747761B2 (en) * | 2017-05-18 | 2020-08-18 | Salesforce.Com, Inc. | Neural network based translation of natural language queries to database queries |
US20180349351A1 (en) * | 2017-05-31 | 2018-12-06 | Move, Inc. | Systems And Apparatuses For Rich Phrase Extraction |
-
2020
- 2020-10-14 WO PCT/CN2020/120731 patent/WO2022077244A1/en active Application Filing
- 2020-10-14 US US18/031,789 patent/US20230385315A1/en active Pending
- 2020-10-14 CN CN202080106212.1A patent/CN116490864A/zh active Pending
- 2020-10-14 EP EP20957025.8A patent/EP4229519A4/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
EP4229519A1 (en) | 2023-08-23 |
EP4229519A4 (en) | 2024-06-12 |
US20230385315A1 (en) | 2023-11-30 |
WO2022077244A1 (en) | 2022-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3724785B1 (en) | Fast indexing with graphs and compact regression codes on online social networks | |
US10878009B2 (en) | Translating natural language utterances to keyword search queries | |
CN107924679B (zh) | 计算机实施的方法、输入理解系统和计算机可读存储设备 | |
KR102357685B1 (ko) | 병렬 처리용 하이브리드 클라이언트/서버 아키텍처 | |
EP3991119A1 (en) | Memory grounded conversational reasoning and question answering for assistant systems | |
KR20220083789A (ko) | 어시스턴트 시스템들을 위한 선행적 콘텐츠 생성 | |
US9378290B2 (en) | Scenario-adaptive input method editor | |
US20090249198A1 (en) | Techniques for input recogniton and completion | |
US20180357240A1 (en) | Key-Value Memory Networks | |
US11106690B1 (en) | Neural query auto-correction and completion | |
KR20190043604A (ko) | 다의적 코드를 사용한 유사성 검색 | |
WO2018070995A1 (en) | Diversifying media search results on online social networks | |
KR20160127810A (ko) | 온스크린 아이템 선택 및 명확화를 위한 모델 기반 방식 | |
US9870131B2 (en) | Exploring information by topic | |
KR101899431B1 (ko) | 소셜 컨텍스트를 사용하는 소셜 네트워킹 시스템 통신에서의 토픽의 추론 | |
CN110968203A (zh) | 个性化神经查询自动完成管道 | |
US11829374B2 (en) | Document body vectorization and noise-contrastive training | |
US11847424B1 (en) | Natural language generation | |
US20240054156A1 (en) | Personalized Labeling for User Memory Exploration for Assistant Systems | |
TW202301080A (zh) | 輔助系統的多裝置調解 | |
US20240256622A1 (en) | Generating a semantic search engine results page | |
WO2022077244A1 (en) | A look-ahead strategy for trie-based beam search in generative retrieval | |
WO2022099566A1 (en) | Knowledge injection model for generative commonsense reasoning | |
EP3306555A1 (en) | Diversifying media search results on online social networks | |
WO2022119702A1 (en) | Document body vectorization and noise-contrastive training |
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 |