掌桥专利:专业的专利平台
掌桥专利
首页

CAPTCHA自动助理

文献发布时间:2023-06-19 09:44:49


CAPTCHA自动助理

背景技术

人类可以通过在本文中称为“自动助理”(也称为“数字代理”、“聊天机器人”、“交互式个人助理”、“智能个人助理”、“虚拟助理”、“辅助应用”、“会话代理”等)的交互式软件应用参与人机对话。例如,人类(当与自动助理交互时可以称为“用户”)可以使用口头自然语言输入(即,话语)向自动助理提供命令和/或请求,在一些情况下可以将口头自然语言输入转换成文本(或其它语义表示),然后进行处理。而且,例如,用户可以通过提供文本(例如,键入的)自然语言输入来另外地或替代地提供请求。自动助理通过提供响应的用户界面输出来对请求作出响应,所述响应的用户界面输出可以包括可听和/或可视的用户界面输出。

如上所述,许多自动助理被配置成经由口头话语进行交互。经由客户端设备的一个或多个麦克风在客户端设备处接收口头话语。例如,客户端设备的每个麦克风生成对应的音频信号,所述音频信号根据在麦克风处检测到的声音随时间变化。出于例如自动语音识别(例如,将音频信号转换成文本、音素和/或其它语义表示)的一种或多种目的,可以(在客户端设备和/或远程服务器设备处)处理经由麦克风接收到的音频信号。

用户通过其与自动助理交互的客户端设备包括辅助界面,所述辅助界面向客户端设备的用户提供用于与自动助理交互(例如,从用户接收口头和/或键入的输入并且提供合适的可听和/或图形响应)的界面,并且所述辅助界面与实现自动助理的一个或多个附加组件(例如,处理用户输入并且生成合适响应的远程服务器设备)介接。

随着自动助理与人类之间的交互变得越来越频繁和复杂,恶意实体(“垃圾邮件发送者”)越来越有可能在人机对话期间生成模仿人类的恶意软件代理。这些恶意软件代理或“垃圾邮件机器人”会中断助理与人类之间的预期的请求和响应流,以达到恶意和/或破坏性目的。例如,自动助理的任务可以是与人类联系和通信(例如,通过电话)以执行任务,但是自动助理可以替代地连接到垃圾邮件机器人。最终的通信可能与垃圾邮件机器人进行,而不是如预期和期望那样与现实的人进行。垃圾邮件发送者可以利用这种垃圾邮件机器人来干扰自动助理与人主体之间的预期通信。作为另一示例,垃圾邮件机器人可以被编程为发起与自动助理的对话,所述自动助理的任务是为特定服务(例如理发、按摩、美甲等)安排预订,例如,使得垃圾邮件机器人(可能由例如竞争对手部署)可以创建虚假预约来破坏部署自动助理的业务。

可以使用CAPTCHA(“Completely Automated Public Turing test to tellComputers and Humans Apart(全自动区分计算机和人类的公共图灵测试)”)助理来区分计算机生成的通信(例如,语音和/或打字)与源自人类的通信。例如,配置有CAPTCHA能力的自动助理可以与应该是人类,但可能是垃圾邮件机器人的远程实体进行交互。配备CAPTCHA的自动助理可以基于交互来确定响应来自计算机而非人类的可能性。如果期望是人类并且CAPTCHA助理确定来源是计算机,则可以将来源标记为潜在的垃圾邮件机器人。

发明内容

由于垃圾邮件机器人会中断预期的请求和响应流,因此与不期望的助理进行交互会浪费大量的计算时间。此外,垃圾邮件发送者可以在僵尸程序被识别出并受到阻止后提高僵尸程序的复杂性。因此,本文所公开的实现方式涉及实现自适应CAPTCHA(“全自动区分计算机和人类的公共图灵测试”)助理,所述CAPTCHA助理区分计算机生成的通信(例如,语音和/或打字)与源自人类的通信。

在一些实现方式中,可以训练一个或多个生成对抗网络(“GAN”)的一个或多个组件以与远程实体进行交互,以预测远程实体是预期的人类还是正尝试模仿人类的垃圾邮件机器人。配备CAPTCHA的自动助理可以利用可以提供给远程实体的质询短语,并确定来自远程实体的响应是计算机生成的还是人类生成的。例如,自动助理可以向远程实体提供问题,所述问题可能会被垃圾邮件机器人顺利地处理,但是会使人感到困惑。自动助理可以基于响应确定远程实体是计算机或人类的可能性。而且,例如,自动助理可以提供人类可能会处理,但是计算机不太可能有意义地处理的质询短语,并且基于来自远程实体的响应来确定远程实体是计算机还是人类。

GAN由生成器和鉴别器组成。生成器和鉴别器都可以是机器学习模型,例如神经网络(例如,前馈、递归等),并且可以串联地进行训练。在训练期间,生成器基于一个或多个输入生成合成输出并将合成输出提供给鉴别器。作为标记的训练示例,鉴别器接收合成输出和单独的非合成人类输出(例如,地面真实数据、人类生成的数据等)。应用鉴别器以生成每个训练示例由计算机生成还是由人生成的预测。随后将与每个训练示例相关联的标记(例如,所述标记将示例标记为合成的或人类生成的)与由鉴别器生成的对应输出相比较。基于此比较,可以应用例如反向传播和梯度下降的各种训练技术来串联地训练鉴别器和生成器两者。一旦经过全面训练,就可以优化生成器以提供鉴别器几乎无法区分为人类生成的还是计算机生成的输出,并且可以优化鉴别器以将人类输出与计算机输出区分开。

在本公开的上下文中,在一些实现方式中,文本质询短语作为输入应用于第一生成器(在本文中称为答案生成器或“A-生成器”)。A-生成器生成标记为“计算机生成”的合成答案。在一些情况下,将标记的合成答案与相关联的文本质询短语一起作为输入应用于第一鉴别器(本文中称为答案鉴别器或A-鉴别器),并且A-鉴别器生成预测合成答案源自A-生成器还是人类的输出。此外,向A-鉴别器提供文本质询短语的人类答案(标记为“人类生成的”)并且确定所述人类答案源自人类还是计算机。标记与A-鉴别器的输出之间的差(或“误差”)可以用于训练A-鉴别器和A-生成器两者,如先前所描述。

A-生成器可以生成其作为输入接收的文本质询短语的合成答案。在一些实现方式中,文本质询短语可以与已知的人类答案相关联并且A-生成器可以修改已知的人类答案。例如,A-生成器可以进一步包括随机噪声矢量作为输入,所述随机噪声矢量用于修改已知的人类答案并将修改后的已知人类答案提供为对给定文本质询短语的合成答案。

在一些实现方式中,第二GAN可以用于生成文本质询短语。第二GAN可以包括接收文本请求作为输入并且生成文本质询短语的第二生成器(本文中称为质询生成器或“C-生成器”)。文本质询短语可以是例如被修改成生成文本质询短语的文本请求,其可能会得出来自远程实体的答案,A-鉴别器会将所述答案正确地解释为源自人类或源自计算机。而且,例如,C-生成器可以利用两个人类之间和/或人类与已知(例如,受信任)自动助理之间的交互,以生成可能的文本质询短语。而且,例如,C-生成器可以生成基于已知问题形式的文本质询短语,所述文本质询短语可能导致从识别为人类的人类以及从可能由A-鉴别器识别为计算机的计算机产生响应。

生成的(即,合成的)文本质询短语可以作为输入应用于第二鉴别器(下文称为质询鉴别器或“C-鉴别器”),所述第二鉴别器可以确定例如生成的文本质询短语是否可用于训练A-GAN(即,A-生成器和A-鉴别器)。在一些实现方式中,C-鉴别器接收生成的文本质询短语和一个或多个附加输入,以确定文本质询短语(如果提供给远程实体)是否有可能从可区分为人类的人类产生答案和/或从可区分为垃圾邮件机器人的计算机产生答案。例如,C-鉴别器可以接收原始文本请求(例如,C-生成器输入)、由A-生成器基于文本质询短语生成的合成答案,和/或除了由C-生成器生成的文本质询短语之外的A-鉴别器的输出,以预测文本质询短语是否可用于区分人类与僵尸程序。与在A-GAN中一样,训练C-鉴别器以基于A-鉴别器是否正确地预测来改进对特定文本质询短语是否有用的预测。因此,当与C-鉴别器串联训练时,C-生成器被优化以提供文本质询短语,所述文本质询短语可用于提供给潜在的僵尸程序代理,以便基于C-鉴别器的预测得出区分人类与僵尸程序的响应。

可以基于人类与助理(垃圾邮件机器人、人类和/或已知的认可助理)之间的后续交互来进一步训练和改善C-GAN和A-GAN。因此,由于GAN的动态本质,在识别改进的垃圾邮件机器人时,可以通过配备CAPTCHA的自动助理的改进复杂性来满足垃圾邮件机器人的改进复杂性。此外,配备CAPTCHA的自动助理需要最少的人类干预来进行训练,从而引起助理与其正尝试识别的垃圾邮件机器人一起不断发展。

在一些实现方式中,配备CAPTCHA的自动助理可以用作自动助理与潜在的垃圾邮件机器人之间的交互中的层。例如,用户可以向自动助理提交请求,所述请求要求自动助理与预期是人类的远程实体进行交互。自动助理可以生成文本请求以提供给远程实体并提供所述请求。远程实体随后可以提供文本请求的答案,然后可以将答案提供给受训A-鉴别器,这随后可以确定答案由人类还是计算机提供。一个或多个组件随后可以利用A-鉴别器输出来影响与代理的进一步交互(例如,将代理标记为垃圾邮件,将代理标记为人类,改变认证参数,确定对代理是人还是计算机的可能性的置信度太低而无法确信地标记代理)。

在一些实现方式中,C-生成器可以独立地生成文本质询短语以提供给远程实体,并且可以将远程实体的响应提供给A-鉴别器以确定答案更可能是人类还是计算机。因此,例如,C-生成器可以响应于用户请求而修改由自动助理生成的文本请求,并且将修改后的文本请求提供给远程实体。同样,基于来自远程实体的响应,A-鉴别器可以确定答案来自人类还是由计算机生成。因此,受训C-生成器可以提供可用于区分人类与僵尸程序的质询短语,并且A-鉴别器可以基于远程实体的答案来确定人类还是计算机提供所述答案。

提供以上描述作为本公开的一些实现方式的概述。下文提供对这些和其它实现方式的进一步描述。

在一些实现方式中,提供一种由一个或多个处理器执行的方法,所述方法包括:提供多个文本质询短语,其中每个文本质询短语包括质询,所述质询被配置成从自然语言对话软件代理得出响应;将多个文本质询短语作为输入应用于第一生成器机器学习模型,以生成相应的多个合成答案,其中多个合成答案中的每个相应合成答案对相应文本质询中包括的质询作出响应;向多个合成答案中的每一个分配指示其由自然语言对话软件代理生成的标记;向多个人类生成的答案中的每一个分配指示其由人类生成的标记;将多个答案作为输入应用于第一鉴别器机器学习模型,以生成相应的多个CAPTCHA输出,其中多个CAPTCHA输出中的每个相应CAPTCHA输出包括对多个答案中的相应答案由自然语言对话软件代理还是人类生成的预测,并且其中多个答案包括多个合成答案和多个人类生成的答案;以及基于分配给多个答案的标记与多个CAPTCHA输出的比较训练第一生成器和第一鉴别器机器学习模型。

本文所公开的技术的这些和其它实现方式可以任选地包括以下特征中的一个或多个。

在各种实现方式中,所述方法还可以包括将多个文本请求作为输入应用于第二生成器机器学习模型,以分别生成多个文本质询短语。在各种实现方式中,多个文本请求可以被配置成从自然语言对话软件代理得出文本质询短语。在各种实现方式中,可以结合第二鉴别器机器学习模型来训练第二生成器机器学习模型,并且其中第二鉴别器机器学习模型被配置成将多个文本请求应用为输入以生成输出。

在各种实现方式中,第一生成器机器学习模型可以是神经网络。在各种实现方式中,第一鉴别器机器学习模型可以是神经网络。在各种实现方式中,第一生成器机器学习模型可能以噪声矢量为条件。在各种实现方式中,第一鉴别器机器学习模型可能以噪声矢量为条件。

在另一方面中,由一个或多个处理器实施的用于使用全自动公共图灵测试(“CAPTCHA”)以确定来自远程实体的传入通信是计算机生成的还是人类生成的方法可以包括:选择文本质询短语,其中选择文本质询短语以得出指示远程实体是人类还是合成的响应;向远程实体提供文本质询短语;响应于提供文本质询短语,从远程实体接收答案;将指示答案的数据作为输入分配在鉴别器机器学习模型上,以生成CAPTCHA预测,其中通过以下操作训练鉴别器机器学习模型以生成CAPTCHA预测:向鉴别器机器学习模型提供标记为合成的合成答案和标记为人类的人类答案,将由鉴别器机器学习模型输出的CAPTCHA预测与标记相比较,并且基于所述比较训练鉴别器机器学习模型;基于由鉴别器机器学习模型生成的输出,确定答案是计算机生成还是人类生成的CAPTCHA预测;以及基于CAPTCHA预测将远程实体分类为人类或合成的。

在各种实现方式中,文本质询短语可以由生成器机器学习模型生成。在各种实现方式中,可以训练生成器机器学习模型以生成文本质询短语,所述文本质询短语被配置成得出答案,所述答案在作为输入应用于鉴别器机器学习模型时将使鉴别器机器学习模型生成输出,所述输出预测答案是人类生成的还是计算机生成的。在各种实现方式中,所述方法还可以包括:接收文本请求,其中所述文本请求基于用户的用户动作;将文本请求作为输入应用于生成器机器学习模型;以及从生成器机器学习模型接收文本质询短语,其中文本质询短语基于文本请求。

另外,一些实现方式包括一个或多个计算设备的一个或多个处理器(例如,中央处理单元(CPU)、图形处理单元(GPU)和/或张量处理单元(TPU)),其中一个或多个处理器可操作以执行存储在相关联存储器中的指令,并且其中指令被配置成使得执行上述方法中的任一个。一些实现方式还包括一个或多个非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质存储可由一个或多个处理器执行以执行上述方法中的任一个的计算机指令。

应理解,本文中更详细描述的前述概念和附加概念的所有组合被认为是本文公开的主题的一部分。例如,出现在本公开的结尾处的要求保护的主题的所有组合被认为是本文公开的主题的一部分。

附图说明

图1是可以实现本文所公开的实现方式的示例环境的框图。

图2说明生成对抗网络(GAN)的示例。

图3说明用于实现CAPTCHA助理的各种方法的流程图。

图4说明根据本文所描述的实现方式的训练CAPTCHA助理的示例。

图5说明根据本文所描述的实现方式的用于训练CAPTCHA助理的示例方法的流程图。

图6说明根据本文所描述的实现方式的利用受训CAPTCHA助理的示例。

图7是根据本文所公开的实现方式的用于利用受训CAPTCHA助理的示例方法的流程图。

图8说明计算设备的示例架构。

具体实施方式

现在转向图1,说明可以实现本文所公开的技术的示例环境。示例环境包括CAPTCHA(“全自动区分计算机和人类的公共图灵测试”)助理110和远程实体160。尽管CAPTCHA助理110在图1中被说明为单个组件,但是应理解,CAPTCHA助理110的一个或多个模块和/或方面可以全部或部分地由一个或多个计算系统实现。例如,在一些实现方式中,第一组模块和/或方面由远程系统的一个或多个处理器实现,而第二组模块和/或方面由与CAPTCHA助理110进行网络通信的一个或多个单独的远程服务器设备的一个或多个处理器实现。远程服务器设备可以是例如高性能远程服务器设备的集群,所述远程服务器设备处理来自一个或多个客户端设备的请求,以及来自附加设备的请求。例如,CAPTCHA助理110可以从客户端设备接收包括一个或多个请求的音频数据,并且CAPTCHA助理110可以向远程实体160提交一个或多个命令和/或请求。类似地,远程实体160可以向CAPTCHA助理110提供音频数据和/或其它请求,然后CAPTCHA助理可以处理音频数据和/或请求并向客户端设备提供一个或多个附加请求和/或命令。

CAPTCHA助理110包括对话处理引擎120,所述对话处理引擎经由客户端设备和/或远程实体160的用户界面输入和输出设备促进与用户进行人机对话会话。输出设备的一个此种示例是客户端设备的扬声器,并且用户界面输入设备的一个此种示例是客户端设备的一个或多个麦克风。例如,用户可以通过说出由客户端设备的一个或多个麦克风检测到的口头话语作为输出来提供引导至CAPTCHA助理110的用户界面输入。在一些实现方式中,远程实体160可以包括例如电话的设备,所述设备允许远程实体160的用户向CAPTCHA助理110提供音频数据。例如,CAPTCHA助理110可以发起与远程实体160的通信信道。通信信道可以是例如经由蜂窝通信信道、互联网语音通信和/或允许CAPTCHA助理110在CAPTCHA助理110的一个或多个组件与远程实体160之间发送和接收音频通信数据的其它通信信道。

对话处理引擎120包括STT(“语音转文本”)模块122、TTS(“文本转语音”)模块124和NLP(“自然语言处理”)模块126。在一些实现方式中,可以在与CAPTCHA助理110分开的组件中省略、组合和/或实现对话处理引擎120的引擎和/或模块中的一个或多个。而且,在一些实现方式中,对话处理引擎120可以包括附加和/或替代引擎和/或模块。此外,如上所述,CAPTCHA助理110的每个引擎和/或模块可以全部或部分地在客户端设备处、全部或部分地在一个或多个远程服务器设备上,和/或由远程实体160的一个或多个组件实现。

在一些实现方式中,对话处理引擎120在一个或多个受训声学模型上处理音频数据,以生成音频数据的一个或多个语义表示。语义表示可以包括例如音素和/或文本。对话处理引擎120可以包括STT 122模块,所述模块可以基于直接基于使用受训声学模型的处理而生成的音素来生成文本。在一些实现方式中,受训声学模型可以是神经网络模型,所述神经网络模型可以包括管线或可以是管线的一部分并且可以基于大型音频数据语料库进行训练,所述管线包括例如一个或多个长短期记忆(LSTM)层。

在生成来自CAPTCHA助理110的响应输出时,CAPTCHA助理110可以利用由对话处理引擎120的一个或多个组件生成的语义表示。例如,在音频数据捕获从客户端设备接收的用户的口头话语的情况下,STT模块122可以生成口头话语的文本表示,并且CAPTCHA助理110可以生成响应的可听和/或图形输出以提供给例如远程实体160,所述响应的可听和/或图形输出对口头话语作出响应并且基于口头话语来确定。然后,CAPTCHA助理110可以使响应输出在客户端设备和/或远程实体160处(例如,以听觉方式和/或以图形方式)呈现。在一些实现方式中,响应输出可以包括文本数据,并且TTS模块124将文本数据(例如,由CAPTCHA助理110制定的自然语言响应)转换成计算机生成的音频数据。随后可以经由远程实体160的一个或多个扬声器呈现计算机生成的音频数据。

CAPTCHA助理110的NLP模块126(替代地称为“自然语言理解引擎”)处理自由形式的自然语言输入,并且基于自然语言输入生成带注释输出,以供CAPTCHA助理110的一个或多个其它组件使用。例如,自然语言处理器126可以处理自然语言自由形式的输入,所述自然语言自由形式的输入是由用户经由客户端设备提供的音频数据的转换的文本输入。生成的带注释输出可以包括自然语言输入的一个或多个注释,以及任选地自然语言输入的一个或多个(例如,所有)词项。

在一些实现方式中,自然语言处理器126被配置成识别和注释自然语言输入中的各种类型的语法信息。例如,自然语言处理器126可以包括语音标注器(未描绘)的一部分,所述语音标注器被配置成用其语法角色来注释词项。而且,例如,在一些实现方式中,自然语言处理器126可以另外地和/或替代地包括依赖性分析器(未描绘),所述依赖性分析器被配置成确定自然语言输入中的词项之间的语法关系。

在一些实现方式中,自然语言处理器126可以另外地和/或替代地包括实体标注器(未描绘),所述实体标注器被配置成注释一个或多个片段中的实体引用,例如,对人(包括例如,文学人物、名人、公众人物等)、组织、位置(真实和虚拟)等的引用。自然语言处理器126的实体标注器可以以较高的粒度级别(例如,以使得能够识别对例如人的实体类别的所有引用)和/或较低的粒度级别(例如,以使得能够识别对例如特定人员的特定实体的所有引用)注释对实体的引用。实体标注器可以依赖于自然语言输入的内容来解析特定实体,和/或可以任选地与知识图或其它实体数据库进行通信以解析特定实体。

在一些实现方式中,自然语言处理器126可以另外地和/或替代地包括共指解析器(未描绘),所述共指解析器被配置成基于一个或多个语境线索对相同实体的引用进行分组或“聚集”。例如,共指解析器可以用于将自然语言输入“I liked Hypothetical Cafélasttime we ate there(我喜欢上次在那儿用餐的假想咖啡厅)”中的词项“there(那儿)”解析成“Hypothetical Café(假想咖啡厅)”。

在一些实现方式中,自然语言处理器126的一个或多个组件可以依赖于来自对话处理引擎120的一个或多个其它组件的注释。例如,在一些实现方式中,在注释对特定实体的所有提及时,命名的实体标注器可以依赖于来自共指解析器和/或依赖性分析器的注释。而且,例如,在一些实现方式中,在使对相同实体的引用聚集时,共指解析器可以依赖于来自依赖性分析器的注释。在一些实现方式中,在处理特定自然语言输入时,自然语言处理器126可以使用相关的先前输入和/或特定自然语言输入之外的其它相关数据来确定一个或多个注释。

CAPTCHA助理110还包括第一生成对抗网络A-GAN(在本文中也称为“答案-GAN”)130。A-GAN包括A-生成器(或答案-生成器)132和A-鉴别器(或答案-鉴别器)134。A-生成器132例如基于人类生成的音频数据来生成合成音频数据,并且可以将合成音频数据和人类(或“真实”)音频数据提供给A鉴别器134,从而确定音频数据是真实的还是合成的。A-生成器132和A-鉴别器134各自可以是例如神经网络(例如,前馈、递归、卷积等),和/或一个或多个其它机器学习模型。

参考图2,说明通用GAN。生成器205例如从数据的数据库中接收实际(例如,地面真实)数据220,所述数据是从人类之间和/或人类与自动助理之间的一个或多个音频会话识别的。然后,生成器205利用噪声矢量(在本文中也称为“Z-矢量”)215将例如人类话音数据的实际数据220改变为合成数据225。将合成数据标记为“合成的”并且将合成数据提供给鉴别器210。此外,将实际数据220标记为“真实的”或“人类生成的”并且将实际数据提供给鉴别器210。鉴别器210随后为每个数据集确定给定输入是计算机生成(即,合成)还是人类生成(即,真实)的预测230。

在训练期间,可以将预测230与标签进行比较以确定误差。基于这些误差,对鉴别器210进行训练以更好地预测后续数据集,并且对生成器205进行训练以更好地生成后续合成数据225,以增加后续生成的合成数据225会欺骗鉴别器210的可能性。因此,在进行训练后,将生成器205优化以生成合成数据,鉴别器210不太可能能够可靠地将所述合成数据预测为人类生成的还是计算机生成的。此外,在进行训练后,优化鉴别器210以增加将从合成数据225中辨别出实际(人类生成的)数据220的可能性。

在一些实现方式中,由鉴别器210生成的预测230可以是二进制值。例如,对于给定输入,鉴别器210可以确定输入是真实的还是合成的。在一些实现方式中,鉴别器210可以生成包括给定输入是真实还是合成的置信度的预测。例如,对于给定输入,鉴别器210可以以0.4的置信度确定输入是真实的,并且以0.6的置信度确定输入是合成的。这些置信度可以指示数据为合成的可能性为60%,并且数据为真实的可能性为40%。

再次参考图1,人类答案数据库135包括问题的实际人类答案,这些实际人类答案可以从人类之间的会话和/或人类与已知的自动助理之间的会话中识别出。存储在人类答案数据库135中的答案可以从一个或多个客户端设备接收,和/或可以是对话处理引擎120接收到的人类答案的文本。例如,人类可以与自动助理(例如110)交互并且自动助理可以与人类进行对话。自动助理可以向人类提供提示,例如问题,并且人类可以对问题作出响应。人类答案随后可以存储于人类答案数据库135中,以用作A-GAN 130的训练数据。

作为示例,CAPTCHA助理100可以允许用户与一个或多个第三方代理(可以是人类或用软件实现的)进行交互,所述第三方代理例如是向用户提供天气信息的天气代理、允许用户在餐厅进行预订的餐厅预订代理,和/或允许客户端设备的用户与一个或多个其它实体进行交互的一个或多个其它代理。当客户端设备捕获用户的口头话语时,对话处理引擎120可以将音频数据处理成文本,确定可以使用音频数据的代理,并且促进代理与用户之间的对话。在一些情况下,用户的响应可以存储在人类答案数据库135中,以由A-GAN 130用作通过A-生成器132的训练数据。

在一些实现方式中,远程实体160可以是用户可以经由例如CAPTCHA助理110的自动助理与其交互的代理。在一些情况下,远程实体160可以是人类。例如,用户可能有兴趣在美容院安排预约,并向CAPTCHA助理110提供指令助理进行预约的音频数据(例如,“Pleaseschedule me a hair appointment at XYZ salon for tomorrow at 1pm(请在明天下午1点在XYZ沙龙安排我的理发预约)”)。代替与代理发起对话,CAPTCHA助理110可以替代地例如经由电话和/或其它音频通信信道直接与美容院联系。然后,CAPTCHA助理110可以向远程实体160提供音频提示(例如“I would like to make an appointment for Mrs.Smithtomorrow.Is 1p.m.available?(我想为史密斯太太预约明天。下午1点有空吗?)”)。然后,远程实体160可以对CAPTCHA助理100作出响应(例如,“Sorry,1p.m.is not available.Howabout 11a.m.?(抱歉,下午1点没有空。上午11点左右怎么样?)”)。对话可以在CAPTCHA助理110与远程实体160之间继续,直到完成预约为止和/或直到需要来自用户的附加输入为止。或者,情况可以逆转。可以部署CAPTCHA助理110来满足传入请求,例如,以采购商品或获得服务(例如,进行晚餐预订,理发预约等)。

在任一情况下,远程实体160可能不是人类,而是替代地可以是模仿人类的自动实体。自动实体可以是例如恶意垃圾邮件机器人。因此,当CAPTCHA助理110正在与恶意实体而不是预期的人类进行交互时,在与用户不希望接收信息和/或服务的实体进行通信时会浪费计算时间和资源。此外,恶意实体可能从用户获取信息以用于不期望的目的。因此,当期望人类时,用户有兴趣使与非人类远程实体交互的风险最小化。

参考图3,说明用于实现CAPTCHA助理的各种方法的流程图。从潜在恶意实体接收请求300。将请求300提供给CAPTCHA助理110的对话处理引擎120。在接收请求300后,生成答案。答案可以是对请求300的答案并且可以由例如A-GAN 130生成。在图3中描绘两种可能的答案生成方法。在第一种方法中,可以响应于请求300由自动助理生成“常规”答案310。“常规”答案可以例如对请求300作出响应,并且可能无意为了CAPTCHA目的而“欺骗”僵尸程序。“修改”答案315随后可以基于“常规”答案310生成并且可以将其提供给潜在恶意实体。在第二种方法中,生成的答案320可以替代地完全由自动助理生成(即,不是常规答案的修改版本,而是基于一个或多个先前的答案,来自先前会话的其它人类答案,和/或其它可能答案的来源)。

可以向远程实体160提供修改的答案315或完全生成的答案320。响应于提供答案(修改的答案315或生成的答案320),接收来自潜在恶意的远程实体160的响应325。将响应325提供给受训分类器(例如330),所述受训分类器预测(335)响应325是来自人类还是来自自动实体。基于预测335,一个或多个其它组件随后确定继续会话(在二元分类器330确定潜在恶意实体是人类的情况下)还是结束会话(在二元分类器330确定潜在恶意实体正提供计算机生成的响应的情况下)。

再次参考图1,CAPTCHA助理110包括质询引擎140。质询引擎140可以生成质询问题,A-GAN 130可以使用所述质询问题以提供给远程实体160。在一些实现方式中,质询引擎140可以是生成对抗网络(下文称为质询-GAN或C-GAN),所述生成对抗网络由生成器和鉴别器(下文称为质询-生成器或C-生成器,以及质询-鉴别器或C-鉴别器)组成。质询引擎140可以生成质询问题以提供给潜在恶意实体,例如远程实体160,并且在进行训练后,A-鉴别器134可以确定远程实体160所提供的答案是由人类提供的还是计算机生成的。

在一些实现方式中,质询引擎140可以将质询问题提供给受信任实体,即已知的人类实体或已知的计算机实体,并且可以将从受信任实体接收的答案提供给A-鉴别器作为训练数据。此外,可以将从受信任实体接收到的响应提供给C鉴别器,并且所述响应用于训练C-生成器以改进质询问题(即,优化C-生成器以生成与源自计算机相比更难辨识为源自人类的质询问题)。在一些实现方式中,可以不存在C-鉴别器,并且可以基于A-鉴别器的决定来训练C-生成器和A-生成器两者。例如,C-生成器可以生成质询问题以提供给已知实体。可以将来自已知实体的答案提供给A-鉴别器,以决定已知实体是人类还是计算机,并且可以将结果提供给C-生成器以改进将来生成的质询问题(即,问题更有可能生成得出响应的答案,所述响应改进A-鉴别器的功能以确定响应是人类还是计算机)。

参考图4,提供训练由两个GAN组成的CAPTCHA助理110的示例。如所说明,将文本质询短语405提供给第一生成器410。第一生成器可以与图1的A-生成器132共享一个或多个特征。第一生成器410生成文本质询短语405的合成答案420。例如,可以将质询短语“Wouldyou like pepperoni on that?(您想要意大利辣香肠吗?)”提供给第一生成器410,并且第一生成器410可以将答案“No,I would not.Thank you(不,我不要,谢谢)”确定为合成答案420。

在一些实现方式中,合成答案420可以基于人类与已知的受信任助理之间的实际会话。例如,对于前一示例,第一生成器410可以识别人类与同披萨餐厅通信的自动助理之间的先前会话。会话和/或人类答案可以作为人类答案425存储在人类答案数据库135中。在一些实现方式中,第一生成器410可以改变人类与另一实体(人类或受信任的自动助理)之间的先前会话的一个或多个部分,以生成合成答案。例如,第一生成器410可以识别来自人类答案数据库135的答案“No,I would not.Thank you”,并且将答案改变为合成答案“Yes,I would not.Thank you(是,我不需要,谢谢)”。在一些实现方式中,第一生成器410可以基于来自随机矢量(或“Z-矢量”)411的输入将已知人类答案改变为合成答案。随机矢量411可以提供一个或多个随机词、音素和/或第一生成器410可以用于将人类答案改变为合成答案的单词的替换。

将合成答案420标记为合成的,并且将合成答案与标记为源自人类的人类答案425一起提供给第一鉴别器415。第一鉴别器415可以与图1的A-鉴别器134共享一个或多个特征。第一鉴别器415随后确定答案源自人类还是由第一生成器410生成的合成答案。在一些实现方式中,可以向第一鉴别器415提供质询短语以及人类答案425和合成答案420,使得可以为所提供答案确定上下文。例如,答案“Bacon,sausage,and mushrooms(培根、香肠和蘑菇)”可以是质询短语“What would you like on your pizza?(您想要在披萨上加什么?)”的合适答案(来自人类或计算机),但是相同的答案可能不适合作为质询短语“What timeyou like to make a hair appointment?(您想要什么时间预约理发?)”的响应。因此,基于例如答案是否是对质询短语的有效响应,第一鉴别器415可以确定特定答案是否来自人类。

第一鉴别器415提供CAPTCHA输出445,所述CAPTCHA输出可以是对于给定答案,答案来自人类还是计算机生成(即,来自第一生成器410)的预测。在一些实现方式中,CAPTCHA输出445可以是二进制值,所述二进制值对于给定的输出指示答案是人类生成的还是计算机生成的。在一些实现方式中,CAPTCHA输出445可以是针对人类生成的和计算机生成的两者的值的范围,概率和/或一个或多个其它值,其指示答案是人类生成的或计算机生成的可能性。例如,第一鉴别器可能会接收到合成答案“Yes,I would not.Thank you”,并且确定答案没有语法意义和/或包括一个或多个矛盾的词项;在这种情况下,同时确认和拒绝某件事。第一鉴别器415可以提供输出“合成“,从而指示答案来自第一生成器410的猜测。替代地,第一鉴别器415可以提供CAPTCHA输出,所述CAPTCHA输出以0.75的置信度指示答案来自人类,并且以0.25的置信度指示答案是合成的,从而指示答案来自人类的可能性为75%,并且答案来自第一生成器410的可能性为25%。

在第一鉴别器415已确定CAPTCHA输出445后,CAPTCHA输出可以用于训练第一生成器410和第一鉴别器415两者。例如,如果第一鉴别器415针对标记为合成的答案确定CAPTCHA输出为“人类”,则可以训练第一鉴别器415的机器学习模型(例如,使用例如反向传播和/或随机或批次梯度下降的技术),以改进后续确定(即,优化以防止对于后续答案的相同错误输出)。而且,例如,如果第一鉴别器415针对标记为源自人类的答案确定CAPTCHA输出445为“人类”,则可以训练第一生成器410的机器学习模型以使未来的合成答案不太可能由第一鉴别器415识别为“人类”。因此,GAN的训练优化第一生成器410,以提供对第一鉴别器415来说更难以在人类生成与计算机生成之间辨别的答案,并且进一步优化第一鉴别器415,以在改进合成答案的质量时改进CAPTCHA输出445。

在一些实现方式中,第一生成器410可以进一步通过训练数据识别实体类型。例如,可以训练第一鉴别器415以辨别人类和计算机生成的答案与可以提供给特定类型的实体的质询短语。例如,远程实体可能是“beauty salon(美容院)”,并且如果实体是“pizzarestaurant(披萨餐厅)”,则与如果响应于相同请求而提供相同答案相比,所提供的请求“Would you like anchovies on that?(您想要凤尾鱼吗?)”的回答“Yes,please(是,请)”更可能由第一鉴别器415确定为来自计算机生成的实体。因此,除了答案之外,可以将实体类型提供为训练数据,以帮助训练第一鉴别器415以区分人类生成的答案与计算机生成的答案。

在一些实现方式中,第一生成器410可以从一个或多个数据库中识别文本质询短语405,所述文本质询短语包括提供给人类的短语和/或提供给已知的自动助理的短语。在一些实现方式中,第一生成器410可以基于质询短语的形式来识别文本质询短语405,所述质询短语的形式在先前已经提供给人类和/或自动助理的请求中是常见的。例如,通常可以将请求“What time would you like?(您希望什么时间?)”提供给远程实体,并且可以将所述请求识别为在训练GAN时使用的质询短语。

在一些实现方式中,文本质询短语405可以由包括第二生成器430和第二鉴别器435的第二GAN来确定。第二生成器430接收文本请求440,并且基于文本请求440生成可能的文本质询短语405。在一些实现方式中,文本请求440可以基于由另一人类和/或由已知的自动助理提供给人类的所识别请求。在一些实现方式中,文本请求440可以是提供给人类和/或已知的自动助理的普通请求的模式。例如,第二生成器430可以识别形式为“What timewould you like to[event]?(您想要几点[事件]?)”的多个请求,并且生成“What timewould you like to have dinner?(您想要几点吃晚饭?)”的文本质询问题。第二生成器430可以基于文本请求440和随机矢量431来生成文本质询问题,所述随机矢量431与随机矢量411共享一个或多个特征。换句话说,可以使用随机矢量431来“调节”第二生成器。例如,随机矢量431可以向第二生成器430提供例如“hair appointment(理发预约)”的随机事件,并且第二生成器430可以以文本请求模式替代“[event]([事件])”,以生成文本质询短语“What time would you like to make your hair appointment?(您想要什么时间预约理发?)”。在一些实现方式中,例如A-鉴别器134的其它组件也可以以随机矢量431和/或其它数据,例如由质询引擎140的生成器生成的输出为条件。

在一些实现方式中,第二鉴别器435可以确定生成的文本质询短语可能是文本请求(即,来自人类)还是由第二生成器430生成。例如,文本请求440“Would you likepepperoni on that?”可能会导致第二生成器430生成不可能具有有效含义的文本质询问题405“Would you like a hair appointment on that?(您想要预约理发吗?)”。可以向第二鉴别器435提供文本请求(如此标记)和文本质询短语(如此标记)两者。然后,第二鉴别器可以确定文本质询短语有可能可识别为计算机生成的,并且可以不将文本质询短语“Wouldyou like a hair appointment on that?”作为文本质询短语405提供给第一生成器410。

在一些实现方式中,第二鉴别器435可以确定特定的文本质询短语405是否会引起协助第一鉴别器415区分人类答案与计算机生成的答案。例如,当第一鉴别器415确定输出445时,除了提供用于生成输出的文本质询短语之外,还可以将结果提供给第二鉴别器435。因此,在这些实现方式中,可以训练第二生成器430以改进其生成的文本质询短语。在一些实现方式中,可以省略第二鉴别器435,并且可以基于第一鉴别器415的CAPTCHA输出445训练第一生成器410和第二生成器430两者。

图5说明根据本文所描述的实现方式的用于训练CAPTCHA助理的示例方法的流程图。图5的步骤可以由一个或多个处理器,例如客户端设备的一个或多个处理器执行。其它实现方式可以包括除图5中所说明的步骤之外的附加步骤,可以按不同次序和/或并行地执行图5的步骤,和/或可以省略图5的一个或多个步骤。

在步骤505处,提供多个文本质询短语。文本质询短语中的每一个包括质询,所述质询被配置成从自然对话软件代理得出响应。在一些实现方式中,可以基于提供给已知的远程实体(例如,受信任的自动助理)的实际短语来生成多个文本质询短语。在一些实现方式中,可以基于人类之间和/或人类与受信任的自动助理之间的对话来生成文本质询短语。在一些实现方式中,可以通过向与质询引擎140共享一个或多个特征的质询引擎提供实际请求来生成文本质询短语。例如,可以将实际请求提供给生成对抗网络,所述生成对抗网络基于人类之间和/或人类与已知的自动助理之间的对话中的实际请求来生成质询短语。

在步骤510处,通过向第一生成器提供文本质询短语来生成合成答案。第一生成器可以与图1的A-生成器132共享一个或多个特征。在一些实现方式中,第一生成器可以是神经网络,所述神经网络被优化以生成与人类答案难以区分的答案。例如,第一生成器可以是生成对抗网络的生成器,其基于来自第一鉴别器的输出被训练。

在步骤515处,将标记分配给每个合成答案。标记可以是将合成答案与人类答案区分开的任何指示。在一些实现方式中,标记可以包括答案为“合成”、“计算机生成”和/或“修改”的指示,以将合成答案与人类答案区分开。

在步骤520处,将标记分配给多个人类答案。人类答案可以存储在与人类答案数据库135共享一个或多个特征的数据库中。例如,可以从人类之间和/或人类与对话软件代理(例如已知和/或受信任的自动助理)之间的实际对话中识别人类答案。在一些实现方式中,如在步骤525中所描述,当向第一鉴别器提供答案时,可以将人类答案标记为“人类”、“真实”和/或任何其它标记,以将人类答案与合成答案区分开。

在步骤525处,将人类答案和合成答案作为输入应用于第一鉴别器,以生成每个答案是人类生成的还是计算机生成的预测。在一些实现方式中,第一鉴别器可以与A鉴别器134共享一个或多个特征。例如,对于每个答案,第一鉴别器可以预测答案是人类生成的还是计算机生成的和/或可以为每个答案提供指示答案是人类生成的和/或计算机生成的一个或多个置信度。

在步骤530处,基于第一鉴别器的预测与标记的比较来训练第一生成器和第一鉴别器。例如,如果第一鉴别器将答案正确地识别为合成答案,则可以训练第一生成器的机器学习模型以改进后续的合成答案(即,生成在人类生成与计算机生成之间更难以区分的后续答案)。此外,如果第一鉴别器错误地识别答案,则可以训练第一鉴别器的机器学习模型以防止在生成器提供后续答案时发生相同的错误识别。

图6说明根据本文所描述的实现方式的利用受训CAPTCHA助理的示例。流程图说明一种方法,通过所述方法,受训鉴别器415(即,图4的第一鉴别器)可以用于确定远程实体620是预期的人类还是生成响应的计算机。在一些实现方式中,用户动作600由例如图1的CAPTCHA助理110的助理接收,并且如先前描述进行处理以生成文本请求610。在一些实现方式中,可以将文本请求610直接提供给远程实体620。在一些实现方式中,可以将文本请求610提供给质询生成器,例如图4的第二生成器430,并且可以将生成的文本质询短语提供给远程实体620。在一些实现方式中,可以将文本质询短语615提供给远程实体620,而与用户动作600无关。例如,CAPTCHA助理110可以识别远程实体620并提供文本质询问题,所述文本质询问题可以协助受训鉴别器415做出预测。因此,在一些实现方式中,可以与至远程实体的请求流分开地利用受训鉴别器415,并且在一些实现方式中,可以在将实际请求提供给远程实体620时利用受训鉴别器。

响应于被提供文本请求610和/或文本质询短语615,远程实体620提供答案。然后将答案625提供给受训鉴别器415,以确定答案625是来自人类还是计算机生成的。受训鉴别器415以与本文关于图4的第一鉴别器415所描述类似的方式进行预测630。在一些实现方式中,受训鉴别器415的预测630可以用作训练数据,以改善第一生成器410的机器学习模型。例如,一个或多个组件可以确定受训鉴别器415将答案625的来源正确地分类,并且向答案生成器提供答案625、文本质询短语615和/或其它数据,以改善生成器。

再次参考图1,CAPTCHA助理110还包括决策引擎150。决策引擎150基于A鉴别器134的预测来确定动作。在一些实现方式中,基于从A-鉴别器134接收到远程实体160不是人类的预测,决策引擎150可以将远程实体160标记为恶意的。类似地,基于从A-鉴别器134接收到远程实体160是预期人类的预测,决策引擎150可以将远程实体160标记为受信任实体。在一些实现方式中,仅当预测的置信度满足阈值时,决策引擎150才可以将远程实体标记为人类生成的或计算机生成的。例如,A-鉴别器134可以确定远程实体有50%的可能性是人类,并且有50%的可能性是计算机生成的,并且决策引擎150可以不将远程实体160标记为人类或计算机生成的。在一些实现方式中,决策引擎150可以向一个或多个其它组件提供无法标记远程实体160的指示,并且远程实体160可以用附加的文本质询短语测试和/或由人类测试,以更好地确定远程实体160是人类还是潜在的恶意僵尸程序。

图7是根据本文所公开的实现方式的用于利用受训CAPTCHA助理的示例方法的流程图。图7的步骤可以由一个或多个处理器,例如客户端设备的一个或多个处理器执行。其它实现方式可以包括除图7中所说明的步骤之外的附加步骤,可以按不同次序和/或并行地执行图7的步骤,和/或可以省略图7的一个或多个步骤。

在步骤705处,选择文本质询短语。在一些实现方式中,可以由与质询引擎140共享一个或多个特征的质询引擎生成所选择的文本质询短语。例如,如本文所描述,可以由质询生成器生成文本质询短语,所述质询生成器与GAN配置中的质询鉴别器一起被训练。在一些实现方式中,可以基于对话中的人类和/或自动助理所提供的实际短语来生成文本质询短语。例如,人类和已知的自动助理可以参与会话,并且可以将用户的一个或多个文本请求作为质询短语提供给远程实体。在一些实现方式中,可以选择人类用户的文本请求并且将所述文本请求作为文本质询短语提供给远程实体,而无需进行修改。

在步骤710处,将文本质询短语提供给远程实体。远程实体可以与远程实体160共享一个或多个特征。例如,远程实体可以是计算机生成的,但预期是人类的可疑恶意实体。可以将文本质询短语提供给可疑恶意实体以得出答案,所述答案可以使受训鉴别器确定答案是源自人类还是计算机生成的。

在步骤715处,从远程实体接收答案。在一些实现方式中,答案可以是音频数据,并且例如图1的对话处理引擎120的一个或多个组件可以将答案转换成文本答案。在一些实现方式中,答案可以是文本答案。

在步骤720处,将答案提供给受训鉴别器,例如图1的A-鉴别器134。可以根据本文所描述以及图5中进一步说明的方法来训练鉴别器。例如,鉴别器可以是GAN的组件并且可以基于提供给答案生成器的文本质询短语以及由答案生成器生成的答案进行训练。鉴别器生成指示远程实体可能是人类还是自然语言软件代理的输出。例如,如本文所描述,鉴别器可以提供二元分类(例如,人类生成的或计算机生成的)和/或鉴别器可以为人类生成的答案与计算机生成的答案提供置信度。

在步骤725处,基于鉴别器的预测对远程实体进行分类。例如,如果鉴别器确定远程实体是人类,则可以将远程实体分类为用于人类与实体之间和/或自动助理与实体之间的后续会话的有效实体。而且,例如,如果鉴别器确定远程实体是例如恶意实体的自动代理,则可以将远程实体分类为恶意的,以阻止人类与实体之间或自动助理与实体之间的后续对话。

图8是可以任选地用于执行本文所描述的技术的一个或多个方面的示例计算设备810的框图。计算设备810通常包括经由总线子系统814与多个外围设备通信的至少一个处理器814。这些外围设备可以包括:存储子系统824,所述存储子系统包括例如存储器子系统825和文件存储子系统826;用户界面输出设备820;用户界面输入设备822;以及网络接口子系统816。输入和输出设备允许与计算设备810进行用户交互。网络接口子系统816将接口提供到外部网络并且耦合到其它计算设备中的对应接口设备。

用户界面输入设备822可以包括键盘、例如鼠标、轨迹球、触摸板或图形输入板的指向设备、扫描仪、结合在显示器中的触摸屏、例如话音辨识系统、麦克风的音频输入设备,和/或其它类型的输入设备。通常,术语“输入设备”的使用旨在包括用于将信息输入到计算设备810中或通信网络上的所有可能类型的设备和方式。

用户界面输出设备820可以包括显示子系统、打印机、传真机,或例如音频输出设备的非可视显示器。显示子系统可以包括阴极射线管(CRT)、例如液晶显示器(LCD)的平板设备、投影设备,或用于产生可见图像的某种其它机构。显示子系统还可以例如经由音频输出设备来提供非可视显示器。通常,术语“输出设备”的使用旨在包括用于将信息从计算设备810输出到用户或另一机器或计算设备的各种可能类型的设备和方式。

存储子系统824存储提供本文所描述的一些或全部模块的功能的编程和数据结构。例如,存储子系统824可以包括执行本文所描述的方法的所选方面以及实现在各个附图中描绘的各个组件的逻辑。

这些软件模块通常由处理器814单独地或结合其它处理器执行。用于存储子系统824中的存储器825可以包括多个存储器,包括用于在程序执行期间存储指令和数据的主随机存取存储器(RAM)830以及存储固定指令的只读存储器(ROM)832。文件存储子系统826可以为程序和数据文件提供持久存储,并且可以包括硬盘驱动器、软盘驱动器以及相关联的可移动介质、CD-ROM驱动器、光驱动器或可移动介质盒。实现某些实现方式的功能的模块可以由文件存储子系统826存储在存储子系统824中,或者存储在处理器814可访问的其它机器中。

总线子系统812提供用于使计算设备810的各个组件和子系统按预期彼此通信的机构。尽管总线子系统812被示意性地示出为单个总线,但是总线子系统的替代实现方式可以使用多个总线。

计算设备810可以具有各种类型,包括工作站、服务器、计算集群、刀片服务器、服务器群或任何其它数据处理系统或计算设备。由于计算机和网络的不断变化的性质,因此对图8中所描绘的计算设备810的描述仅旨在作为用于说明一些实现方式的特定示例。计算设备810的许多其它配置可能具有比图8中描绘的计算设备更多或更少的组件。

尽管本文已经描述和说明几个实现方式,但是可以利用用于执行功能和/或获得结果的各种其它手段和/或结构,和/或本文描述的一个或多个优点,并且此类变化和/或修改中的每一个被认为在本文描述的实现方式的范围内。更一般地,本文描述的所有参数、尺寸、材料和配置表示示例性的,并且实际参数、尺寸、材料和/或配置将取决于教示用于的一个或多个特定应用。仅使用常规实验,本领域技术人员将认识到或能够确定本文描述的具体实现方式的许多等同物。因此,应理解,前述实现方式仅以示例的方式呈现,并且在所附权利要求及其等同物的范围内,可以不同于具体描述和要求保护的方式来实践实现方式。本公开的实现方式涉及本文描述的每个个别特征、系统、物品、材料、套件和/或方法。另外,如果此类特征、系统、物品、材料、套件和/或方法不是相互矛盾的,则两个或更多个此类特征、系统、物品、材料、套件和/或方法的任何组合包括在本公开的范围内。

相关技术
  • CAPTCHA自动助理
  • 推荐将自动助理动作包括在自动助理例程中
技术分类

06120112283920