CN114329256A - 搜索界面的导航代理 - Google Patents

搜索界面的导航代理 Download PDF

Info

Publication number
CN114329256A
CN114329256A CN202111134663.9A CN202111134663A CN114329256A CN 114329256 A CN114329256 A CN 114329256A CN 202111134663 A CN202111134663 A CN 202111134663A CN 114329256 A CN114329256 A CN 114329256A
Authority
CN
China
Prior art keywords
search
user
reinforcement learning
reward
computer
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
CN202111134663.9A
Other languages
English (en)
Inventor
P·K·博迪古特拉
B-C·陈
龙波
M·程
Q·肖
T·S·莫特瓦尼
W·陈
S·K·博兰姆
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN114329256A publication Critical patent/CN114329256A/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/2452Query translation
    • G06F16/24522Translation of natural language queries to structured queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • G06F16/90332Natural language query formulation or dialogue systems
    • 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/248Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • 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/044Recurrent networks, e.g. Hopfield networks
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks

Landscapes

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

Abstract

所公开的技术包括用于搜索界面的导航代理。在一个实施例中,导航代理使用强化学习来动态生成和选择导航选项以在搜索会话期间呈现给用户。导航代理基于奖励分数选择导航选项,这些分数是使用响应于导航选项的呈现而接收到的隐式和/或显式用户反馈来计算的。

Description

搜索界面的导航代理
技术领域
本公开涉及的技术领域是用于创建和执行搜索查询的图形用户界面导航。
背景技术
许多搜索引擎允许自然语言搜索。搜索引擎可以通过提供过滤器和/或建议的搜索替代方案来补充自然语言搜索能力。然而,现有方法提供的搜索建议和过滤器的性能通常并不比用户的原始查询好,搜索引擎仍可能需要多次迭代才能最终检索到所需的搜索结果。在现有系统中,过滤器是静态的,这意味着无论用户搜索的内容如何,始终提供相同的过滤器。
本节中描述的方法是可以采用的方法,但不一定是先前已经构想或采用的方法。因此,除非另有说明,否则不应假定本节中描述的任何方法仅因其包含在本节中而成为现有技术。
附图说明
在附图中:
图1是示出其中可以实现本公开的方面的计算系统的至少一个实施例的框图。
图2A是可用于实现图1的计算系统的一部分的过程的流程图。
图2B是可用于实现图1的计算系统的一部分的过程的流程图。
图2C是可用于实现图1的计算系统的一部分的基于强化学习的软件代理的示意图。
图2D和图2E是可用于实现图1的计算系统的一部分的基于强化学习的软件代理的部分的示意图。
图2F是可用于实现图1的计算系统的一部分的算法的伪代码的示例。
图3A是可由图1的计算系统的至少一个设备执行的过程的流程图。
图3B是可由图1的计算系统的至少一个设备执行的过程的流程图。
图4A是可由图1的计算系统的至少一个设备执行的过程的流程图。
图4B是可由图1的计算系统的至少一个设备执行的过程的流程图。
图5A、图5B和图5C是可用于实现图1的计算系统的一部分的用户界面元素的示例的捕获。
图6是示出硬件系统的实施例的框图,其可以用于实现图1的计算系统的各个方面。
具体实施方式
在以下描述中,为了解释的目的,阐述了许多具体细节以提供对本发明的透彻理解。然而,很明显,可以在没有这些具体细节的情况下实践本发明。在其他情况下,众所周知的结构和设备以框图形式示出以避免不必要地混淆本发明。
概述
搜索引擎继续受到自然语言查询的挑战。这个技术问题对于通用搜索引擎来说尤其严重,它可能会从许多不同类别的信息中返回过多的搜索结果,从而产生内容丰富但复杂且可能过度拥挤的搜索结果页面。例如,在基于连接网络的系统中,搜索查询可能会返回与查询词匹配的所有新闻文章、用户资料、公司资料和职位发布,并将这些结果全部显示在同一结果页面上。这种多维结果页面可能会降低用户对搜索引擎的体验,尤其是当复杂页面显示在诸如智能手机、可穿戴设备或平板电脑等小型显示设备上时。
基于网络的连接系统的示例包括但不限于在线网络,例如社交网络,以及与在线网络交互的应用软件。可以与在线网络交互的应用软件的示例包括但不限于招聘、在线学习和求职应用。
如这里所使用的,“在线”可以指基于连接网络的系统的特定特性。例如,用户可以经由与公共网络(例如因特网)的连接来访问许多基于连接网络的系统。然而,某些操作可以在“在线”系统处于离线状态时执行。因此,将系统称为“在线”系统并不意味着这样的系统总是在线或系统需要在线以便所公开的技术可操作。
为了提高搜索引擎在尽可能少的用户界面驱动的迭代中递送高度相关的搜索结果的能力,已经探索了许多不同的技术方法。已经尝试应用受监督的机器学习技术来评估用户对搜索引擎响应于用户提供的搜索查询而产生的搜索结果的反馈。由于无法充分处理嘈杂的标签,监督机器学习方法一直是次优的。例如,监督机器学习需要将用户反馈的单个训练实例离散地标记为正面或负面。然而,用户反馈并不总是具有高度确定性的正面或负面。例如,用户的暂时不作为可能不是负面反馈的信号。
监督机器学习技术的另一个缺点是,虽然它们可用于解释离散动作,但它们在较长事件序列的上下文中解释用户活动的效率不高。此外,由于过滤器传统上是静态的,因此尝试改善搜索体验导致搜索界面上静态过滤器的激增。事实证明,大量过滤器对用户来说是难以应付的和令人困惑的。
存在定义过滤器以帮助用户缩小其搜索范围的不同方式。基于领域知识的硬编码过滤器是一种方法。其他方法可以使用分面分类系统定义过滤器,在这种情况下,术语“分面(facet)”可用于指代一种过滤器。常用的通用分面的例子是时间、地点和形式。出于本公开的目的,术语“分面”和“过滤器”可以互换使用。然而,此处描述的技术适用于用于定义搜索过滤器的许多不同方法并且不限于基于分面的方法。
除了上述挑战之外,所公开的技术还涉及减少由无序、不正确或相关性较低的搜索结果的呈现引起的用户摩擦。例如,在在线辅导、学习和教育应用中,以逻辑顺序检索和呈现内容可能很重要。例如,在为特定用户呈现的搜索结果中,在高级烹饪视频之前订购烹饪基础视频可能很重要。由所公开的技术提供的基于导航的改进可以结合这些和其他类型的约束,从而增加用户对软件产品的参与。
所公开技术的实施例已经配置了高级机器学习代理,其包括一个或多个基于强化学习的软件代理。强化学习的结合使搜索界面的导航元素能够基于搜索会话期间发生的用户活动序列进行动态配置。实施例应用强化学习以响应于会话过程中的用户反馈而连续调整由搜索界面呈现的导航元素。使用强化学习,导航代理确定在用户搜索会话期间的特定时间向用户呈现哪个或哪些导航元素,以增加关于搜索界面的积极用户体验的可能性。
在实施例中,导航代理计算奖励分数,其量化不同的特定计算机生成的导航元素选项的有效性。奖励分数基于在与特定用户的搜索会话期间已收集的用户状态数据以及从搜索界面的其他用户群已收集的用户状态数据。导航代理基于奖励分数选择要呈现给用户的导航元素。导航代理通过在导航代理已做出选择后继续处理用户状态数据来自适应地确定所选导航元素的有效性。
为便于讨论,如本文所用,术语“选项”可指可由导航代理使用例如所公开的基于强化学习的过程中的一个或多个选择的一组计算机生成的导航元素中的一个。例如,导航代理的实施例可以生成若干导航元素选项,导航代理可以从中选择这些选项中的一个或多个以在用户搜索会话期间的特定时间呈现给用户。由导航代理选择的特定导航元素选项可以称为计算机选择的导航元素。
通过搜索界面向用户呈现计算机选择的导航元素可以被称为“动作”。因此,本文所用的“动作”可指由搜索界面、导航代理或系统100的一个或多个其他组件执行的操作或过程。在搜索界面已向用户呈现了特定计算机选择的导航元素之后,如果用户随后选择该特定计算机选择的导航元素,例如,以包括在用户的搜索查询中,则导航代理可以摄取与对特定计算机选择的导航元素的选择相对应的用户状态数据作为用户反馈。
用户对导航元素的选择以及与系统100的其他用户交互可被称为“活动”。当搜索界面向用户呈现多个计算机选择的导航元素时,这些导航元素在本文中可被称为“选择”。因此,如本文所用,“动作”可指由一个或多个处理器执行的操作或过程,而“活动”可指用户与系统100之间的用户发起的交互。此外,“选项”可指导航代理可以通过基于强化学习的过程选择的计算机生成的导航元素,而“选择”可以指计算机生成的导航元素选项,该选项可以呈现给用户,并且可以由用户通过用户界面选择。
如本文所用,诸如“计算机生成的”和“计算机选择的”之类的术语可以指由例如服务器计算机、服务器计算机网络、客户端计算机或客户端计算机和服务器计算机的组合的一个或多个处理器执行一个或多个计算机程序指令的结果。
所公开的技术可以在会话期间的任何时间生成并提供给搜索界面的计算机生成的导航元素的示例包括但不限于计算机生成的搜索重新制定,例如可以细化或扩展用户先前查询的对用户的原始查询的重新制定、对搜索过滤器和/或分面类型的计算机生成的动态重新配置、计算机生成的对话式查询消歧元素(例如澄清提示和信息内容元素,例如旨在帮助新用户导航搜索页面的指导视频和帮助消息)、对搜索引擎检索到的搜索结果的呈现、或任何上述或其他形式的导航元素的任意组合。出于本公开的目的,搜索结果的呈现被认为是计算机生成的导航元素,因为搜索结果的呈现是可以由导航代理选择的选项。例如,导航代理可以确定既显示搜索结果又显示搜索重新制定和/或重新配置的过滤器。
实验已经表明,所公开的技术能够例如提高计算机生成的重新制定的搜索的质量并将计算机生成的重新制定的搜索的数量减少到数量更少的更相关的选项。下面的表1显示了使用所公开的技术生成的搜索重新制定选项与使用监督机器学习模型获得的那些选项的比较。
Figure BDA0003281834400000051
表1.实验结果示例。
表1的第一行示出了原始搜索查询的三个示例。该表的其余部分显示了使用所公开技术(“RL”列)和使用监督机器学习模型(“监督ML”列)生成的计算机生成的搜索重新制定选项的示例。从表1中可以看出,监督机器学习系统产生的选项有更大的变化。这些差异可以归因于监督机器学习系统无法使用搜索会话的更大上下文来生成选项的事实。
所公开技术的益处的示例包括响应于用户的查询而向用户显示的信息量的减少、呈现给用户的导航元素和搜索结果的相关性、准确性和排列的改进,以及增加软件产品的搜索驱动方面的使用。
示例计算系统
图1示出了其中可以实现本文档中描述的特征的实施例的计算系统。在图1的实施例中,计算系统100包括用户系统110、基于强化学习的导航代理130、参考数据存储库150、搜索引擎160和应用软件系统170。
用户系统110包括至少一个计算设备,例如个人计算设备、服务器、移动计算设备或智能电器。用户系统110包括至少一个软件应用,其包括用户界面112,软件应用安装在计算设备上或对于计算设备是可通过网络访问的。例如,用户界面112可以是或包括基于强化学习的导航代理130、搜索引擎160和/或应用软件系统170的前端部分。
用户界面112是如上所述的任何类型的用户界面。用户界面112可用于查看或以其他方式感知由基于强化学习的导航代理130产生的导航元素。例如,用户界面112可以包括单独的图形用户界面或与异步消息传递界面相结合的图形用户界面,其可以是基于文本的或包括对话式语音/语言界面。用户界面112可以经由搜索引擎160和/或应用软件系统170的前端组件使搜索查询可用于由基于强化学习的导航代理130处理。
作为用户经由用户界面112操作搜索引擎160或应用软件系统170的前端部分的结果,可以创建搜索查询并将其存储在计算机存储器中。搜索引擎160被配置为响应于搜索查询而针对存储的内容处理和执行搜索查询并返回搜索结果。搜索引擎160能够处理和执行搜索查询,该搜索查询包括单独的自然语言文本或与诸如过滤器和/或预定义的排序标准之类的结构化查询词组合的自然语言文本。搜索引擎160可以是通用搜索引擎或专用搜索引擎,并且可以是另一系统的一部分或被另一系统访问或通过另一系统访问,例如应用软件系统170。
应用软件系统170是任何类型的应用软件系统。应用软件系统170的示例包括但不限于可以基于也可以不基于连接网络软件的连接网络软件和系统,例如求职软件、招聘人员搜索软件、销售辅助软件、广告软件、学习和教育软件,或上述任何一项的任何组合。
虽然未具体示出,但应当理解,基于强化学习的导航代理130、搜索引擎160和应用软件系统170中的任一个包括体现为存储在计算机存储器中的计算机编程代码的接口,当执行该计算机编程代码时,使能计算设备实现应用软件系统170和/或搜索引擎160与基于强化学习的导航代理130之间的双向通信。例如,应用软件系统170或搜索引擎160的前端可以包括交互元素,当被选择时,该交互元素使得界面在应用软件系统170或搜索引擎160(视情况而定)与基于强化学习的导航代理130之间建立数据通信连接。例如,在应用软件系统170或搜索引擎160的前端中对用户输入的检测,或计算机生成的重新制定的搜索候选的用户选择的检测,可以使用例如应用程序接口(API)来发起与基于强化学习的导航代理130的数据通信。
基于强化学习的导航代理130基于在用户当前搜索会话过程中收集和存储的用户状态数据以及在一些实施例中基于在一个或多个先前搜索会话中收集的历史用户状态数据来计算奖励分数。基于强化学习的导航代理130使用奖励分数来动态选择或重新配置要在当前搜索会话期间呈现给用户的导航元素。例如,由基于强化学习的导航代理130产生的输出可以提供给搜索引擎160、应用软件系统170和/或由用户界面112显示。
基于强化学习的导航代理130可以包括一个或多个导航子代理。在一个实施例中,基于强化学习的导航代理130包括至少两个导航子代理,每个导航子代理向顶级基于强化学习的导航代理提供输出。在一些实施例中,导航子代理中的一个或多个本身使用强化学习来实现。下面更详细地描述基于强化学习的代理130的示例实施例。
用户状态数据的示例包括用户对内容呈现的响应(例如,点击或轻敲内容项目)、用户活动(例如,输入搜索查询、选择导航元素、响应于导航元素而键入输入、发起连接请求、共享内容、发送消息)以及由没有用户活动的时间间隔定义的用户不活动。用户活动可以包括跨应用程序动作。例如,在基于连接网络的系统中,用户活动可以包括在一个时间间隔内与软件的连接网络部分的用户交互、与软件的求职部分的交互以及与软件的学习部分的交互。用户状态数据还包括与关联于不同会话的相应用户活动相关联的会话标识符数据和时间戳数据。因此,用户状态数据可以包括跨同一用户的不同会话或跨多个不同用户收集的数据。用户活动可以是显式的,也可以是隐式的。显式用户活动的示例包括单击搜索结果、连接请求、单击“点赞”或“喜欢”按钮以及提交职位申请。隐式用户活动的示例包括导航离开搜索结果、未能选择计算机生成的重新制定的搜索、以及未能选择计算机生成的过滤器元素。
导航元素的示例包括用户界面元素,例如计算机生成的重新制定的搜索、计算机生成的搜索过滤器、基于对话的元素(例如澄清问题和查询扩展或细化选项)、系统选择的训练元素,例如在线视频和计算机生成的搜索结果,例如响应先前搜索查询而生成的搜索结果。例如,用户界面元素可以通过图形用户界面和/或计算机生成的语音呈现给用户。
参考数据存储库150包括至少一个数字数据存储库,其存储用于训练、测试、使用和调整形成基于强化学习的导航代理130的部分或以其他方式用于操作基于强化学习的导航代理130的强化学习模型的数据集。可以存储在参考数据存储库150中的数据的示例包括但不限于搜索查询数据、用户状态数据、用户元数据、导航元素、模型训练数据(例如群体状态数据)、奖励分数、语义嵌入、相似度得分、模型参数和超参数值以及权重值。参考数据存储库150的存储数据可以驻留在至少一个永久性和/或易失性存储设备上,该永久性和/或易失性存储设备可以驻留在与计算系统100的至少一个其他设备相同的本地网络中和/或在相对于计算系统100的至少一个其他设备位于远程的网络中。因此,尽管被描述为包括在计算系统100中,参考数据存储库150的部分可以是计算系统100的一部分或由计算系统100通过网络(例如网络120)访问。
基于强化学习的导航代理130、搜索引擎160或应用软件系统170的客户端部分可以在用户系统110中运行,例如作为软件应用的图形用户界面中的插件或小部件或作为Web浏览器执行用户界面112。在一个实施例中,Web浏览器可以响应于通过由Web应用程序提供并通过Web浏览器显示的用户界面接收的用户输入(例如,键入文本序列)而通过网络(例如,因特网)发送HTTP请求。基于强化学习的导航代理130和/或搜索引擎160的服务器部分可以接收输入,执行至少一个操作来分析输入,并使用Web浏览器接收和处理的HTTP响应返回输入的至少一个修改版本。
用户系统110、基于强化学习的导航代理130、搜索引擎160和应用软件系统170中的每一个使用通信耦合到电子通信网络120的至少一个计算设备来实现。基于强化学习的导航代理130可以通过网络120双向通信地耦合到用户系统110、基于强化学习的导航代理130、搜索引擎160和应用软件系统170。不同的用户系统(未示出)可以双向通信地耦合到应用软件系统170。用户系统110的典型用户可以是客户服务代表或应用软件系统170的管理员或产品经理或应用软件系统170的终端用户。用户系统110被配置为例如通过网络120与至少基于强化学习的导航代理130进行双向通信。通信耦合机制的示例包括网络接口、进程间通信(IPC)接口和应用程序接口(API)。
用户系统110、基于强化学习的导航代理130、参考数据存储库150、搜索引擎160和应用软件系统170的特征和功能使用计算机软件、硬件或软件和硬件来实现,并且可以包括自动化功能、数据结构和数字数据的组合,在图中示意性表示。为了便于讨论,用户系统110、基于强化学习的导航代理130、参考数据存储库150、搜索引擎160和应用软件系统170在图1中被示为单独的元件,但是图示并不意味着需要将这些元件分开。所示的系统和数据存储库(或它们的功能)可以被划分到任何数量的物理系统,包括单个物理计算机系统,并且可以以任何适当的方式彼此通信。
网络120可以在提供计算系统100的各种组件之间的数据、信号和/或指令的交换的任何介质或机制上实现。网络120的示例包括但不限于局域网(LAN)、广域网(WAN)、以太网或因特网,或至少一个地面、卫星或无线链路,或任意数量的不同网络和/或通信链路的组合。
应当理解,计算系统100只是这里公开的技术的实施方式的一个示例。虽然为了便于讨论描述可以参考图1或“系统100”,可以使用硬件和软件组件的其他合适的配置来实现所公开的技术。同样,后续附图中所示的具体实施例仅作为示例提供,本公开不限于这些示例性实施例。
示例系统架构
图2A是用于计算系统100的系统架构200的实施例的基于软件的组件的布置的示意图,其可以存储在图1的计算系统的至少一个设备上,并显示了组件之间的流的示例,包括输入和输出。
在图2A中,搜索界面202接收终端用户与例如搜索引擎160或应用软件系统170的前端的基于计算机的交互,并在搜索会话期间输出导航元素。搜索界面202可以被实现为用户界面112的一个组件。搜索会话的示例是用户活动和系统动作的时间序列,它以搜索查询的输入开始并以例如搜索引擎160或应用软件系统170的前端部分的关闭、搜索输入框的清除或所有搜索过滤器的清除结束。例如,关闭web浏览器或移动设备应用可用于结束搜索会话。
搜索会话可以跨越多个不同的设备平台。例如,用户可以通过在移动设备上键入查询开始搜索会话并在膝上型计算机上继续搜索会话,或者用户可以通过在膝上型计算机上键入查询来开始搜索会话并在移动设备继续搜索会话。此外,搜索会话可以跨越跨应用软件系统170的多个部分的用户活动。例如,搜索会话可以从职位搜索开始,但也包括用户活动,例如向其简档在搜索会话期间已被检索到的其他用户发出连接请求,以及查看在搜索会话期间检索到的学习视频。
通过与终端用户的基于计算机的交互,搜索界面202从搜索会话中提取用户状态数据204、用户元数据205和搜索查询206。用户状态数据204的示例包括上面提供的用户状态数据的示例。用户元数据205的示例包括用户账户标识符数据、用户账户创建时间戳数据、用户简档数据、会话标识符数据、会话时间戳数据和用户活动时间戳数据。用户活动时间戳数据的示例是离散数据值,其指示已由搜索界面202或更一般地由系统100检测到用户活动的日期和时间。通常,本文中使用的时间戳数据可以指从系统时钟获得的离散日期和时间值。
在一些实施例中,用户账户创建数据时间戳数据被用作用户对特定软件的熟练程度的指示符。例如,如果用户账户创建时间戳和当前搜索会话的时间戳之间的差异很小(例如,小于或等于30天),则系统100可以认为用户是“新的”,与如果用户被认为是“经验丰富的”(例如,用户账户创建时间戳和当前搜索会话的时间戳之间的差异很大,例如大于30天)相比,这可能会使系统100偏向于更频繁地调用基于强化学习的导航代理130。可替代地或另外地,账户数据时间戳数据被基于RL的导航代理212和/或一个或多个导航子代理214、216用作计算奖励分数、生成导航元素选项、或选择导航元素的因素。
搜索查询206是文本串。搜索查询206包括自然语言文本并且还可以包括结构化的查询术语,例如过滤器或排序标准。如本文中所使用的,“自然语言”可以指经由例如键盘或麦克风输入到自由格式文本框中的非结构化文本。在一些实施例中,搜索查询206还可以包括计算机生成的重新制定的搜索选项和/或计算机生成的过滤选项,它们先前已经由基于RL的导航代理212使用所公开的技术生成并通过搜索界面呈现给用户202。在一些实施例中,搜索查询206还包括对用户是否已经选择了这些计算机生成的导航选项中的任何一个的指示。
搜索查询206的自然语言文本可以已经由用户键入到搜索界面202的文本框中。可替代地,搜索查询206的自然语言文本可以是由用户经由搜索界面202的导航元素选择的计算机生成的搜索选择。在一些实施例中,搜索查询206可以包括对应于用户说出的自然语言语音的文本串,在这种情况下,文本串可以已经由例如自动语音识别(ASR)软件产生。因此,搜索查询206可以包括非结构化的文本和结构化的文本两者的组合。
搜索查询206由预处理器208预处理。可以对搜索查询206执行的预处理的示例包括但不限于句法解析和语义解析。在预处理之后,预处理器208输出搜索查询数据210。搜索查询数据210的示例是搜索查询206的结构化的表示。例如,搜索查询数据210可以包括句法和/或语义标签以及搜索查询206的原始文本。
作为搜索查询206的结构化的表示的另一个示例,搜索查询数据210可以被公式化为搜索查询206的语义解释,其可以采用意图的形式。意图的一个示例是表示查询含义的语义标签;例如,Find_Job或Find_Contact。意图可以具有参数或“槽”,它们是对应于变量数据值的变量名称,其中变量数据值的实例可以由搜索查询206提供。例如,在意图Find_Job(职称,技能)中,“职称”和“技能”是搜索参数。如果搜索查询206包含对应于这些参数中的任何一个的一个或多个值,则预处理器208将它们插入到意图的对应参数槽中。例如,在意图中,Find_Job(“软件工程师”,空)中,用户提供了与“名称”参数对应的搜索词“软件工程师”,但没有提供“技能”的值。例如,如果搜索查询206不包含足够的信息来填充意图的一个或多个槽,则预处理器208可以确定搜索查询206是不明确的。
用户状态数据204、用户元数据205和搜索查询数据210被提供给基于RL的导航代理212或由其接收。在图2A的实施例中,基于RL的导航代理212是软件组件或包括多个基于机器学习的子组件的软件组件的集合。基于RL的导航代理212包括N个导航子代理214、216(其中N是正整数)以及导航代理212。
在一个实施例中,基于RL的导航代理212、214、216以分层结构方式排列,其中导航代理212处理基于RL的导航子代理214、216的输出并从已经由子代理214、216输出的选项中选择导航选项,而导航子代理214、216产生供导航代理212处理的输出但不处理其他导航代理的输出。例如,如果子代理214输出一个或多个查询重新制定选项并且子代理216输出一个或多个过滤选项,则导航代理212可选择查询重新制定选项和/或过滤选项、仅查询重新制定选项、仅过滤选项或由子代理214、216产生的导航选项的任何组合作为导航选项。在其他实施例中,导航代理212和导航子代理214、216以非分层结构方式排列,其中代理212、214、216中的一个或多个独立于其他代理运行。例如,导航代理212可以生成和选择会话消歧选项,而子代理214独立生成和选择查询重新制定选项并且子代理216独立生成和选择过滤选项。
在一个实施例中,基于RL的代理和/或子代理的数量由不同类型的导航元素选项的数量确定,导航元素选项本身可以生成多个不同的选项。例如,在给定的用户状态下,可以向用户呈现任意数量的查询重新制定和/或任意数量的过滤器元素。因此,可以使用基于RL的代理来促进选择要呈现给用户的查询重新制定(如果有的话)。同样,可以使用另一个RL代理来帮助选择要呈现给用户的过滤器元素(如果有的话)。如果有其他类型的导航选项可用,则可以提供额外的RL代理。
在一个实施例中,基于RL的导航代理212和导航子代理214、216中的至少一个是使用高级机器学习,例如强化学习来实现的。在图2A的实施例中,导航代理212、214、216每个都是使用群体状态数据220训练的基于强化学习的代理。群体状态数据220的示例是为搜索引擎160和/或应用软件系统170的用户群收集的用户状态数据。可用于实现导航子代理212、214、216中的一个或多个的模型配置的示例在图2C、图2D、图2E和图2F中示出,如下所述。
群体状态数据220包括用户群体中用户的用户状态序列。此类用户状态包括在向用户群体中的用户呈现计算机生成的导航元素选项之后检测到的用户状态,其中计算机生成的导航元素选项已响应于自然语言搜索查询而呈现,并且自然语言搜索查询已经在用户群体的会话期间从用户群体中的用户处接收到。在以下部分中更详细地描述了基于强化学习的导航代理的实施例。
每个导航子代理214、216接收用户状态数据204、搜索查询数据210和可选的用户元数据205。使用用户状态数据204、搜索查询数据210和可选的用户元数据205,每个导航子代理214、216生成不同类型的可选导航元素并计算其生成的导航元素的奖励分数。例如,导航子代理212可以生成搜索选项和对应的奖励分数,并且导航子代理214可以生成过滤选项或会话消歧元素选项以及对应的奖励分数。
总体基于RL的导航代理212针对各种计算机生成的导航元素选项评估由导航子代理214、216中的每一个产生的奖励分数,并且基于奖励分数从这些选项中选择导航元素用于输出。例如,基于RL的导航代理212可以选择一个或多个搜索重新制定选项、一个或多个查询重新制定、一个或多个过滤器元素、一个或多个会话消歧元素、一个或多个搜索结果元素或基于奖励分数的任何前述选项的组合,以供输出。基于RL的导航代理212提供一个或多个所选择的导航元素218以供搜索界面202输出。
示例强化学习过程
图2B是计算系统100的强化学习过程250的实施例的基于软件的组件的布置的示意图,其可以存储在图1的计算系统的至少一个设备上。
在图2B中,在表示搜索会话开始的时间戳t处,用户状态是st并且st具有对应的奖励分数rt。强化学习代理252基于用户状态st和对应的奖励分数rt而从一组动作选项中选择动作at。强化学习代理252提供动作at以供用户界面254输出。强化学习代理252是例如导航代理212、导航子代理214、导航子代理216、或导航代理212、导航子代理214和导航子代理216中的任何两个或更多个的组合。动作at的示例包括但不限于用于呈现一个或多个计算机生成的导航元素的指令,例如搜索重新制定选项、查询重新制定、过滤器元素、会话消歧元素、搜索结果或上述任何一项的组合。
用户界面254例如是上述的搜索界面202。响应于at,检测到到新用户状态st+1的状态转换,并基于(st,at,rt)和st+1(例如,动作的累积序列、奖励分数和自搜索会话开始以来的用户状态)来计算对应的奖励分数rt+1。用于计算奖励分数的算法是可配置的,并且可根据操作类型而变化。例如,对于不同类型的导航元素,可以不同地计算奖励分数。一般而言,强化学习代理252从用户的计算环境接收关于顺序动作的反馈,并寻求在整个搜索会话期间最大化累积奖励,而不是孤立地最大化单个动作的效用。
用于查询重新制定的示例模型架构
图2C是可用于实现图1的计算系统的一部分的基于强化学习的软件代理的示意图。特别是,图2C示出了编码器-解码器神经机器翻译(NMT)模型260,其已经被适配并预训练以生成可由RL代理(例如RL代理212、214或216)基于用户状态数据评分和选择的查询重新制定选项。
例如,由模型260输出的查询重新制定选项可以在收集用户反馈的一系列搜索会话期间呈现给特定用户和/或用户群体,并且由此产生的用户反馈由RL代理使用本文中描述的计算奖励分数的方法进行评分,并且奖励分数用于训练RL代理或在用户偏好随时间变化时使RL代理适应用户偏好。
为了产生查询重新制定选项,神经机器翻译模型260使用人工神经网络来预测词序列的可能性。模型260将用户的搜索查询作为整个序列而不是单个词以作为输入,并输出用户查询的一个或多个新版本,其中用户查询的每个新版本都是模拟的序列。输入查询和计算机生成的序列可以是任意长度。
尽管现有的基于最大似然估计(MLE)的Seq2Seq模型只能将非策划的“共现”查询馈送给训练,而不考虑任何下游用户动作作为优化目标,但模型260可以使用由RL代理计算的奖励分数进行训练。以这种方式,响应于向用户展示计算机选择的查询重新制定选项而发生的下游用户动作可以被合并到模型训练数据中。
如以下参照图4A所描述的,由RL代理计算的奖励分数衡量计算机生成的查询重新制定选项的某些属性,例如语义连贯性、多样性或捕获生成单词序列的动态。RL代理使用这些奖励分数来改进对查询重新制定选项的选择。例如,RL代理可以选择具有高语义一致性和积极用户反馈分数的查询重新制定选项,而不是具有低语义一致性和积极用户反馈分数的另一查询重新制定选项,或者与具有高语义一致性分数和中性用户反馈分数的查询重新制定选项相比,RL代理可以选择具有低语义一致性和积极用户反馈分数的另一查询重新制定选项。
过滤器元素的示例架构
图2D和图2E是可用于实现图1的计算系统的一部分的基于强化学习的软件代理的部分的示意图。图2F是可用于实现图1的计算系统的一部分的算法的伪代码的示例。
用于生成和选择过滤器元素的RL代理的实施例被建模为马尔可夫决策过程(MDP),如图2B所示,如上所述。RL代理与用户交互,通过最大化整个会话的累积奖励,在用户会话期间在一组时间戳上按顺序建议过滤器元素选项的列表。
图2D示出了用于生成状态S的神经网络架构270的示例。在实施例中,MDP定义新的用户状态st+1,如下:st+1=f(st,et),其中函数f被定义为循环神经网络(RNN),如图2D所示,st是当前用户状态,et是当前过滤器元素。在图2D中,嵌入层针对每个对应的过滤器元素选项e1,e2,...eN生成语义嵌入E1,E2,...EN。GRU(门控循环单元)用于隐藏层h1,h2...hN,而不是长短期记忆(LSTM),这是因为在某些推荐任务中GRU在捕捉用户的顺序偏好方面优于LSTM。
图2E示出了演员-评论者(actor-critic)框架272,其中动作a被定义为连续权重向量并且Q(s,a)是状态-动作值函数。在所示实施例中,演员-评论者框架用于解决MDP问题。在一个特定实施例中,演员-评论者框架是使用无模型的离策略演员-评论者深度确定性策略梯度(DDPG)算法来实现的。图2F示出了可以在图2E的演员-评论者框架中使用的DDPG算法274的示例。RL问题的最大化目标可以使用基于值的方法或策略梯度方法来解决。状态-动作值函数可以通过均方误差最小化的函数逼近来估计。
示例导航过程
图3A是可由计算系统的至少一个设备执行的操作的实施例的简化流程图。如图3A所示的流程300的操作可以使用存储在计算机存储器中的处理器可执行指令来实现。为了提供清楚的示例,图3A的操作被描述为由计算系统100执行,但是其他实施例可以使用其他系统、设备或实现的技术。
操作302在由至少一个处理器执行时使一个或多个计算设备检测搜索会话的开始。可以通过例如检测自然语言搜索查询到用户界面的文本收件箱中的输入或检测对由用户界面呈现的计算机生成的导航元素(例如计算机生成的重新制定搜索或计算机生成的过滤器元素)的选择来执行操作302。
操作304在由至少一个处理器执行时使一个或多个计算设备从通过操作302检测到的搜索会话中提取搜索查询数据和用户状态数据。搜索查询数据可以包括例如搜索查询数据210,如上所述。用户状态数据可以包括例如上述用户状态数据204。可选地,在操作304中,还可以从搜索会话中提取用户元数据,例如上述用户元数据205。例如,可以使用SPARK/SCALA脚本执行数据提取。
操作306在由至少一个处理器执行时使一个或多个计算设备调用导航代理或不调用导航代理。为了确定是否调用导航代理,操作306可以处理搜索查询数据、用户状态数据、用户元数据、或任何前述的组合。例如,如果用户账户创建时间戳数据与会话时间戳数据的比较超过阈值持续时间并由此指示输入搜索查询的用户是“高级用户(power user)”,则操作306可以不调用导航代理或可以仅调用导航代理的一部分。另一方面,如果用户账户创建时间戳数据与会话时间戳数据的比较小于阈值持续时间,并由此指示输入搜索查询的用户是新用户,或者会话时间戳数据与系统时钟的当前值的比较指示搜索会话刚刚开始,操作306可以调用导航代理。
作为另一示例,如果搜索查询被确定为是明确的,例如通过语义解析器已经确定意图是“完整的”,因为所有意图的槽已经填充有来自用户输入的数据值,则操作306可以不调用导航代理。另一方面,如果语义解析器确定意图是不明确的,因为意图的槽中的一个或多个没有被填充有来自用户输入的数据值,或者语义解析器对意图槽的用户输入数据值分配的置信度较低,或者语义解析器对意图确定本身的置信度较低(例如,语义解析器对意图是“Find_Job”的置信度为50%,对意图是“Find_Company”的置信度为50%”),则操作306可以调用导航代理。
如果操作306调用导航代理,则操作308在由至少一个处理器执行时使一个或多个计算设备生成导航元素选项,计算奖励分数并选择用于由用户界面输出的导航元素。可以由操作306执行的过程的示例下面参考图4A和图4B进行描述。如果操作306不调用导航代理,则流程300进行到操作312,如下所述。
操作310在由至少一个处理器执行时使一个或多个计算设备响应于搜索查询,经由用户界面向用户呈现所选择的导航元素和/或呈现搜索结果,其中搜索会话通过该用户界面发起。这样做时,操作310可以在用户界面的图形用户界面部分上动态地显示或重新配置一个或多个所选择的导航元素和/或搜索结果,和/或经由扬声器(例如,移动设备或其他形式的计算设备的集成扬声器)来输出计算机生成的对话语音。如上所述,为了便于讨论,术语“导航元素”可以单独或共同指代提供给用户的任何形式的计算机生成的导航帮助,包括但不限于重新制定的搜索、过滤器元素、对话语音元素和信息内容元素。一个或多个搜索结果的呈现也可被视为导航元素或可包括在一个或多个导航元素中。
操作312在由至少一个处理器执行时使一个或多个计算设备确定在操作302中检测到的搜索会话是否已经结束。为此,操作312可以处理通过操作304从搜索会话中提取的用户状态数据以确定例如显示用户界面的网页或移动应用是否已经关闭。可替代地,操作312可以测量用户活动的时间序列中连续查询或连续用户活动之间的时间间隔,并且如果时间间隔超过阈值持续时间,例如n分钟,则确定搜索会话已经结束,其中n是正整数)。如果操作312确定搜索会话已结束,则流程300进行到操作314。如果操作312确定搜索会话尚未结束,则流程300进行到操作316。
操作314在由至少一个处理器执行时使一个或多个计算设备从搜索会话中提取附加用户状态数据。而操作304提取在通过操作310呈现所现在的导航元素之前发生的时间戳处收集的用户状态数据,通过操作314提取的附加用户状态数据具有在通过操作310呈现所选择的导航元素之后发生的时间戳。通过操作314提取的附加用户状态数据被馈送回导航代理。导航代理然后使用附加用户状态数据作为输入,重新生成导航元素选项,重新计算奖励分数,并经由操作308重新选择导航元素。
当由至少一个处理器执行时,操作316使一个或多个计算设备在诸如参考数据存储库150之类的计算机存储器中存储会话数据,会话数据例如包括用户状态数据和奖励分数,并且更新导航代理使用的一个或多个机器学习模型,例如强化学习模型。
示例搜索会话
图3B是可以由诸如系统100之类的计算系统的至少一个设备执行的基于软件的组件和操作的实施例的简化流程图。如图3B所示的流程350的组件和操作可以使用存储在计算机存储器中的处理器可执行指令来实现。为了提供清楚的吃力,图3B的组件被描述为由计算系统100执行,但是其他实施例可以使用其他系统、设备或实现的技术。
图3B示出了会话的示例。例如,当用户输入查询并保持活动状态时,会话可以开始,直到他/她通过关闭页面或在一段很长的时间内不与页面交互来终止他们的微(在同一设备上)或宏(跨设备)搜索会话为止。
在图3B中,特定时间戳处的用户状态{State}包括历史用户状态数据352、当前搜索查询和过滤器(如果有的话)354、以及由自然语言查询解析器356产生的输出。历史用户状态数据352包括,例如,历史用户活动数据、用户活动数据,例如用户当前会话的用户交互和动作,以及用户偏好。历史用户活动数据的示例包括在用户的先前搜索会话期间收集的用户状态数据。在用户当前会话期间收集的用户活动数据的示例包括用户发起的与搜索界面的交互,例如点击、轻敲和文本输入。用户偏好的示例包括内容的点赞、关注、分享和转发。
可以并入{State}中的其他数据包括:用户的聚合活动(例如,在历史时间段内点击针对相同查询返回的搜索结果的用户的百分比);每个导航组件或子组件的选项选择和对应的置信度分数(其中导航子组件,例如过滤器推荐组件,可以是监督模型);如果语义表示是模型生成的,则用户查询的语义表示(例如,意图)和对应的置信度分数。
自然语言查询解析器356将当前搜索查询和过滤器354解析为重新制定的搜索选择(如果有的话)358、查询的语义表示357和过滤器选择(如果有的话)360。重新制定的搜索选择358的示例包括由RL代理364在先前状态期间生成的、呈现给用户的计算机生成的重新制定的搜索选项,以及对用户是否选择了任何选项的指示。过滤器选择360的示例包括由RL代理364在先前状态期间生成的、呈现给用户的计算机生成的过滤器选择,以及对用户是否选择了任何选择的指示。
查询357的语义表示的示例是搜索查询的非结构化自然语言部分的参数化语义解释,例如意图和槽;例如,如果搜索查询包含短语“软件工程师”,则为Job_Title(“软件工程师”)。自然语言查询解析器356可以使用例如LUCENE查询解析器来实现。通常,语义解析器可以使用规则引擎或统计模型,或者规则和统计建模的组合来实现。上文更详细地描述了意图和槽的示例。
RL代理364是基于强化学习的导航代理,例如上述基于RL的导航代理212。RL代理364在选择并使得执行一个或多个动作{Actions}之前,将用户过去和当前的活动封装到{State}中。RL代理364使用{Reward Signals}(奖励信号)计算一个或多个奖励分数,其包括隐式和/或显式用户反馈362。
用户反馈362的不同实例可被分配不同的奖励值。许多可能的奖励公式之一的示例包括但不限于:
+10——用户的目标已经实现(例如,向职位的潜在候选人发送消息指示正在寻找公开角色的最相关候选人的招聘人员的成功搜索会话)。
+1——用户的目标已部分实现(例如,用户点击会员资料但未发送消息)
0——用户的目标尚未实现,但会话仍处于活动状态(例如,用户使用附加过滤器细化查询,但未点击任何搜索结果或导航建议)。
-1——用户的目标尚未实现,并且会话已结束(例如,用户关闭搜索会话/页面,而未点击搜索结果或导航建议)。
RL代理364基于它已经使用奖励信号而计算的一个或多个奖励分数来选择响应于给定的用户状态而要执行的一个或多个动作。出于本公开的目的,用户反馈362可以被视为用户状态数据的组成部分。因此,此处对用户状态数据的引用可以包括用户反馈362的部分。可由RL代理364在任何给定{State}响应于{Reward Signals}而选择的{Actions}的示例包括显示搜索结果366,执行会话消歧368,显示一个或多个重新制定的搜索370,显示训练材料372,以及显示一个或多个过滤器374。图3B中所示的{Actions}对应于上述计算机生成的导航选项,但不限于所示的选项。取决于特定实现的要求,显示的选项和/或其他导航选项的任何组合可以包含在{Actions}集合中。
更详细地,{Actions}的示例包括但不限于:
显示搜索结果。如果与搜索结果相关联的置信度分数满足高置信度分数阈值,则可以由导航代理选择,高置信度分数阈值可以基于系统的特定设计的要求来确定。通常,置信度值由搜索引擎生成,作为执行搜索查询的过程的一部分。分配给搜索结果的置信度值量化了搜索结果与搜索查询匹配的程度。置信度值可以基于例如搜索结果中搜索词的出现次数。
显示搜索结果和重新制定的搜索选择——如果与搜索结果相关联的置信度分数满足中间置信度分数阈值,则可以由导航代理选择,其中中间阈值低于高阈值。在这种情况下,导航代理生成并提供重新制定的搜索选择以及搜索结果。重新制定的搜索选择是自然语言、通过针对用户在搜索会话内输入的连续查询而训练模型所生成的自由形式查询。重新制定的搜索可以促进查询扩展(例如,“还尝试”和“您是不是要……”建议)。
显示重新制定的搜索选项——如果与搜索结果相关联的置信度分数不满足中间置信度分数阈值,则可以由导航代理选择;导致呈现原始搜索查询的替代重新制定,而不显示任何搜索结果。
显示搜索结果并显示附加过滤器选择——如果与搜索结果相关联的置信度分数满足中间置信度分数阈值但不满足高阈值,则可由导航代理选择;导致呈现额外的过滤器选项以优化查询。过滤器选择有助于进一步细化查询,并为用户提供一种指定细粒度搜索条件的方法。与重新制定的搜索选择相比,过滤器选择可以基于给定过滤器类别的预定值的分类法(例如,技能过滤器的不同的预定技能列表)。
使用过滤器显示查询细化建议——如果与搜索结果相关联的置信度分数不满足中间置信度分数阈值,则可以由导航代理选择;导致呈现附加过滤器,以提高针对给定搜索查询的返回结果的准确性。
显示搜索结果、重新制定的搜索选择和过滤选择——如果与搜索结果相关联的置信分数确实满足中间置信分数阈值但用户已被确定为新用户,或者与重新制定的搜索和过滤选项相关联的奖励分数高于对应的阈值,则可以由导航代理选择。
调用对话消歧——导航选项,例如用于细化查询的过滤器选择,可以呈现为自然语言对话。例如,导航代理可以发起一个“槽引出”动作(术语),其中代理生成并向用户呈现对话式自然语言对话元素,要求用户提供缺失的信息以填补意图的一个或多个槽。类似地,导航助手可以生成并呈现对话式自然语言对话元素,这些元素要求用户细化查询或以对话风格提供有用的建议。导航代理生成的动作序列是基于RL算法的配置确定的,该算法在训练期间对动作进行采样并随着时间的推移对其进行优化以最大化长期奖励。这是使用RL优于监督学习的优势之一,它可以在动作空间上提供更好的探索。
关于如何使用搜索界面的辅导视频或帮助建议——如果用户已被确定为新用户,或与辅导视频或帮助建议相关联的奖励分数高于对应的阈值,则可由导航代理选择。
无动作——如果用户已被确定为高级用户,或者没有重新制定的搜索选择,或过滤选择具有超过对应的阈值的奖励分数,则可以由导航代理选择。
示例查询重新制定过程
图4A是可由计算系统的至少一个设备执行的操作的实施例的简化流程图。如图4A所示的流程400的操作可以使用存储在计算机存储器中的处理器可执行指令来实现。为了提供一个清楚的例子,图4A的操作被描述为由计算系统100执行,但是其他实施例可以使用其他系统、设备或实现的技术。
操作402在由至少一个处理器执行时使一个或多个计算设备确定搜索查询数据和用户状态数据。为此,操作402可以从搜索会话中提取搜索查询数据和用户状态数据。在实施例中,用户状态数据可以被表示为在搜索会话期间顺序发生的查询和奖励分数的轨迹,例如:[q0,q1,r1,q2,r2,q3,r3,q4,r4],其中q0是用户输入的初始源查询,作为初始用户状态s0,其开启了搜索会话。
随后,用户可以输入新查询或点击后续查询q1(例如被系统100视为动作a0的重新制定的搜索),此时用户的状态转换到s1。在q1之后和采取任何进一步行动之前;也就是说,在呈现任何搜索结果之前,计算立即奖励分数r1。随后,用户可以继续输入或点击新的查询q2,并重复类似的过程,直到到达搜索会话的末尾为止。在每个时间步长t,(state,action)对被收集作为(qt-1,qt),t=1...T,这些对用于计算累积长期奖励,如下所述。
操作404在由至少一个处理器执行时使一个或多个计算设备生成候选重新制定的搜索。在实施例中,候选重新制定的搜索是计算机生成的查询,其是对源查询的重新制定,其中源查询例如是用户输入到搜索界面中的查询。为了生成重新制定的搜索选项,在一些实施例中,操作404可以使用监督序列对使用MLE(最大似然估计)参数初始化的并使用策略梯度调整的基于编码器-解码器循环神经网络(RNN)的机器学习模型进行排序,例如REINFORCE Monte-Carlo Policy Gradient算法,以找到导致更大预期长期奖励的参数。在图2C中示出了可以在图4A的实现中使用的基于RNN的模型的示例配置,如上所述。
操作406在由至少一个处理器执行时使一个或多个计算设备计算每个搜索重新制定选项的奖励分数。在一个实施例中,最终奖励分数被计算为多个替代奖励分数的线性组合,其测量例如用户参与度、搜索重新制定选项与源查询的句法相似性和/或其他因素,使用公式如
r=∑N i=tλi*ri,其中N是个体奖励分数的数量并且λ是分配给个体奖励分数ri的权重值。权重值λ被设置为反映对应的奖励分数的相对重要性;并且可以是0和1之间的值。λ值可以例如手动初始化,然后使用例如贝叶斯优化方法进行调整。λ值可以设置为超参数。在一些实施例中,N=6,意味着重新制定的搜索选项的最终奖励分数是6个替代奖励分数的组合。例如,最终奖励分数可以是替代奖励分数的加权总和或替代奖励分数的加权平均值。
在一些实施例中,当用户在搜索会话中与应用软件170或搜索引擎160交互时,第一奖励分数r1可以捕捉用户参与度,使用诸如以下的公式:r1=∑T i=tγT-tci,其中T是搜索会话的时间长度,t是搜索会话内的特定时间步长,ci是用户参与的发生;例如,用户在搜索会话内单击搜索结果或导航元素。
奖励分数的其他示例包括例如r2和r3,它们各自使用不同的相似性度量来测量重新制定的搜索选项候选与源查询的句法相似性。可用于计算r2和r3的相似性度量的示例包括但不限于Jaccard相似性分数和BLEU(双语评估研究)相似性分数。其他合适的奖励分数包括r4,它通过例如测量重新制定的搜索选项候选和源查询的语义嵌入之间的相似性来测量重新制定的搜索选项候选与源查询之间的语义相似性。可以使用例如WORD2VEC创建语义嵌入。
可用于计算r的又一奖励分数是r5,其测量重新制定的搜索选项候选的“自然度(naturalness)”。自然度指示重新制定的搜索选项候选与具有高可能性是人类用户可能输入的自然语言相对应。在实施例中,自然度是使用基于机器学习的分类模型来确定的,该基于机器学习的分类模型已经使用用户群体输入的搜索查询进行了训练。在实施例中,自然度模型是使用强化学习来实现的,以使自然度模型能够基于用户反馈进行更新。
可用于计算r的又一奖励分数是r6,其是给定源查询的系统生成重新制定的搜索选项候选的概率。可以有助于重新制定的搜索候选领导的搜索会话的成功并可被并入奖励函数的其他因素包括但不限于语义连贯性、多样性和成功时间(TTS)。
语义连贯性比较重新制定的搜索选项候选与源查询之间的互信息和余弦相似度,以查看重新制定的搜索选项候选与源查询相比是否在语法上一致。多样性测量重新制定的搜索选项候选中的不同术语相对于重新制定的搜索选项候选的总长度的数量。将多样性测量合并到重新制定的搜索选项选项的奖励函数中降低了系统选择重复话语作为重新制定的搜索候选的可能性。TTS定义了搜索会话对用户变得有价值(或富有成效)的时间戳,并反映了在会话期间实现用户期望结果的速度。更具体地说,TTS测量从会话开始时间到第一次成功事件所经过的时间,其中时间可以被测量,例如,以秒为单位。
操作408在由至少一个处理器执行时使一个或多个计算设备基于在操作406中计算的奖励分数而选择一个或多个重新制定的搜索。在实施例中,强化学习代理在对从用户群体的搜索会话中提取的用户状态数据的序列进行训练后,选择一个或多个重新制定的搜索。在针对用户群体的用户状态数据的序列进行了训练后,强化学习代理确定哪些重新制定的搜索动作最有可能以例如高质量参与或减少成功时间的形式产生积极的用户反馈。
示例过滤过程
图4B是可由计算系统的至少一个设备执行的操作的实施例的简化流程图。如图4B所示的流程450的操作可以使用存储在计算机存储器中的处理器可执行指令来实现。为了提供清楚的例子,图4B的操作被描述为由计算系统100执行,但是其他实施例可以使用其他系统、设备或实现的技术。在图2D、图2E和图2F中示出了可用于实现流程450的RL代理的配置示例,如上所述。
在实施例中,流程450由对至少一个过滤器实体(即,源实体)的用户选择而触发,从而用信号通知新搜索会话的开始。过滤器实体是数据值,如关键字或日期,其对应于一个分面并且可用于扩大或缩小搜索查询。分面是可用于指代一类过滤器实体的术语。例如,“位置”是分面的示例,而“湾区”是与“位置”分面相关联的过滤器实体的示例。每个分面都具有一组过滤器实体,这些实体是根据特定实现的要求而预定义的。如本文所用,“过滤器元件”可指分面类型或过滤器实体,或两者。即,系统100的实施例可以使用所公开的技术来动态配置呈现给用户的分面类型、过滤器实体选项、或分面类型和过滤器实体选项两者。
操作452在由至少一个处理器执行时使一个或多个计算设备确定和提取一个或多个用户选择的过滤器元素的实体数据,以及用户选择的时间戳处的用户状态数据。可选地,操作452可以提取用户元数据,例如用户简档数据。操作454在由至少一个处理器执行时使一个或多个计算设备基于通过操作452获得的用户状态数据和过滤器元素数据生成一组候选过滤器元素。
为此,操作454可以使用语义嵌入来计算用户选择的过滤器元素与每个候选过滤器元素之间的语义相似性分数。操作454然后可以检索其相似性分数超过基于特定实现的要求而确定的阈值分数的前K个候选过滤器元素,其中K例如是正整数。针对过滤器元素选项收集的用户状态数据类似于上述重新制定的搜索的轨迹,但还包括,对于每个查询,新选择的过滤器元素et(如果有),其中t是相关查询的时间戳。适用于过滤器元素选项的用户活动可以包括上述用户活动。
操作456在由至少一个处理器执行时使一个或多个计算设备计算通过操作454确定的候选过滤器元素的奖励分数。在实施例中,候选过滤器元素的奖励分数被计算为动作权重向量a与实体嵌入e之间的点积。对候选滤波器元素进行采样;也就是说,每个候选过滤器元素都有不同的成功概率。
操作458在由至少一个处理器执行时使一个或多个计算设备基于在操作456中计算的奖励分数来选择过滤器。在实施例中,强化学习代理计算奖励分数r,给定用户状态s以及系统动作a(例如,过滤器元素的呈现),基于指示用户反馈的后续用户状态数据,例如点击、否定、不点击、发送消息、保存推荐过滤器等。折扣参数γ测量未来奖励的当前值,例如,未来奖励是针对后续用户状态计算的奖励分数。当γ=0时,强化学习代理只考虑即时奖励,例如,使用仅在当前状态st上接收到的反馈计算的奖励,而忽略长期奖励,例如,使用整个会话过程中接收到的反馈计算的奖励分数。当γ=1时,长期奖励被认为与即时奖励同等重要。在搜索会话中,奖励可以被定义为指示各种用户活动的相对重要性的正整数,例如,如果推荐实体没有被点击,则r=0,如果推荐实体被点击,则r=1,如果检测到积极的后续动作,例如发送消息、查看用户简档等,则r=2。为了选择过滤器,可以使用确定性策略梯度算法;例如,深度确定性策略梯度算法(DDPG)。如上所述,图2F示出了可以在操作458中使用的DDPG算法的示例。
用于动态生成过滤器元素选项的基于强化学习的方法使系统100能够适应用户行为的变化并对不同类型的查询做出不同的响应。例如,一旦用户选择了过滤器元素,系统100就动态地确定要显示的一个或多个附加过滤器和/或确定在显示器上的排列顺序,并基于呈现过滤器和后续用户状态数据(反馈)之前的用户状态数据而自动细化其他候选过滤器。
用户界面示例
图5A、图5B和图5C是可以在显示设备上显示和/或由图1的计算系统的至少一个实施例的语音/音频子系统输出的导航元素的示例屏幕截图。例如,如图5A、图5B和图5C所示的用户界面可以提供给用户界面112。
图5A示出了用户界面面板500的示例。面板500包括搜索输入框502和一组重新制定的搜索506。搜索输入框502包含搜索查询504,其是已经被用户输入到搜索输入框502的自然语言查询。使用上述基于强化学习的过程(例如,流程400),基于用户状态数据和奖励分数,已经响应于搜索查询504而识别了重新制定的搜索506。
图5B示出了可以呈现给系统确定的“新用户”的用户界面面板520的示例。尽管对于系统确定的“高级用户”可能根本不显示面板520,但对于新用户,面板520包括一组分面522和一组过滤器面板526。如上所述,系统100可以例如,通过将用户账户创建日期的时间戳与当前会话的时间戳进行比较来确定用户是“新”用户还是“高级”用户。使用上述基于强化学习的过程(例如,流程450),基于用户状态数据和奖励分数动态地生成或重新配置一组分面522和/或一组过滤器面板526和/或它们在面板520上的特定布置。
在图5B中,用户已经选择了职位分面524。响应于对分面524的用户选择,使用所公开的技术,系统100配置一组过滤面板526以在技能536和行业540上方的顶部显示职位面板528。此外,使用所公开的技术,响应于对实体532的用户选择,系统100已经动态地生成和显示分面内实体选项532、534以及跨分面实体选项538和542。
图5C示出了包括面板550和面板556的用户界面的示例。面板550包括搜索输入框552。用户已经将自然语言搜索查询554输入到搜索输入框中。使用所公开的强化学习技术,系统100可以确定搜索查询554具有低概率生成期望搜索结果,因为例如“高报酬”已经被语义解析器确定为不明确的。
系统100还已经确定对话式导航元素比其他导航选项具有更高的概率为该特定用户带来积极的用户体验。为此,系统100可以已经处理了用户元数据并且基于用户账户创建时间戳与会话时间戳的比较来确定用户是新用户。结果,系统100经由对话气球558、562以例如自然语言句子或问题的对话式提示的形式呈现导航元素。
对话气球558呈现计算机生成的对话式自然语言句子或问题,其被配置为阐明“高薪”的不明确的性质。用户在对话气球560中以工资范围作为进行响应。系统100添加用户的工资数字作为过滤器元素。对话气球562呈现过滤器。基于在搜索会话期间收集的累积用户状态数据而动态地配置对话气球558、562。例如,对话气球558、562可以使用异步文本消息传递接口或基于话音/语音的接口来实现。为了生成对话式自然语言对话元素,系统100例如可以使用例如指定自然语言输出的语法结构的模板和文本到语音(TTS)软件。
在图5C的示例中,使用了两个基于RL的导航代理:基于RL的导航子代理用于生成过滤选项并用于选择“薪水范围”过滤选项以作为选择呈现给用户。“顶级”基于RL的导航代理用于通过过滤器元素的图形表示选择对话式消歧。
示例硬件架构
根据一个实施例,这里描述的技术由至少一个专用计算设备实现。专用计算设备可以是硬连线来执行这些技术的,或者可以包括数字电子设备,例如至少一个专用集成电路(ASIC)或现场可编程门阵列(FGPA),它们被持久地编程以执行技术,或者可以包括至少一个通用硬件处理器,该处理器被编程为根据固件、存储器、其他存储或组合中的程序指令执行这些技术。此类专用计算设备还可以将定制硬连线逻辑、ASIC或FPGA与定制编程相结合以完成这些技术。专用计算设备可以是台式计算机系统、便携式计算机系统、手持设备、移动计算设备、可穿戴设备、网络设备或结合了硬连线和/或程序逻辑以实现这些技术的任何其他设备。
例如,图6是说明可在其上实施本发明的实施例的计算机系统600的框图。计算机系统600包括用于传送信息的总线602或其他通信机制,以及与总线602耦合用于处理信息的硬件处理器604。硬件处理器604可以是例如通用微处理器。
计算机系统600还包括耦合到总线602的主存储器606,例如随机存取存储器(RAM)或其他动态存储设备,用于存储要由处理器604执行的信息和指令。主存储器606也可以用于在要由处理器604执行的指令的执行期间存储临时变量或其他中间信息。当这些指令存储在处理器604可访问的非暂时性计算机可读存储介质中时,使计算机系统600成为为执行指令中指定的操作而定制的专用机器。
计算机系统600还包括只读存储器(ROM)608或耦合到总线602的其他静态存储设备,用于为处理器604存储静态信息和指令。提供存储设备610,例如磁盘或光盘,并将其耦合到总线602,用于存储信息和指令。
计算机系统600可以经由总线602耦合到输出设备612,例如显示器,例如液晶显示器(LCD)或触摸屏显示器,用于向计算机用户显示信息,或扬声器、触觉设备,或其他形式的输出设备。包括字母数字键和其他键的输入设备614耦合到总线602,用于将信息和命令选择传送到处理器604。另一种类型的用户输入设备是光标控件616,例如鼠标、轨迹球或光标方向键,用于将方向信息和命令选择传送到处理器604并用于控制显示器612上的光标移动。该输入设备通常在两个轴,即第一轴(例如,x)和第二轴(例如,y)上具有两个自由度,其允许设备指定平面中的位置。
计算机系统600可以使用定制的硬连线逻辑、至少一个ASIC或FPGA、固件和/或程序逻辑来实现这里描述的技术,这些技术与计算机系统相结合使计算机系统600成为专用机器或编程为专用机器。根据一个实施例,这里的技术由计算机系统600响应于处理器604执行包含在主存储器606中的至少一个指令序列而执行。这些指令可以从诸如存储设备610的另一存储介质读入主存储器606。包含在主存储器606中的指令序列的执行使处理器604执行这里描述的过程步骤。在替代实施例中,硬连线电路可以代替软件指令或与软件指令结合使用。
如本文所用,术语“存储介质”是指存储使机器以特定方式操作的数据和/或指令的任何非暂时性介质。这种存储介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘或磁盘,例如存储设备610。易失性介质包括动态存储器,例如主存储器606。存储介质的常见形式包括例如硬盘、固态驱动器、闪存驱动器、磁性数据存储介质、任何光学或物理数据存储介质、存储芯片等。
存储介质不同于传输介质,但可以与传输介质结合使用。传输介质参与存储介质之间的信息传递。例如,传输介质包括同轴电缆、铜线和光纤,包括构成总线602的电线。传输介质还可以采用声波或光波的形式,例如在无线电波和红外数据通信期间产生的那些。
在将至少一个指令序列传送到处理器604以供执行时可能涉及各种形式的介质。例如,指令最初可以携带在远程计算机的磁盘或固态驱动器上。远程计算机可以将指令加载到其动态存储器中,并使用调制解调器通过电话线发送指令。计算机系统600本地的调制解调器可以在电话线上接收数据并使用红外线发射器将数据转换成红外线信号。红外线检测器可以接收红外线信号中携带的数据,并且适当的电路可以将数据放置在总线602上。总线602将数据传送到主存储器606,处理器604从主存储器606检索并执行指令。主存储器606接收的指令可以可选地在由处理器604执行之前或之后存储在存储设备610上。
计算机系统600还包括耦合到总线602的通信接口618。通信接口618提供到连接到本地网络622的网络链路620的双向数据通信耦合。例如,通信接口618可以是综合服务数字网络(ISDN)卡、电缆调制解调器、卫星调制解调器或调制解调器,以提供与相应类型电话线的数据通信连接。作为另一个例子,通信接口618可以是局域网(LAN)卡以提供到兼容LAN的数据通信连接。也可以实现无线链路。在任何这样的实现中,通信接口618发送和接收携带代表各种类型信息的数字数据流的电、电磁或光信号。
网络链路620通常通过至少一个网络向其他数据设备提供数据通信。例如,网络链路620可以提供通过本地网络622到主机624或到由互联网服务提供商(ISP)626操作的数据设备的连接。ISP 626继而通过通常被称为“因特网”628的全球分组数据通信网络来提供数据通信服务。本地网络622和因特网628都使用携带数字数据流的电、电磁或光信号。通过各种网络的信号和网络链路620上的信号以及通过通信接口618的信号,它们将数字数据传送到计算机系统600和从计算机系统600传送数字数据,是传输介质的示例形式。
计算机系统600可以通过网络、网络链路620和通信接口618发送消息和接收数据,包括程序代码。在因特网示例中,服务器530可以通过因特网628、ISP 626、本地网络622和通信接口618来发送应用程序请求的代码。接收到的代码可以在接收到时由处理器604执行,和/或存储在存储设备610或其他非易失性存储器中以供以后执行。
附加的示例
下面提供了本文公开的技术的说明性示例。这些技术的实施例可以包括以下描述的任何示例或组合。
在示例1中,一种方法包括:将包括搜索查询数据和用户状态数据序列的数字数据输入到至少一个强化学习模型中;搜索查询数据是针对在会话期间经由输入设备接收的搜索查询而获得的;所述用户状态数据序列包含在响应于搜索查询而呈现搜索结果之前从会话中提取的用户状态数据;通过所述至少一个强化学习模型产生至少两个奖励分数;所述至少两个奖励分数是由至少一个强化学习模型使用用户状态数据针对多个计算机生成的导航元素选项中的至少两个导航元素计算的;使用所述至少两个奖励分数,由所述至少一个强化学习模型选择所述多个计算机生成的导航元素选项中的至少一个导航元素;响应于所述搜索查询,经由可操作地耦合到所述输入设备的输出设备输出所选择的至少一个导航元素以供呈现;其中,该方法由至少一个计算设备执行。
示例2包括示例1的主题,还包括更新用户状态数据序列以包括在多个计算机生成的导航元素选项中的至少一个导航元素已经被输出之后从会话中提取的附加用户状态数据,并且从所述至少一个强化学习模型接收使用附加用户状态数据计算的一组重新计算的奖励分数。
示例3包括示例1或示例2的主题,还包括:使用所述至少两个奖励分数,由所述强化学习模型选择一组计算机生成的可选搜索过滤器中的至少一个搜索过滤器,并响应于所述搜索查询而输出所选择的至少一个搜索过滤器以供呈现。示例4包括示例1-3中任一项的主题,还包括:使用所述至少两个奖励分数,由所述强化学习模型选择一组计算机生成的重新制定的搜索中的至少一个重新制定的搜索,并响应于所述搜索查询而输出所选择的重新制定的搜索以供呈现。示例5包括示例1-4中任一项的主题,还包括:使用所述至少两个奖励分数,由所述强化学习模型选择一组计算机生成的对话式自然语言导航元素中的至少一个对话式导航元素,并响应于所述搜索查询而输出所选择的至少一个对话式导航元素以供输出。示例6包括示例1-5中任一项的主题,在响应于在用户群体的会话期间从用户群接收到的自然语言搜索查询而向用户群呈现计算机生成的可选导航元素之后,使用指示用户群体的状态序列的群体状态数据训练所述至少一个强化学习模型。示例7包括示例1-6中任一个的主题,会话包括用户活动的时间序列,所述用户活动包括涉及搜索引擎的至少一个用户活动和涉及基于连接网络的系统的至少一个用户活动。
在示例8中,至少一个或多个非暂时性计算机可读存储介质,包括指令,当由至少一个处理器执行时,所述指令使该至少一个处理器能够执行包括以下操作的操作:将包括搜索查询数据和用户状态数据序列的数字数据输入到强化学习模型中;所述用户状态数据序列是从会话中提取的;所述搜索查询数据是针对在会话期间经由输入设备接收的搜索查询而获得的;强化学习模型是使用群体状态数据训练的;所述群体状态数据指示在响应于在用户群体的会话期间从所述用户群接收到的搜索查询而向所述用户群呈现计算机生成的重新制定的搜索之后的用户群体的状态序列;由所述强化学习模型针对至少两个计算机生成的重新制定的搜索选项而计算至少两个奖励分数;使用所述至少两个奖励分数,由所述强化学习模型选择至少两个计算机生成的重新制定的搜索选项中的至少一个重新制定的搜索;响应于搜索查询,经由可操作地耦合到所述输入设备的输出设备输出所选择的至少一个重新制定的搜索以供呈现。
示例9包括示例8的主题,其中指令进一步使得计算所述计算机生成的重新制定的搜索中的重新制定的搜索对应于自然语言句子的概率,以作为所述至少两个奖励分数中的奖励分数。示例10包括示例8或示例9的主题,其中指令进一步使得计算所述计算机生成的重新制定的搜索中的重新制定的搜索与搜索查询数据之间的语义相似性的测量,以作为所述至少两个奖励分数中的奖励分数。示例11包括示例8-10中任一个的主题,其中指令进一步促使计算计算机生成的重新制定的搜索中的重新制定的搜索内的术语的多样性相对于重新制定的搜索的长度的测量,以作为所述至少两个奖励分数中的奖励分数。示例12包括示例8-11中任一个的主题,其中指令进一步使得使用所述用户状态数据序列来计算会话期间用户参与度的测量,以作为所述至少两个奖励分数中的奖励分数。示例13包括示例8-12中任一个的主题,其中指令进一步使得计算所述搜索查询数据与计算机生成的重新制定的搜索中的重新制定的搜索之间的句法相似性的测量,以作为所述至少两个奖励分数中的奖励分数。示例14包括示例8-13中任一项的主题,其中指令进一步使得计算所述会话的开始时间与会话期间发生成功事件的时间之间的差值,以作为所述至少两个奖励分数中的奖励分数。示例15包括示例8-14中任一项的主题,其中指令进一步促使计算最终奖励分数作为一组奖励分数中的奖励分数的加权总和,并且基于最终奖励分数选择所述至少一个重新制定的搜索。
在示例16中,一种系统包括:至少一个处理器;存储器,可操作地耦合到所述至少一个处理器;存储在所述存储器中并且能够被所述至少一个处理器执行的指令,该指令包括:基于强化学习的代理,被配置为接收从会话中提取的数字数据,该会话包括与搜索引擎的用户界面的用户交互,该数字数据包括搜索查询和指示在由所述搜索引擎执行搜索查询之前发生的用户交互的用户状态数据序列;所述基于强化学习的代理被配置为使用所述搜索查询生成能够由所述用户界面呈现的多个可选导航元素;所述基于强化学习的代理被配置为使用搜索查询、用户状态数据序列和响应于由用户界面对导航元素的先前呈现而接收到的用户反馈数据,计算多个可选导航元素的多个奖励分数;所述基于强化学习的代理,被配置为使用所述多个奖励分数而选择多个可选导航元素的子集以供由所述用户界面呈现。
示例17包括示例16的主题,其中基于强化学习的代理包括使用群体状态数据训练的强化学习模型,所述群体状态数据指示在响应于在用户群体的会话期间从用户群体接收到的搜索查询而向所述用户群体呈现计算机生成的可选导航元素之后的用户群体的状态序列。示例18包括示例16或示例17的主题,其中基于强化学习的代理包括使用策略梯度方法训练的强化学习模型。示例19包括示例16-18中任一个的主题,其中系统通信地耦合到所述搜索引擎的用户界面以将所述多个可选导航元素的所选择的子集提供给所述搜索引擎的用户界面。示例20包括示例16-19中任一个的主题,其中系统通信地耦合到基于在线网络的系统的用户界面以将所述多个可选导航元素的所选择的子集提供给所述基于在线网络的系统的用户界面。
因此,说明书和附图被认为是说明性的而不是限制性的。本发明范围的唯一和排他性指标,以及申请人旨在成为本发明范围的内容,是本申请所发布的权利要求组的字面和等效范围,具体形式如下:此类权利要求发布的,包括任何后续更正。此处对包含在权利要求中的术语的任何定义都可以支配在权利要求中使用的这些术语的含义。未在权利要求中明确记载的限制、要素、特性、特征、优点或属性不应以任何方式限制权利要求的范围。说明书和附图被认为是说明性的而不是限制性的。
如本文所用,术语“包括”和“包含”(以及这些术语的变体,例如“包括”、“包括有”、“包括了”、“包含有”、“包含了”等)旨在是包含性的,并不旨在排除进一步的特征、组件、整体或步骤。
已经使用工艺步骤描述了本公开的各种特征。给定工艺步骤的功能/处理可能以不同方式并由不同系统或系统模块执行。此外,给定的工艺步骤可以分为多个步骤和/或多个步骤可以合并为一个步骤。此外,在不脱离本公开的范围的情况下可以改变步骤的顺序。
应当理解,在本说明书中公开和定义的实施例扩展到提及的或从文本或附图显而易见的各个特征的替代组合。这些不同的组合构成了实施例的各种替代方面。

Claims (20)

1.一种方法,包括:
将包括搜索查询数据和用户状态数据序列的数字数据输入到至少一个强化学习模型中;
所述搜索查询数据是针对在会话期间经由输入设备接收的搜索查询而获得的;
所述用户状态数据序列包含在响应于所述搜索查询而呈现搜索结果之前从所述会话中提取的用户状态数据;
通过所述至少一个强化学习模型产生至少两个奖励分数;
所述至少两个奖励分数是由所述至少一个强化学习模型使用所述用户状态数据针对多个计算机生成的导航元素选项中的至少两个导航元素计算的;
使用所述至少两个奖励分数,由所述至少一个强化学习模型选择所述多个计算机生成的导航元素选项中的至少一个导航元素;
响应于所述搜索查询,经由可操作地耦合到所述输入设备的输出设备输出所选择的至少一个导航元素以供呈现;
其中,所述方法由至少一个计算设备执行。
2.如权利要求1所述的方法,还包括更新所述用户状态数据序列以包括在所述多个计算机生成的导航元素选项中的所述至少一个导航元素已经被输出之后从所述会话中提取的附加用户状态数据,并且从所述至少一个强化学习模型接收使用所述附加用户状态数据计算的一组重新计算的奖励分数。
3.如权利要求1所述的方法,还包括:使用所述至少两个奖励分数,由所述强化学习模型选择一组计算机生成的可选搜索过滤器中的至少一个搜索过滤器,并响应于所述搜索查询而输出所选择的至少一个搜索过滤器以供呈现。
4.如权利要求1所述的方法,还包括:使用所述至少两个奖励分数,由所述强化学习模型选择一组计算机生成的重新制定的搜索中的至少一个重新制定的搜索,并响应于所述搜索查询而输出所选择的重新制定的搜索以供呈现。
5.如权利要求1所述的方法,还包括:使用所述至少两个奖励分数,由所述强化学习模型选择一组计算机生成的对话式自然语言导航元素中的至少一个对话式导航元素,并响应于所述搜索查询而输出所选择的至少一个对话式导航元素以供输出。
6.如权利要求1所述的方法,在响应于在用户群体的会话期间从所述用户群体接收到的自然语言搜索查询而向所述用户群体呈现计算机生成的可选导航元素之后,使用指示所述用户群体的状态序列的群体状态数据训练所述至少一个强化学习模型。
7.如权利要求1所述的方法,所述会话包括用户活动的时间序列,所述用户活动包括涉及搜索引擎的至少一个用户活动和涉及基于连接网络的系统的至少一个用户活动。
8.至少一个或多个非暂时性计算机可读存储介质,包括指令,当由至少一个处理器执行时,所述指令使所述至少一个处理器能够执行包括以下操作的操作:
将包括搜索查询数据和用户状态数据序列的数字数据输入到强化学习模型中;
所述用户状态数据序列是从会话中提取的;
所述搜索查询数据是针对在所述会话期间经由输入设备接收的搜索查询而获得的;
所述强化学习模型是使用群体状态数据训练的;
所述群体状态数据指示在响应于在用户群体的会话期间从所述用户群体接收到的搜索查询而向所述用户群体呈现计算机生成的重新制定的搜索之后的所述用户群体的状态序列;
由所述强化学习模型针对至少两个计算机生成的重新制定的搜索选项而计算至少两个奖励分数;
使用所述至少两个奖励分数,由所述强化学习模型选择所述至少两个计算机生成的重新制定的搜索选项中的至少一个重新制定的搜索;
响应于所述搜索查询,经由可操作地耦合到所述输入设备的输出设备输出所选择的至少一个重新制定的搜索以供呈现。
9.如权利要求8所述的至少一种非暂时性计算机可读存储介质,其中,所述指令进一步使得计算所述计算机生成的重新制定的搜索中的重新制定的搜索对应于自然语言句子的概率,以作为所述至少两个奖励分数中的奖励分数。
10.如权利要求8所述的至少一种非暂时性计算机可读存储介质,其中,所述指令进一步使得计算所述计算机生成的重新制定的搜索中的重新制定的搜索与所述搜索查询数据之间的语义相似性的测量结果,以作为所述至少两个奖励分数中的奖励分数。
11.如权利要求8所述的至少一种非暂时性计算机可读存储介质,其中,所述指令进一步使得计算所述计算机生成的重新制定的搜索中的重新制定的搜索内的术语的多样性相对于所述重新制定的搜索的长度的测量结果,以作为所述至少两个奖励分数中的奖励分数。
12.如权利要求8所述的至少一种非暂时性计算机可读存储介质,其中,所述指令进一步使得使用所述用户状态数据序列来计算所述会话期间用户参与度的测量结果,以作为所述至少两个奖励分数中的奖励分数。
13.如权利要求8所述的至少一种非暂时性计算机可读存储介质,其中,所述指令进一步使得计算所述搜索查询数据与所述计算机生成的重新制定的搜索中的重新制定的搜索之间的句法相似性的测量结果,以作为所述至少两个奖励分数中的奖励分数。
14.如权利要求8所述的至少一种非暂时性计算机可读存储介质,其中,所述指令进一步使得计算所述会话的开始时间与所述会话期间发生成功事件的时间之间的差值,以作为所述至少两个奖励分数中的奖励分数。
15.如权利要求9所述的至少一个非暂时性计算机可读存储介质,其中,所述指令进一步使得计算最终奖励分数作为一组奖励分数中的奖励分数的加权总和,并且基于所述最终奖励分数选择所述至少一个重新制定的搜索。
16.一种系统,包括:
至少一个处理器;
存储器,其可操作地耦合到所述至少一个处理器;
存储在所述存储器中并且能够被所述至少一个处理器执行的指令,所述指令包括:
基于强化学习的代理,其被配置为接收从会话中提取的数字数据,所述会话包括与搜索引擎的用户界面的用户交互,所述数字数据包括搜索查询和指示在由所述搜索引擎执行所述搜索查询之前发生的用户交互的用户状态数据序列;
所述基于强化学习的代理被配置为使用所述搜索查询而生成能够由所述用户界面呈现的多个可选导航元素;
所述基于强化学习的代理被配置为使用所述搜索查询、所述用户状态数据序列和响应于由所述用户界面对导航元素的先前呈现而接收到的用户反馈数据,计算所述多个可选导航元素的多个奖励分数;
所述基于强化学习的代理被配置为使用所述多个奖励分数而选择所述多个可选导航元素的子集以供由所述用户界面呈现。
17.如权利要求16所述的系统,其中,所述基于强化学习的代理包括使用群体状态数据训练的强化学习模型,所述群体状态数据指示在响应于在用户群体的会话期间从所述用户群体接收到的搜索查询而向所述用户群体呈现计算机生成的可选导航元素之后的所述用户群体的状态序列。
18.如权利要求16所述的系统,其中,所述基于强化学习的代理包括使用策略梯度方法训练的强化学习模型。
19.如权利要求16所述的系统,其中,所述系统通信地耦合到所述搜索引擎的用户界面以将所述多个可选导航元素的所选择的子集提供给所述搜索引擎的用户界面。
20.如权利要求16所述的系统,其中,所述系统通信地耦合到基于在线网络的系统的用户界面以将所述多个可选导航元素的所选择的子集提供给所述基于在线网络的系统的用户界面。
CN202111134663.9A 2020-09-30 2021-09-27 搜索界面的导航代理 Pending CN114329256A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/038901 2020-09-30
US17/038,901 US20220100756A1 (en) 2020-09-30 2020-09-30 Navigation agent for a search interface

Publications (1)

Publication Number Publication Date
CN114329256A true CN114329256A (zh) 2022-04-12

Family

ID=80821271

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111134663.9A Pending CN114329256A (zh) 2020-09-30 2021-09-27 搜索界面的导航代理

Country Status (2)

Country Link
US (1) US20220100756A1 (zh)
CN (1) CN114329256A (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113519000A (zh) * 2019-01-17 2021-10-19 皇家飞利浦有限公司 用于对话内的多角度论述的系统
US11720964B2 (en) * 2021-02-22 2023-08-08 Jpmorgan Chase Bank, N.A. System and method for natural language order fill
US12101279B2 (en) * 2021-08-27 2024-09-24 Accenture Global Solutions Limited Dynamic goal-oriented dialogue with virtual agents
US11886523B2 (en) * 2022-04-19 2024-01-30 Dell Products L.P. Machine learning on search sessions to provide intelligent search results
CN114861091B (zh) * 2022-07-11 2022-11-01 成都秦川物联网科技股份有限公司 智慧城市交通路径确定方法、物联网系统、装置及介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6144958A (en) * 1998-07-15 2000-11-07 Amazon.Com, Inc. System and method for correcting spelling errors in search queries
US6766320B1 (en) * 2000-08-24 2004-07-20 Microsoft Corporation Search engine with natural language-based robust parsing for user query and relevance feedback learning
WO2007002820A2 (en) * 2005-06-28 2007-01-04 Yahoo! Inc. Search engine with augmented relevance ranking by community participation
US8650210B1 (en) * 2010-02-09 2014-02-11 Google Inc. Identifying non-search actions based on a search query
US9557903B2 (en) * 2012-02-13 2017-01-31 Lg Electronics Inc. Method for providing user interface on terminal
US9928466B1 (en) * 2014-07-29 2018-03-27 A9.Com, Inc. Approaches for annotating phrases in search queries
US9460713B1 (en) * 2015-03-30 2016-10-04 Google Inc. Language model biasing modulation
EP3399915A4 (en) * 2015-08-28 2019-11-27 Atentiv LLC SYSTEM AND PROGRAM FOR TRAINING COGNITIVE SKILLS
US10713317B2 (en) * 2017-01-30 2020-07-14 Adobe Inc. Conversational agent for search
US20180232648A1 (en) * 2017-02-14 2018-08-16 Cognitive Scale, Inc. Navigating a Hierarchical Abstraction of Topics via an Augmented Gamma Belief Network Operation
US10922360B2 (en) * 2017-08-30 2021-02-16 International Business Machines Corporation Ancillary speech generation via query answering in knowledge graphs
US11138378B2 (en) * 2019-02-28 2021-10-05 Qualtrics, Llc Intelligently summarizing and presenting textual responses with machine learning
SG11202112616TA (en) * 2019-05-21 2021-12-30 Paolo Adriano Serafini Casino management system and method of managing and evaluating casino staff
US11887585B2 (en) * 2019-05-31 2024-01-30 Apple Inc. Global re-ranker
US11442932B2 (en) * 2019-07-16 2022-09-13 Thoughtspot, Inc. Mapping natural language to queries using a query grammar

Also Published As

Publication number Publication date
US20220100756A1 (en) 2022-03-31

Similar Documents

Publication Publication Date Title
JP7421604B2 (ja) モデル事前訓練方法および装置、テキスト生成方法および装置、電子機器、記憶媒体並びにコンピュータプログラム
US11062270B2 (en) Generating enriched action items
US11699033B2 (en) Systems and methods for guided natural language text generation
US20220100756A1 (en) Navigation agent for a search interface
US11062095B1 (en) Language translation of text input using an embedded set for images and for multilanguage text strings
US8156060B2 (en) Systems and methods for generating and implementing an interactive man-machine web interface based on natural language processing and avatar virtual agent based character
CN112262421B (zh) 自动学习复习的可编程接口
US8818795B1 (en) Method and system for using natural language techniques to process inputs
US20070203869A1 (en) Adaptive semantic platform architecture
US20230306205A1 (en) System and method for personalized conversational agents travelling through space and time
US20220300712A1 (en) Artificial intelligence-based question-answer natural language processing traces
WO2021140469A1 (en) Recommendation method and system
CN111382563B (zh) 文本相关性的确定方法及装置
Wu et al. Typical opinions mining based on Douban film comments in animated movies
US11354321B2 (en) Search results ranking based on a personal medical condition
Jung et al. LN-Annote: An alternative approach to information extraction from emails using locally-customized named-entity recognition
US11989217B1 (en) Systems and methods for real-time data processing of unstructured data
Vasiliou Implementation of intelligent system to support remote telemedicine services using chatbots technology
US12079292B1 (en) Proactive query and content suggestion with generative model generated question and answer
US20240354503A1 (en) Generative thought starters
US20240362279A1 (en) Visual and Audio Multimodal Searching System
US20240289863A1 (en) Systems and methods for providing adaptive ai-driven conversational agents
WO2023225264A1 (en) Personalized text suggestions
Härkönen Computationally clarifying user intent for improved question answering
Bizuayehu Amharic chatbot on Ethiopian civil code law using a deep learning approach

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