具体实施方式
以下具体描述参考附图。只要有可能,相同的参考标号在图和以下描述中被用来指代相同或相似的元素。虽然本发明的实施例可能被描述,但是修改、改编及其它实施方案是可能的。例如,可以对图中所图示的元素作出代替、附加或修改,并且本文中所描述的方法可以通过对所公开的方法代替、重新排序或添加阶段而被修改。因此,以下具体描述不限制本发明。
本发明的实施例可以提供用于在口语语言表达(utterances)的域检测中利用查询点击记录的***和/或方法。搜索引擎中的隐式地贴标签的web搜索查询的丰富可以被利用来帮助训练域检测类。诸如Bing®或Google®之类的大型引擎每天记录大于100M个搜索查询。记录中的每个查询可以与在用户键入查询之后被点击的一组统一资源定位符(URL)相关联。这个用户点击信息可以被用来推断域类标签,并且因此,可以在训练域分类器中提供(可能地嘈杂)监督。例如,在相同的URL(例如,http://www.hotels.com)上点击的两个用户的查询可能来自相同的域(例如,“hotels (旅馆)”)。
点击的URL类别可以被分配作为用户查询的域标签。例如,当用户已在http://www.hotels.com上点击时,标签“hotels (旅馆)”可以被分配给用户查询“Holiday Inn and Suites (假日酒店和套房)”。然而,点击数据可能是嘈杂的并且以低频率发生。因此,通过挖掘查询点击记录来收集人们通过使用相同的精确查询搜索过的URL的集合对于估计成功的点击也可能是有用的。诸如查询熵(entropy)、停延时间以及会话长度之类的若干特征可以被评估以用于挖掘高质量点击。用户动作模式和停延时间可以被用来估计成功的搜索会话。查询熵和频率可以与来自域检测的其它特征结合(所述其它特征诸如由在贴标签的数据上训练的域检测模型所分配的概率),以便取样都用于作为例子添加到训练集的高质量点击,并且以便预取样用于在监督的分类器训练和/或诸如标签传播之类的半监督和微监督的学习方法中使用的数据。
标签传播算法可以将域注解从贴标签的自然语言(NL)表达转换为未贴标签的web搜索查询。点击信息还可以被认为是嘈杂监督,并且从已点击的URL类别中提取的域标签可以被合并到标签传播算法中。
查询点击数据可以包括搜索引擎用户的查询的记录和他们从由搜索引擎所返回的站点的列表所点击的链接。然而,一些点击数据是非常嘈杂的,并且可能包括被几乎任意地点击的链接。取样措施可以是来自用于在域检测中使用的已点击URL的域标签和应用的查询。来自嘈杂的用户点击的监督然后可以被包括到标签传播算法中,所述标签传播算法可以将域标签从贴标签的例子转换为经取样的搜索查询。
其用户在与目标域类别相关的URL上点击的一组查询可以被提取。查询点击记录然后可以被挖掘以便下载这些搜索查询的实例和由键入相同查询的搜索引擎用户点击的链接的集合。用于对查询的子集进行取样的标准可以包括查询频率、查询(点击)熵和/或查询长度。查询频率可以指的是查询已被不同用户在给定时间范围中搜索的次数。在口语对话***中,用户可以与web搜索用户问相同的事情,从而将频繁的搜索查询添加到域检测训练集可以帮助提高它的准确性。查询(点击)熵旨在测量由查询q的用户所点进的URL的多样性(diversity),并且可以根据在下面的等式1被计算。
在等式1中,Ui, i=1.…n可以包括由查询q的用户所点击的一组URL并且P(Ui)可以包括如根据在下面的等式2所计算的URL Ui 的归一化频率,其中F(Ui)包括URL Ui 被点击的次数。低点击熵可能是根据查询点击标签估计的域类别的正确性的良好指示器。
查询长度可以指的是查询中字的数目。查询中字的数目可以包括自然语言表达的良好指示器,以及包括自然语言表达而不是简单地包括一系列关键词的搜索查询可能对于SLU域分类中的训练数据是更有用的。经取样的查询可以与根据已点击的URL估计的域标签一起被添加到贴标签的训练集,或者这些取样的例子可以被用于诸如自我训练和/或标签传播之类的半监督的学习方法。标签传播算法可以被扩展来利用来自已点击的URL的域信息。
自我训练可能涉及根据现有手动贴标签的例子来训练初始分类器。初始分类器可以被用来自动地为较大的一组未贴标签的例子分配标签。然后被分配具有高后验概率的类的例子可以被添加到训练数据。
标签传播(LP)可以包括常用于半监督的学习的基于图形的迭代算法。所述算法可以以与k最近邻(kNN)分类算法类似的方式沿着由未贴标签的例子所定义的高密度区域通过数据集传播标签。LP可以使得分类器能够看见与训练集没有共有短语的样本。例如,如果训练集具有短语“hotel (旅馆)”而没有“suites (套房)”,则上述示例性查询“holiday inn and suites (假日酒店和套房)”可以将标签传播到另一查询,比如说“ocean-view suites (海景套房)”,其将会将它传播给其它查询。LP算法收敛并且针对比较容易的实施方案具有闭形解。。
其中{(
x1 ,
y1 )…(
xl ,
yl )}包括贴标签的数据集,对于|
C|类
。假设{(
x1+1,
y1+1)…(
xl+u , yl+u)}为未贴标签的数据集,其中
YU = {
yl+l,…,
yl+u}是未知的。样本
来自D维特征空间。标签传播的目标可能是根据
X和
YL 估计
YU 。作为第一步骤,全连接图可以通过将样本使用作为节点而被创建。各节点之间的边
wij 表示在控制参数σ的情况下的欧几里德(Euclidean)距离,并且可以根据在下面的等式3被计算。
关于等式3,
可以包括样本
xi 的第d个特征的值。图然后可以使用如根据等式4计算的
(l+u)
× (l+u)概率转移矩阵T来表示。
对应的(
l+u) × |
C|矩阵还可以针对标签被定义。针对未贴标签的样本的标签可以在如下迭代之前最初地被随机地设置。首先,标签可以被传播1步(
Y <-TY)。接下来,在贴标签的数据的标签被恢复之前,
Y的行可以被归一化以维持概率分布。这个序列收敛到在下面如等式5所描述的固定解,其中
是T的行归一化矩阵,使得
以及
和
是通过将第
l行和列之后的
分成四个子矩阵所获得的
的底部左右部分。
用户点击的URL可以提供针对每个查询的嘈杂的标签。由LP分配给每个例子的域类别和已点击的URL的域类别因此可以被检查以达一致,并且具有来自LP的高概率标签的、还与点击标签一致的那些例子可以被添加到训练数据集。
已点击的URL的类别还可以被用作为查询的表示中的特征。这可以允许标签在这样的查询之间的传播,所述查询具有在LP中具有较高权重的相同的点击标签,从而扩展特征变换方法,诸如合并了正确标签的监督的潜在狄利克雷(Dirichlet)分配(sLDA)和支持附加特征的使用的因素分解潜在语义分析(fLSA)。
|C|二元特征可以针对每个域被包括,产生D+|C|维特征空间。1的值可以被分配给与查询的点击标签相对应的特征,而0分配给所有其它特征。这可能在嘈杂监督情况下导致欧几里德距离的计算的直接扩展,如由等式6所图示的那样。
关于等式6,
可以包括指示针对第k个域的URL的点击的二元特征。LP可以被运行并且针对每个域的最高得分的例子可以被添加到分类训练数据。
图1是用于提供口语对话***(SDS)110的操作环境100的框图。SDS 110可以包括贴标签的数据储存器115、口语语言理解构件120以及统计对话管理器125。贴标签的数据115可以从标签传播***130被接收,所述标签传播***130包括诸如可以与web搜索会话相关联的多个会话记录135和会话处理模块140。会话处理模块可以操作来分析来自会话记录135的数据并且将包括针对各种搜索查询的域标签的训练数据提供给SDS 110。SDS
110可以操作来诸如通过网络(未示出)与用户装置150交互。SDS 110和标签传播***130可以包括经由网络通信的单独服务器和/或可以包括在共享硬件上执行的应用、进程和/或服务。
用户装置150可以包括电子通信装置,诸如计算机、膝上型电脑、手机、平板、游戏控制台和/或其它装置。用户装置150可以被耦合到捕获装置155,所述捕获装置155可以操作来诸如用相机和/或话筒记录用户以及捕获由用户所作出的口语字、运动和/或手势。用户装置150可以进一步操作来诸如通过键盘、触摸屏和/或鼠标(未画出)来捕获来自用户的其它输入。与本发明的实施例一致,捕获装置155可以包括能够检测用户的动作的任何语音和/或运动检测装置。例如,捕获装置155可以包括Microsoft® Kinect®运动捕获装置,其包括多个相机和多个话筒。
图2是阐述了与用于提供统计对话管理器训练的本发明的实施例一致的方法200中所涉及的一般阶段的流程图。方法200可以使用如关于图4在下面更详细地描述的计算装置400被实施。用来实施方法200的诸阶段的方式在下面将被更加详细地描述。方法200可以从起始块205开始并且进入到其中计算装置400可以接收多个查询记录数据的阶段210。例如,查询记录数据可以包括与web搜索会话相关联的搜索查询、跟随的链接(例如,统一资源定位符)、非跟随的链接和/或链接特性,诸如停延时间。
方法200然后可以前进到阶段220,其中计算装置400可以根据链接特性中的一个和/或多个来对所述多个查询记录数据的子集进行取样。例如,标签传播***130可以分析诸如停延时间、查询熵、查询频率以及搜索查询长度之类的链接特性以识别所述记录数据的哪一个包括与目标域的高度相关。
方法200然后可以前进到子例程230,其中计算装置400可以将所述多个查询记录数据的子集中的每一个查询记录数据分类到域标签。例如,包括“hotels in Redmond (雷德蒙德的旅馆)”的搜索查询和到http://www.hotels.com的跟随的链接的会话记录可以被分类在“hotels(旅馆)”域中。分类过程在下面关于图3被更加详细地描述。
方法200然后可以前进到阶段240,其中计算装置400可以将所述多个查询记录数据的子集提供给口语语言理解模型。例如,标签传播***130可以将经分类的数据提供给SDS 110作为训练数据和/或用于在响应实时查询中使用。
方法200然后可以前进到阶段250,其中计算装置400可以接收来自用户的自然语言查询。例如,捕获装置155可以记录“I need a place to stay tonight (我需要今晚住的地方)”的用户查询,并且经由用户装置150将它提供给SDS 110。
方法200然后可以前进到阶段260,其中计算装置400可以根据口语语言理解模型将查询域分配给所述自然语言查询。例如,基于从标签传播***130接收到的贴标签的记录数据,查询可以被映射到寻找旅馆房间的用户的在先web搜索查询。这样的在先查询可以被分类在“hotels (旅馆)”域中,并且该数据可以导致SDM 125将所接收到的查询分配到相同的域中。
方法200然后可以前进到阶段270,其中计算装置400可以根据所分配的查询域将查询响应提供给用户。例如,SDS 110可以执行由在该查询中的其它信息所限制的旅馆的web搜索(例如,其需要具有可用性“tonight(今晚)”和/或用户正在附近寻找旅馆的推测)。方法200然后可以在阶段275处结束。
图3是阐述与用于对域标签进行分类的本发明的实施例一致的方法200的子例程230的一般阶段的流程图。子例程230可以使用如关于图4在下面更详细地描述的计算装置400被实施。实施子例程230的诸阶段的方式在下面将被更加详细地描述。子例程230可以从起始块305开始并且进入到其中计算装置400可以识别与链接数据相关联的多个可能的域的阶段310。例如,会话处理模块140可以选择针对其的训练数据被寻找的一组目标域和/或可以选择与SDS 110相关联的所有可能的域。
子例程230然后可以前进到阶段320,其中计算装置400可以生成与所述多个可能的域中的每一个相关联的、所述多个链接数据中的至少一个与所述域相关联的概率。例如,会话处理模块140可以分配查询的搜索项与由SLU 120所使用的每个域相关联的概率。
子例程230然后可以前进到阶段330,其中计算装置400可以从所述多个可能的域中选择针对所述多个可能的链接数据中的至少一个的分类域。例如会话处理模块140可以选择在所述多个可能的域之中具有最高概率的域。子例程230然后可以在阶段335处结束并且返回到方法200。
与本发明一致的实施例可以包括用于提供域检测训练的***。所述***可以包括记忆储存器和耦合到该记忆储存器的处理单元。处理单元可以操作来接收与搜索引擎相关联的多个记录数据,其中所述多个记录数据中的每一个都与搜索查询相关联;识别针对所述多个记录数据中的至少一个的搜索查询的域标签,并且将所述域标签和所述多个链接数据中的至少一个提供给针对理解模型的训练集。
与本发明一致的另一实施例可以包括用于提供域检测训练的***。所述***可以包括记忆储存器和耦合到该记忆储存器的处理单元。处理单元可以操作来识别与目标域标签相关联的多个查询记录数据,从所述多个查询记录数据中的每一个提取搜索查询、至少一个跟随的链接以及至少一个链接特性,根据所述至少一个链接特性来对所述多个查询记录数据的子集进行取样,将目标域标签分配给所述多个查询记录数据的子集中的每一个,并且将所述多个查询记录数据的子集提供给口语语言理解模型。
与本发明一致的实施例可以包括用于提供域检测训练的***。所述***可以包括记忆储存器和耦合到该记忆储存器的处理单元。处理单元可以操作来:接收多个查询记录数据,每个查询记录数据至少包括与web搜索会话相关联的搜索查询、至少一个跟随的链接以及至少一个链接特性;根据与所述多个查询记录数据的子集中的每一个相关联的至少一个链接特性来对所述多个查询记录数据的子集进行取样;将所述多个查询记录数据的子集中的每一个分类到域标签;以及将所述多个查询记录数据的子集提供给口语语言理解模型。处理单元可以进一步操作来接收来自用户的自然语言查询、根据口语语言理解模型将查询域分配给所述自然语言查询以及根据所分配的查询域将查询响应提供给用户。
图4是包括计算装置400的***的框图。与本发明的实施例一致,前述记忆储存器和处理单元可以被实施在诸如图4的计算装置400这样的计算装置中。硬件、软件或固件的任何适当组合可以被用来实施记忆储存器和处理单元。例如,记忆储存器和处理单元可以被用计算装置400或其它计算装置418中的任一个与计算装置400相结合地实现。前述***、装置以及处理器是例子,并且其它***、装置以及处理器可以包括与本发明的实施例一致的前述记忆储存器和处理单元。此外,计算装置400可以包括如上面所描述的操作环境400。在本说明书中描述的方法可以在其它环境中操作并且不限于计算装置400。
参考图4,与本发明的实施例一致的***可以包括计算装置,诸如计算装置400。在基本配置中,计算装置400可以包括至少一个处理单元402和***存储器404。取决于计算装置的配置和类型,***存储器404可以包括但不限于易失性(例如随机存取存储器(RAM))、非易失性(例如只读存储器(ROM))、闪速存储器或任何组合。***存储器404可以包括操作***405、一个或多个编程模块406,并且可以包括SDM 125。操作***405例如可能适合于控制计算装置400的操作。此外,本发明的实施例可以结合图形库、其它操作***或任何其它应用程序而被实践,并且不限于任何特定应用或***。这个基本配置在图4中由虚线408内的那些构件来图示。
计算装置400可以具有附加的特征或功能性。例如,计算装置400还可以包括附加的数据存储装置(可移除的和/或不可移除的),诸如例如磁盘、光盘或磁带。这样的附加储存器在图4中由可移除储存器409和不可移除储存器410来图示。计算装置400还可以包含通信连接416,所述通信连接416可以诸如通过分布式计算环境中的网络(例如,内联网或因特网)而允许装置400与其它计算装置418进行通信。通信连接416是通信媒体的一个例子。
如本文所用的术语计算机可读媒体可以包括计算机存储媒体。计算机存储媒体可以包括以用于存储信息的任何方法或技术实施的易失性和非易失性、可移除和不可移除媒体,所述信息诸如计算机可读指令、数据结构、程序模块或其它数据。***存储器404、可移除储存器409以及不可移除储存器410全部是计算机存储媒体例子(即,记忆储存器)。计算机存储媒体可以包括但不限于RAM、ROM、电可擦只读存储器(EEPROM)、闪速存储器或其它存储器技术、CD-ROM、数字通用盘(DVD)或其它光储存器、磁盒、磁带、磁盘储存器或其它磁存储装置、或能够被用来存储信息并且能够被计算装置400访问的任何其它介质。任何这样的计算机存储媒体可以为装置400的一部分。计算装置400还可以具有诸如键盘、鼠标、笔、声音输入装置、触摸输入装置等之类的(一个或多个)输入装置412。诸如显示器、扬声器、打印机等之类的(一个或多个)输出装置414也可以被包括。前述装置是例子并且其它装置可以被使用。
如本文所用的术语计算机可读媒体还可以包括通信媒体。通信媒体可以通过计算机可读指令、数据结构、程序模块或其它数据被具体化为诸如载波或其它传输机制之类的已调制数据信号,并且包括任何信息递送媒体。术语“已调制数据信号”可以描述使一个或多个特性被以在该信号中编码信息的方式设置或改变的信号。通过例子而不是限制,通信媒体可以包括诸如有线网络或直连线连接之类的有线媒体以及诸如声、射频(RF)、红外线之类的无线媒体和其它无线媒体。
如上面所陈述的那样,包括操作***405在内的许多程序模块和数据文件可以被存储在***存储器404中。当在处理单元402上执行时,编程模块406(例如,统计对话管理器125)可以执行如上面所描述的过程和/或方法。前述过程是例子,并且处理单元402可以执行其它过程。可以依照本发明的实施例被使用的其它编程模块可以包括电子邮件和联系人应用、字处理应用、电子表格应用、数据库应用、幻灯片呈现应用、绘图或计算机辅助应用程序等。
通常,与本发明的实施例一致,程序模块可以包括可以执行特定任务或者可以实施特定抽象数据类型的例程、程序、构件、数据结构以及其它类型的结构。而且,本发明的实施例可以用其它计算机***配置来实践,所述其它计算机***配置包括手持式装置、多处理器***、基于微处理器的或可编程的消费电子产品、小型计算机、大型计算机等等。本发明的实施例还可以被实践在分布式计算环境中,在所述分布式计算环境中由通过通信网络而被链接的远程处理装置执行任务。在分布式计算环境中,程序模块可以位于本地和远程记忆存储装置中。
此外,本发明的实施例可以被实践在包括分立电子元件、包含逻辑门的打包或集成电子芯片的电气电路中、被实践在利用微处理器的电路中或者被实践在包含电子元件或微处理器的单个芯片上。本发明的实施例还可以使用能够执行诸如例如与(AND)、或(OR)以及非(NOT)之类的逻辑操作的其它技术(包括但不限于机械、光学、流体以及量子技术)被实践。此外,本发明的实施例可以被实践在通用计算机内或者被实践在任何其它电路或***中。
本发明的实施例例如可以被实施为计算机过程(方法)、计算***或者实施为制品,诸如计算机程序产品或计算机可读媒体。计算机程序产品可以为可由计算机***读取并且对用于执行计算机过程的指令的计算机程序进行编码的计算机存储媒体。计算机程序产品还可以为可由计算***读取并且对用于执行计算机过程的指令的计算机程序进行编码的载体上的传播信号。因此,本发明可以用硬件和/或用软件(包括固件、常驻软件、微码等)来体现。换句话说,本发明的实施例可以采取在计算机可用或计算机可读存储介质上的计算机程序产品的形式,所述计算机可用或计算机可读存储介质具有在所述介质中体现的计算机可用或计算机可读程序代码以用于由指令执行***或者与其相结合地使用。计算机可用或计算机可读介质可以是能够包含、存储、传送、传播或传输用于由执行指令***、设备或装置使用的或者与其相结合地使用的程序的任何介质。
计算机可用或计算机可读介质可以为例如但不限于电子、磁、光学、电磁、红外线或半导体***、设备、装置或传播介质。更多具体的计算机可读介质例示(非详尽列举)了计算机可读介质可以包括下述:具有一根或多根电线的电气连接、便携式计算机软磁盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪速存储器)、光纤以及便携式光盘只读存储器(CD-ROM)。注意,计算机可用或计算机可读介质甚至可能是程序被印刷在其上的纸或另一适当介质,因为程序能够经由例如纸或其它介质的光学扫描而被电子地捕获,然后被编译、被解释或者否则被以适当的方式处理,必要时,并且然后被存储在计算机存储器中。
本发明的实施例可以经由片上***(SOC)来实践,其中图4中所图示的构件的每一个或许多个可以被集成到单个集成电路上。这样的SOC装置可以包括一个或多个处理单元、图形单元、通信单元、***虚拟化单元以及各种应用功能性,它们的全部都可以被集成(或者“烧录”)到芯片衬底上作为单个集成单路。当经由SOC操作时,关于为口语语言理解***提供训练数据,本文中所描述的功能性可以经由与计算装置/***X的其它构件一起集成在单个集成电路(芯片)上的专用逻辑来操作。
例如,上面参考根据本发明的实施例的方法、***以及计算机程序产品的框图和/或操作图解描述了本发明的实施例。在块中记下的功能/动作可以在如在任何流程图中所示出的顺序之外发生。例如,连续地示出的两个块实际上可以被基本上同时地执行,或者各块有时可以根据所涉及的功能性/动作被以相反的顺序执行。
虽然已经描述了本发明的确定的实施例,但是其它实施例可以存在。此外,尽管本发明的实施例已被描述为与在存储器和其它存储介质中存储的数据相关联,但是数据还能够被存储在其它类型的计算机可读媒体上或者从其读取,所述其它类型的计算机可读媒体诸如辅助存储装置(例如硬盘、软盘或CD-ROM)、来自因特网的载波或其它形式的RAM或ROM。进一步地,所公开方法的阶段可以在不背离本发明的情况下被以任何方式修改,包括通过对阶段重新排序和/或***或者删除阶段。
在本文中包括的代码中的包括版权在内的所有权利在申请人名下并且是申请人的财产。申请人保有并且保留在本文中包括的代码中的所有权利,并且授予仅与所许可专利的复制相结合地复制材料的许可且不用于其它目的。
虽然已经描述了本发明的确定实施例,但是其它实施例可以存在。虽然说明书包括例子,但本发明的范围由以下权利要求来指示。此外,虽然已经以特定于结构特征和/或方法动作的语言描述了本说明书,但是权利要求不限于上面所描述的特征或动作。相反,上面所描述的特定特征和动作作为针对本发明的实施例的例子被公开。