用于查找语义相关的搜索引擎询问的方法

文档序号:6567338阅读:160来源:国知局
专利名称:用于查找语义相关的搜索引擎询问的方法
技术领域
本发明涉及用于查找语义相关的搜索引擎询问的方法。 相关领域的描述
在线搜索引擎为以结构化且有区分的方案访问因特网上可用的海量信息提供 了一个强有力的工具。诸如MSN 、 Google⑧和Yahoo!⑧之类的流行搜索引擎每天 为上千万的信息询问服务。典型的搜索引擎由一组协作的程序操作,这些程序包括 聚集来自万维网上的各网页的信息以创建用于搜索引擎索引的条目的网络蜘蛛 (spider)(也被称为"网络爬虫(crawler)"或"bot");从已被阅读的文件中创建 该索引的索引程序;以及接收搜索询问,将其与索引上的各项条目相比较并返回适 于该搜索询问的结果的搜索程序。
当前在搜索引擎技术领域中的一个重要研究方向是如何改善给定搜索询问结 果的效率和质量。所谓的基于概念的搜索涉及对各种搜索准则进行统计学分析以识
别并建议与输入搜索询问高度语义相关的可选搜索询问。识别可选的、高度相关的 搜索询问有助于集中并改善给定搜索的搜索结果。此外,公司和广告商会在输入特 定询问的情况下呈现广告。这将非常有利于这些公司和广告商把它们的广告与特定 的询问以及其他语义相关的询问相关联。
在利用基于概念的现有技术的搜索系统示例中,取决于各询问内返回结果相 同程度而将各询问相关在一起。于是,如果第一和第二询问返回几乎相同的搜索结 果,则可以认为这两个询问彼此高度相关。基于概念的搜索的一个示例在H. Daume 禾卩E. Brill为Human Language Technology Conference / North American Chapter of
the Association for Computational Linguistics (HTUNAACL), Boston, MA (2004)发布 的题为"Web Search Intent Induction via Automatic Query Reformulation"的论文中 有所阐述。
基于概念的搜索的另一个示例检査click-through数据作为相关搜索询问的指 示符。这一模型观察来自不同搜索询问结果的clicked-on的链接。如果两个不同的 询问导致用户点击相同的URL,则可认为这两个询问高度相关。click-through的基 于概念的搜索的一个示例在D. Beeferman禾口 A. Berger为Sixth ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, Boston, MA (2000) 发布的题为"Agglomerative Clustering of a Search Engine Query Log"的论文中有所 阐述。
另一种有前途的基于语义的搜索技术涉及分析输入询问本身以揭示特定时序 上的模式、趋势及周期性。例如,Vlachos,M.、 Meek, C、 Vagena, Z.和Gunopulos, D.为International Conference on Management of Data (SIGMOD), Paris, France (2004) 发布的题为"Identifying Similarities, Periodicities and Bursts for Online Search Queries"的论文(Vlachos等人),该论文全文结合在此作为参考。Vlachos等人 注意到不同的事件具有不同的瞬态搜索频率。例如,询问"电影院"的频率在每周 末有一峰值,而询问"复活节"的频率在每年春天形成一单峰并在随后突然下降。 瞬态相关后面的理论是如果两个搜索询问呈现足够类似的瞬态模式,则它们很有可 能是语义相关的。Vlachos等人使用存储在与搜索引擎(在他们的研究中是MSN )
相关联的一个或多个服务器上的询问日志来为每个实际询问建立时间序列,在其中 该时间序列的各元素是在给定的一天内询问被搜索的次数。
使用傅立叶分析,Vlachos等人通过傅立叶系数表现出了询问频率随时间变化 的瞬态周期性,并在随后应用时间序列匹配技术来识别带有极类似瞬态模式的其他 询问。他们利用的匹配技术基于傅里叶系数之间的欧几里德距离(Euclidean distance)来测量瞬态相似性。在此框架下,他们描述了一种使用有关每个询问的 若干最佳傅立叶系数查找给定询问的最类似询问的方法。
有关搜索引擎询问的瞬态模式随时间变化。例如,搜索量在日间大于夜间, 以及搜索量在平日大于周末。试图识别语义询问匹配的各模型可能会虚假地认为在 两个搜索之间具有高度相关,这是因为没有将这一自然的随时间变化考虑在内。例 如,

图1是在一个月的时间段内每天测量的两个不同搜索询问的出现次数的采样 图。第一曲线na是第一询问出现的次数而第二曲线nb是第二询问出现的次数。如
图所示,两根曲线都示出了周末的出现次数相对于平日有所降低。在用于査找语义 相关的搜索询问的典型瞬态模型下,这种类似的周末降低活动会导致这两个询问之 间虚假的高度语义相关,但事实上这一相关其实是由于搜索询问随时间的自然变化 所致。
发明概述
本发明的各实施例提供一种基于输入询问和存储询问的瞬态相关来确定它们 之间语义相关的方法。各实施例包括输入询问和存储询问之间相关系数的形式计 算。可选实施例包括在牺牲少许或者不牺牲相关系数精确性的情况下使用简化数据 模型和有效数据检查来计算相关系数的方法。
一询问q随d时间单位变化的频率函数是d维向量Yq = (Yq山…,Yq,d)。在每个
离散时间单位处的询问频率Yq,i是询问q在第i个时间单位期间的归一化频率。使 用归一化频率(即,在给定时间单位期间询问q的频率与接收到的所有其他频率相
比较)来归一化地去除询问流量随时间自然变化的影响。
形式进程存储有关所有时间单位及有关接收到的所有询问的归一化询问频率
函数Yq,i。使用有关每个询问的归一化频率函数的平均值和标准差,就可以确定任
何两个询问之间的相关系数。高于阈值的两个询问间的相关系数被认为有意义,并 且指示了询问之间的瞬态和语义相关。
使用用于计算相关系数的该形式方法,带有n个询问和d个时间单位的询问 流需要为每个询问存储d个频率值,即总共dn个的归一化频率函数值,并且还需 要在每次期望确定所有存储的询问与输入询问的相关系数时线性传递所有这些数 据。 一个可选实施例利用来自嵌入和最近领域算法中的技术,允许用更少的数据表 示每个询问的归一化频率函数。使用该简化数据模型的相关系数的计算还能够在更
短的处理时间内并在能够实现相关系数实时计算的情况下提供对输入询问和其他 询问之间相关系数的精确估计。
该简化数据模型通过为d维狭d的欧几里德实空间内所有存储询问的归一化频
率函数定义的单个询问频率向量《而使用简化数据来表示询问频率函数。每个询问 频率向量都可用作将每个询问频率向量《表示为5位串v(f》的映射vO: Rd— {0,
1}6。用于位串或嵌入v(g)内5位的每一位的值(1或0)可以使用利用嵌入理论 的随机超平面来确定。对于某一输入询问q而言,位串v(F》第j位的值由询问频 率向量《位于第j个随机选定超平面的哪一侧所支配,其中该超平面可由与该随机
生成的超平面正交的向量rj表示。生成的超平面个数J大到足以提供超平面的近似 均匀分布以生成精确表示每个询问频率函数的嵌入v(f》。
在简化数据模型中,在输入询问q和任何存储询问p之间的相关系数义可由嵌 入v(F》和v(F》之间从第1位到第5位对应相同位数的分数所近似。对应位的匹配 数越大,询问q和p之间相关系数就越高,并且各询问也更为瞬态相关。
一旦生成并存储了所有询问频率函数的表示,就可以确定一输入询问与所有 这些存储的询问之间的相关。虽然可能对所有存储数据进行线性传递,但是本发明 的各实施例利用一种用縮短的处理时间找出相关询问的方案。这可以通过将检查的 询问数限制为那些可能具有高于预定相关系数阈值的询问。
在这一实施例中,每一个存储询问p基于其嵌入v(g)的前k位被组织成 缓冲区位置,在此被称为存储段(bucket)。其后, 一旦接收到输入询问q,该 处理系统就检査在含有q的位串v(《)的存储段内的那些嵌入v(f》,以及那些 与含有q的位串的存储段有预定匹配位数的存储段。
附图简述
图1是在用于査找语义相关搜索询问的常规系统中经过一个月长的时期所测 得的两个不同询问的频率的曲线图。
图2是适于实现本发明实施例的计算机硬件的框图。
图3是能够由图2所示的计算机硬件操作和/或在其中操作的包括有代码和数
据结构的搜索引擎的框图。
图4是根据本发明各实施例在一系统中经过多个离散时间单位测得的归一化 询问涉及的曲线图。
图5是根据本发明各实施例用于在一系统中生成并存储归一化询问频率的一 进程的流程图。
图6是用于从在图4内生成并存储的归一化询问频率中计算相关系数的一进 程的流程图。
图7是归一化且成比例的向量F,和?;连同随机向量ri的高斯分布采样的图示。 图8是基于各向量与随机向量ri的关系从图6的归一化且成比例的向量至嵌 入v(g)和v(Fp)的映射。
图9是根据本发明实施例用于确定两询问的相关系数的数据简化模型的流程图。
图10是根据本发明实施例用于识别相关询问的形式进程。
图11是根据本发明实施例示出用于识别相关询问的縮短时间模型的流程图。
详细描述
如下将参考图2至图11描述本发明的各实施例,各实施例一般地涉及用于查 找语义相关的搜索引擎询问的方法。根据本发明各实施例的方法至少部分基于如果 询问瞬态相关则这些询问就语义相关的观点。也就是说,如果不同搜索询问的流行 度趋向于一起随时间上升和下降,这些询问就有可能彼此语义相关。因此本发明的 各实施例识别与给定搜索询问瞬态相关的询问。
在各实施例中,本发明分析了在一具体时刻处一具体询问的密度,而非该询 问的频率。密度是一询问频率在该具体时刻与所有其他频率的比较。该方法归一化 地去除了由搜索引擎量自然变化引起的量改变所引入的差错。此外,比较频率函数 的相关,而不是协方差,从而更好地捕捉虚假肯定。此外,为了让算法实用,使用 近似算法来査找近似的相关,而非实际的相关。该近似算法显著降低了所需的存储 空间,以及要求的处理时间,以便在少量牺牲或不牺牲各相关精确度的情况下查找 语义相关的询问。
在此描述的方法可以在各种处理系统上实现。图2示出了可在其上实现本发 明的合适的计算系统环境100的示例。计算系统环境100只是合适的计算环境的一 个示例,并不旨在对本发明的使用范围或功能提出任何限制。也不应该把计算环境 100解释为对示例性操作环境100中示出的任一组件或其组合有任何依赖性或要 求。
本发明可用众多其它通用或专用计算系统环境或配置来操作。适合在本发明 中使用的公知的计算系统、环境和/或配置的示例包括,但不限于,个人计算机、 服务器计算机、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子 产品、网络PC、小型机、大型机、膝上型和掌上计算机、手持设备、包含上述系 统或设备中的任一个的分布式计算机环境等。
本发明可在诸如程序模块等由计算机执行的计算机可执行指令的通用语境中 描述。 一般而言,程序模块包括例程、程序、对象、组件、数据结构等,它们执行 特定任务或实现特定抽象数据类型。本发明也可以在分布式计算环境中实现,其中 任务由通过通信网络连接的远程处理设备执行。在分布式计算环境中,程序模块可 以位于包括存储器存储设备在内的本地和远程计算机存储介质中。
参考图2,用于实现本发明的一个示例性系统包括计算机110形式的通用计算
设备。计算机110可以包括但不限于,处理单元120、系统存储器130和将包括系 统存储器在内的各种系统组件耦合至处理单元120的系统总线121。系统总线121 可以是若干类型的总线结构中的任一种,包括存储器总线或存储器控制器、外围总 线和使用各种总线体系结构中的任一种的局部总线。作为示例,而非限制,这样的 体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、扩 展的ISA (EISA)总线、视频电子技术标准协会(VESA)局部总线和外围部件互 连(PCI)总线(也被称为Mezzanine总线)。
计算机110通常包括各种计算机可读介质。计算机可读介质可以是能够被计 算机IIO访问的任何可用介质,且包括易失性和非易失性介质、可移动和不可移动 介质。作为示例,而非限制,计算机可读介质可以包括计算机存储介质和通信介质。 计算机存储介质包括以任何方法或技术实现的用于存储诸如计算机可读指令、数据 结构、程序模块或其它数据等信息的易失性和非易失性、可移动和不可移动介质。 计算机存储介质包括,但不限于,RAM、 ROM、 EEPROM、闪存或其它存储器技 术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存 储或其它磁性存储设备、或能用于存储所需信息且可以由计算机110访问的任何其 它介质。通信介质通常具体化为诸如载波或其它传输机制等已调制数据信号中的计 算机可读指令、数据结构、程序模块或其它数据,且包含任何信息传递介质。术语 "已调制数据信号"指的是这样一种信号,其一个或多个特征以在信号中编码信息 的方式被设定或更改。作为示例,而非限制,通信介质包括诸如有线网络或直接线 连接的有线介质,以及诸如声学、RF、红外线和其它无线介质的无线介质。上述 中任一个的组合也应包括在计算机可读介质的范围之内。
系统存储器130包括易失性或非易失性存储器形式的计算机存储介质,诸如 只读存储器(ROM) 131和随机存取存储器(RAM) 132。基本输入/输出系统133 (BIOS)包含有助于诸如启动时在计算机110中的元件之间传递信息的基本例程, 它通常存储在ROM 131中。RAM 132通常包含处理单元120可以立即访问和/或 目前正在操作的数据和/或程序模块。作为示例而非限制,图2示出了操作系统134、 应用程序135、其它程序模块136和程序数据137。
计算机110也可以包括其它可移动/不可移动、易失性/非易失性计算机存储介 质。仅作为示例,图2示出了从不可移动、非易失性磁介质中读取或向其写入的硬 盘驱动器141,从可移动、非易失性磁盘152中读取或向其写入的磁盘驱动器151,
以及从诸如CD ROM或其它光学介质等可移动、非易失性光盘156中读取或向其 写入的光盘驱动器155。可以在示例性操作环境下使用的其它可移动/不可移动、易 失性/非易失性计算机存储介质包括,但不限于,盒式磁带、闪存卡、数字多功能 盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器141通常由诸如接口 140 等不可移动存储器接口连接至系统总线121,磁盘驱动器151和光盘驱动器155通 常由诸如接口 150等可移动存储器接口连接至系统总线121。
以上描述和在图2中示出的驱动器及其相关联的计算机存储介质为计算机 110提供了对计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在 图2中,硬盘驱动器141被示为存储操作系统144、应用程序145、其它程序模块 146和程序数据147。注意,这些组件可以与操作系统134、应用程序135、其它程 序模块136和程序数据137相同或不同。操作系统144、应用程序145、其它程序 模块146和程序数据147在这里被标注了不同的标号是为了说明至少它们是不同的 副本。用户可以通过输入设备(诸如键盘162)和定点设备161 (诸如鼠标、跟踪 球或触摸垫)向计算机110输入命令和信息。其它输入设备(未示出)可以包括麦 克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等。这些和其它输入设备通常由 耦合至系统总线的用户输入接口 160连接至处理单元120,但也可以由其它接口或 总线结构,诸如并行端口、游戏端口或通用串行总线(USB)连接。监视器191 或其它类型的显示设备也经由接口,诸如视频接口 190连接至系统总线121。除监 视器以外,计算机也可以包括其它外围输出设备,诸如扬声器197和打印机196, 它们可以通过输出外围接口 195连接。
计算机110可使用至一个或多个远程计算机,诸如远程计算机180的逻辑连 接在网络化环境下操作。远程计算机180可以是个人计算机、手持式设备、服务器、 路由器、网络PC、对等设备或其它常见的网络节点,且通常包括上文相对于计算 机110描述的许多或所有元件。图1中所示逻辑连接包括局域网(LAN) 171和广 域网(WAN) 173,但也可以包括其它网络。这样的连网环境在办公室、企业范围 计算机网络、内联网和因特网中是常见的。
当在LAN联网环境中使用时,计算机110通过网络接口或适配器170连接至 LAN 171。当在WAN联网环境中使用时,计算机110通常包括调制解调器172或 用于通过诸如因特网等WAN 173建立通信的其它装置。调制解调器172可以是内 置或外置的,它可以通过用户输入接口 160或其它合适的机制连接至系统总线121。 在网络化环境中,相对于计算机110描述的程序模块或其部分可以存储在远程存储
器存储设备中。作为示例,而非限制,图2示出了远程应用程序185驻留在存储器 设备181上。可以理解,所示的网络连接是示例性的,且可以使用在计算机之间建
立通信链路的其它手段。
图3是其上可以实现本发明的包括软件模块和数据结构的搜索处理环境300。 该搜索处理环境300可以用上述计算系统环境100操作和/或作为其的一部分。搜 索处理环境300可以是基于三种主要元件的基于网络爬虫的系统。第一个是网络蜘 蛛,也被称为网络爬虫302。该网络蜘蛛访问网页3卯a、 390b,读取这些网页,并 在随后追寻至该站点内的其他页面的链接。网络蜘蛛定期返回该站点以查找变化。 由任何网络爬虫执行的基础算法重复地采用一个种子URL列表作为输入从该 URL列表中移去一URL,确定其主机名的IP地址,下载相应的文档并且提取其内 含有的任何链接。对于每个提取的链接,将其翻译成绝对URL (如果需要的话), 并且倘若以前尚未遇见,则将其添加至URL列表以供下载。如果期望的话,也可 以按其他方式处理该下载文档(例如,索引其内容)。
网络蜘蛛找出的每件事物都进入搜索引擎的第二部分,即索引306。有时被称 为目录的索引306是含有网络蜘蛛找出的每张网页副本的储存库。如果网页改变, 随后就使用新信息更新该工作簿。该索引存储在数据存储310内。
搜索处理环境300的第三部分是搜索引擎312。搜索引擎312是一程序,它筛 选记录在该索引内的数以百万计的页面,以找出其认为最相关的匹配搜索并排列搜 索结果。搜索一索引包括用户建立一询问并通过搜索引擎将其提交。该询问可以很 简单,最少一个单词,或者可以是一系列的词或短语。建立更为复杂的询问可通过
使用允许用户精细化和扩展搜索项的布尔操作符而得以实现。
实践中,计算设备325的用户经由客户机侧的网络浏览器316和主机侧的网 络服务器314访问搜索处理环境300。 一旦在客户机和主机之间建立通信链路,计 算设备325的用户就可如上所述执行询问搜索。
根据本发明的各实施例,搜索处理环境300还可以包括相关引擎350。相关引
擎350是能够识别与计算设备325的用户输入的询问语义相关的询问,并且按将在
下文中解释的方式将这些语义相关的询问呈现给用户的软件模块。相关引擎与搜索 引擎312通信以接收输入询问。该相关引擎还与保存在数据存储310内的询问数据
库通信。询问数据库352存储关于过去询问的所有原始频率数据,以及将在下文中 解释的可由本发明使用的归一化询问数据和其他参数。相关引擎还可以与网络服务 器通信以便将识别出的语义相关搜索询问呈现给设备325的用户,或者帮助其重新
定义搜索结果。
图4是例如由设备325的用户键入的可能输入搜索询问q的归一化询问频率 函数Yq。归一化询问频率是经总数为d个的离散时间单位而测得的。询问q经d
个时间单位的频率函数是d维向量Yq = (Yq,lv..,Yq,d)。询问q可以是使用在线搜索
引擎(例如,MSN⑧搜索以及上述其他搜索引擎)搜索的任何询问。在此使用的输 入询问及其表示通常被称为字母"q"而被存储的询问及其表示则通常被称为字母 "p"。根据本发明的各实施例,某一时间单位内的频率Yq,i可以被看成随机变量, 并且两个询问之间的相似性可以由将在下文中解释的其频率函数的相关系数给出。 在每个离散时间单位处的询问频率Yq,i是询问q在第i个时间单位期间的归一 化频率。也就是说,归一化频率Yq,i并不简单地是询问q在第i个时间单位期间被 搜索的次数。相反地,归一化频率Yqi如下给出
其中nq,i是询问q在第i个时间单位期间出现的次数而Ni是在第i个时间单位期间 的询问总数。正如在本发明的背景部分所指出的那样,询问流量随时间固有地变化。 询问频率的上述定义是该询问的密度,即在给定的时间段内与所有其他的询问相 比,询问q每隔多久被键入一次。这样就归一化地去除了询问流量随数据固有变化 的影响,并且避免了某些询问对显示出虚假的高度相关,这些高度相关仅仅是因为 每时间单位的询问总数比某些时期的要大,即白天与晚间相比以及平日与周末相 比。为所有询问使用归一化频率就能使得本发明的各实施例更为精确地计算两个询 问之间的真实相关性。
如下将参考图5解释一种用于计算输入询问q和存储询问p之间相关系数的 形式进程。为了确定输入询问和其他询问之间的相关性,经多个离散时间单位测得 的归一化询问数据的表示被存储在询问数据库352内。在一个实施例中,归一化询 问数据例如可以在一年的时间里每一天获取一次。尽管如此,独立的离散时间单位 在各个不同实施例中可以是秒、分、时、天、周、月或年。而在其他的可选实施例 中,独立的离散时间单位还可以短于一秒,长于一年,或者可以是其间的任何离散 时间段。考虑的这些离散时间单位的总数在各个不同实施例中可以总计为一小时、 一天、 一周、 一个月、 一年或十年。而在其他的可选实施例中,考虑的这些离散时
间单位的总数可以总计为短于一小时,长于十年,或者可以是其间的任何时间段。
在一个实施例中,如图5的流程图所示,保存在询问数据库352内的归一化 询问数据的表示可以实时生成;也就是说在询问数据库内的各项在这些离散时间单 位的总数时间内(例如, 一年内)可以每离散时间单位更新一次(例如,每天一次)。 在这一实施例中,在步骤200中检索来自数据库352的有关给定时间单位i的所有 搜索询问的原始数据日志。该日志通常为了某一时间段搜索引擎312接收的所有询 问而被保存。在步骤202中,相关引擎350可以从有关该离散时间单位i的搜索询 问日志中确定该时间单位期间每个询问的密度Yq,i。如上所述,在一时间单位期间
的每个询问的密度Yq,i如下给出<formula>formula see original document page 14</formula>其中nq,i是询问q在第i个时间单位期间出现的次数而Ni是在第i个时间单位期间 的询问总数。
在本发明的一个实施例中,在步骤204中,可以将一离散时间单位期间的所 有询问的密度存储在数据库352内。如下将解释,存储该数据的步骤在执行本发明
的应用的可选实施例中可以被省略。
仍然参见图4和图5,在步骤206中计算并存储所有时间段i的询问频率的运 行计数(running count)。该值用于为所有询问计算归一化询问频率Yq的平均频率 pO;)。该平均频率;/(r》如下给出
其中i表示每个离散时间单位而d表示这一情况下时间单位i的总数。
有关所有时间段的询问频率的运行计数还可用于为所有询问计算归一化询问
频率Yq的标准差(To;)。该标准差co;)如下给出
在步骤210中,如果已收集到期望数目时间单位的所有数据,随后该数据收
集进程结束。否则在步骤212中,相关引擎350等待下一个时间单位i经过,并且 相关引擎返回步骤200以便计算并存储在下一个时间单位内获取的数据。图5描述 了数据的实时收集。应该理解各实施例也可以代替地使用存储在数据库352上的询 问频率的过去日志以生成并存储上述有关所有询问的归一化询问频率。
使用如图5所示在每个离散时间单位内为每个询问生成并存储的归一化询问 频率,就可以计算任何两个询问p和q之间的相关系数A,以指示询问p和q之间 的瞬态相关。于是,在步骤214中(图6)询问q被输入搜索引擎的情况下,就可 以在步骤216中计算在该询问q和任何其他被存储的询问p之间的瞬态相关。询问 p和q之间的相关系数如下给出
<formula>formula see original document page 15</formula>相关系数A的范围在1至-l之间。高度瞬态相关的询问q和P可以具有很高 的A值,完全相关的询问q和p所具有的相关系数为1。逆相关的询问p和q可以 具有负相关系数,而不相关的询问p和q具有的相关系数为0。
如上所述,使用归一化频率函数来代替每个询问的单纯频率归一化地去除了 询问流量随时间固有变动的影响,并且避免了某些询问对显示出虚假的高度相关, 这些高度相关仅仅是因为每时间单位的询问总数比某些时期的要大。此外,以上述 方式测量相关系数使用频率函数的相关,而这与另一种常规的相似度测量,即协方 差相反。协方差无法归一化频率函数的变动,于是就使得大幅变动的询问不真实地 呈现出与许多其他询问的瞬态相关。
如图5和图6所阐明的那样,任何两个询问之间的相关系数都可由相关引擎
350使用上述等式连同为归一化询问Yq,i和Yp,i所存储的数据,以及与每个Yq和
Yp有关的平均频率和标准差来计算。然而,对于带有n个询问和d个时间单位的 询问流而言,这就在每次期望确定有关一输入询问的相关系数时要求存储dn个归 一化频率函数并且还需要线性传递所有这些数据。
虽然本方法可用于本发明的各实施例,但是一可选方案,即简化的数据模型 利用来自嵌入和最近领域算法中的技术,从而使得处理单元120能够用少得多的数 据和小得多的存储空间为每个询问表示归一化频率函数。这一可选方法还允许相关
引擎350以更短的处理时间并能够实时计算相关系数的情况下从该简化数据中精
确地估计输入询问和所有其他询问之间的相关系数。
如下将参考图7至图9描述根据本发明的数据简化方法。 一般说来,该简化 数据模型包括表示为例如128位的存储串的所有时间单位内的每个询问频率函数。 任何两个询问频率函数之间的相关系数随后就可通过表示两个询问频率函数的位 串内对应位彼此匹配的程度来给出。
如下将阐明该简化数据模型更为严格的数学解释,之后则是对在搜索处理环 境300中软件执行的解释。嵌入理论在例如P. lndyk和R. Motwani为the Thirtieth Annual ACM Symposium on the Theory of Computing, Dallas, Texas (1998拨表的题 为"Approximate nearest neighbors: Towards removing the curse of dimensionality"的 论文中另有描述,而最近邻域算法在例如W. Johnson和J. Lindenstrauss在 Contemporary Mathematics, 26:189-206 (1984)上发表的题为"Extensions of Lipschitz Maps Into a Hilbert Space"的论文中有所描述,这两篇论文都全文结合在此作为参 考。
参考图7至图9描述的简化数据模型利用在第i个时间单位内给出的归一化输 入询问频率能够被映射至成比例且归一化的向量^并可由该向量所描述,给出的
该向量为<formula>formula see original document page 16</formula>
其中n等于在第i个时间单位内的询问总数。经过所有d个时间单位的所有这 些向量《,,在d维欧几里德实空间扱d内为询问q定义了表示归一化频率函数的 单个询问频率向量《。询问频率向量《是在原点具有第一点而在d维实空间内
的(^,X2, ..., Xd)处具有第二点的向量,其中每个Xi是由经历i个时间单位的有
关询问q的每一个成比例且归一化的向量《,,所确定。
每一个询问频率向量都可用于确定将每个询问频率向量F9表示为^位串v(g) 的映射v(.): 3Rd— {0, 1}6。为5选择的值取决于期望的近似精确程度,而不取决 于原始维数d。在各实施例中,5可以在80至160位之间,并且还可以是128位。 应该理解在可选实施例中为^选择的值也可以小于80或大于160。
用于位串v(F》内3位的每一位的值(1或0)可以按在先前结合以供参考的P. lndyk的论文和W. Johnson的论文中,以及在M. Goemans和D. Williamson在 Journal of the ACM (JACM), 42(6): 1 1 15-1145 (1995)上发表的题为"Improved Approximation Algorithms for Maximum Cut and Satisfiability Problems Using SemidefmiteProgramming"的论文中所阐明的类似方式使用随机超平面来确定。更 具体地,映射v(.)由5个随机向量{r1,r2,...,r5}e扱d所定义,其中随机向量可被解 释为从高斯分布中提取的随机选定超平面的法向量。对于某一输入询问q而言,位 串v(F》第j位的值由询问频率向量F《位于第j个随机选定超平面的哪一侧所支配。 这由点积F^rj的符号给出。该点积的符号将由g和G之间角度余弦的符号所给出。 在。和《之间的角度大于90° (指示负点积)的情况下,则位串(在此还被称为"嵌 入")v(f》的第j个值将会是0。在^和《之间的角度小于9(T (指示正点积)的 情况下,则嵌入v(F》的第j个值将会是l。生成的超平面个数5大到足以提供超平 面的平均分布以生成精确表示每个询问频率函数的位串v(《)。
这一概念将参考示出了表示询问q和p的一对询问频率向量《和Fp的图7和 图8而得到更为详尽的解释。第一随机向量rj皮生成作为随机生成超平面的正交 向量。点积《.r,是负值,所以位串v(F》的第一位是0。类似地,点积Fp'n是负值, 所以位串v( ;)的第一位是0。第二随机向量r2被生成作为第二随机生成超平面的 正交向量。点积《力是正值,所以位串v(《)的第二位是1。类似地,点积f,T2 是正值,所以位串v( ;)的第二位是1。随后第三随机向量r3被生成作为第三随机 生成超平面的正交向量。点积《.r3是正值,所以位串v(f》的第三位是1。然而点 积fp.r3是负值,所以位串v(g)的第三位是0。这一生成随机向量r,至r6并获取其 与《和?;点积的进程持续,直到串v(f》和v(fp)内从第一位到第cM立的每一位都已 分配或1或0的位值。
在输入询问q和任何存储询问p之间的相关系数义可由嵌入v(f《)和v(fp)之间 从第1位到第5位对应相同位数的数所近似。更具体地,询问q和p之间的相关系 数;i由询问频率向量《和?;的点积所给出。这是两向量之间角度的余弦,或由弧度
测得的COS《p。使用上述嵌入方法,期望在位串内彼此相合的对应位所占分数预计 为l-^/;r。真实的相关系数与通过位一致所占分数l-^/;r给出的相关系数的近 似并不彼此相等,但是在语义相关询问中已是彼此足够接近,从而能够给出相关系 数的精确近似。例如,假设所关心的是具有0.9或更高相关系数义的询问
^二Cos"(0.9)-0.45弧度<formula>formula see original document page 17</formula>于是在本发明的各实施例中,在两个询问之间位一致分数是0.856或更高的情 况下,这些询问就可具有0.9或更高的相关系数,并且可以被认为是语义相关的询 问。
对应位的匹配分数越大,询问q和p之间相关系数的近似度就越高,并且各 询问也更为瞬态相关。可以看出在嵌入v(g)和v(fp)中的点积符号只会在随机生成 的超平面落入两个询问频率向量《和g之间的情况下才不一致。于是,两个询问
频率向量《和?;之间的角度越小,它们被随机超平面截开的可能性也越小,并且
询问q和p的相关系数也就越大。
简化数据模型允许以高效的时间和空间方式精确确定询问之间相关系数的相 当接近的近似。在把嵌入v(fp)存储为128位的一个实施例中,16字节的存储位置 能够存储每个嵌入。于是,例如40,000,000个询问的存储仅需要占用约640兆字节 的存储空间。
如下将参考图9描述执行上述简化数据数学运算的软件步骤。在图9的描述 中,假设经过所有期望的离散时间单位1至d的所有搜索询问的原始数据日志是从 前一时间段中获取并且已经存在于数据库352内。应该理解这些原始数据日志还可 以另外方式实时生成(即,这些原始数据不是先前存储的,而是在第i个时间单位 经过之后被实时记录的)。在任一实施例中,正如前述所指示的那样,原始频率数 据的日志通常在一预定时段内被存储并保持在数据库352内。
在参考图9的实施例中,在步骤230中检索给定时间单位内所有搜索询问 的原始数据日志。在步骤232中,相关引擎350可以从该离散时间单位i的搜 索询问日志中确定该时间单位期间每个存储询问的密度Yp,i。如前所述,在一 时间单位期间的每个询问的密度Yp,i如下给出
其中np,,是询问p在第i个时间单位期间出现的次数而H是在第i个时间单位期间 的询问总数。
在步骤236中,可以计算并存储有关所有询问的归一化询问频率Yp的平均频 率^(j;)的运行计数。并且可以在步骤238中计算并存储有关所有询问的归一化询
问频率Yp的标准差(T(。的运行计数。
在本发明的一个实施例中,相关引擎350在步骤240中检査在d个时间段总 数内是否还存在额外的离散时间段。如果存在额外的离散时间段,就在步骤242 内增加该时间单位并且相关引擎返回步骤230直到已经为所有询问计算了 i = 1至 d时所有的Yp,i值。 一旦已经为每个询问计算了离散时间单位1至d的所有归一化 询问频率Yp,i,就可以在步骤244中计算用于每个询问的归一化且成比例询问频率 向量5。无需存储用于每个离散时间段并用于每个询问的归一化询问频率Yp,i。然 而,即使在应用了数据简化技术的情况下,也可以在可选实施例中存储用于每个离 散时间段并用于每个询问的归一化询问频率Yp,i。
随后在步骤246中生成定义随机向量ij的随机超平面。这通过随机生成与给 定超平面正交的向量ij的每一分量来实现。也就是说,向量r」由从均值为0方差为 1的标准高斯分布中随机选出的d个值组成。在步骤248中计算每个询问频率向量 f与随机向量rj的点积。随后在步骤250中,相关引擎根据询问频率向量iM立于某 一随机向量rj的哪一侧,把0或l赋予每个串v(^)的第j位。随后在步骤252中 存储串v(g)有关每个询问的更新值。相关引擎350随后在步骤254中检査以观察 串v(Fp)中从1至5的每一位是否已被分配一位值。如果是,随后该数据收集进程 结束。如果不是,则在步骤256中递增j并且相关引擎返回步骤246进行该位生成 进程。
正如本领域普通技术人员所能领会的那样,以上识别步骤中的一部分在可选 实施例中可以按不同的次序执行。例如,代替确定有关所有串v(f》的第j位并在 随后递增j,可以确定单个串v(Fp)内的每一位,并在随后为所有剩余v(fp)重复该 进程。
使用根据参考图5至图6所述实施例或者参考图7至图9描述的数据简化实 施例而存储的任何排列询问数据,就可以确定键入询问q和所有存储询问P之间的 相关系数。如下将参考图IO描述用于在接下来识别与输入询问具有一阈值相关系 数的所有存储询问的形式模型。当在步骤260中键入询问q时,就可以在步骤262 从存储器中检索与其相对应串v(g)(在由数据简化技术操作的实施例中)。随后 在步骤264中做出对所有串v(f》中所有5位的线性传递以确定输入询问和所有其 他存储询问之间的相关系数A 。
在步骤266中识别其与键入询问的相关系数在一预定闳值之上的所有询问。 在本发明的各实施例中,相关系数的阈值可以是0.80 (可转化为嵌入中对应位的 0.795的一致性)。在另一些实施例中,相关系数的阈值可以是0.90 (可转化为上
述嵌入中对应位的0.856的一致性)。可以认为与输入询问的相关系数等于这些值
或在这些值之上的经识别询问与键入的询问具有高度的瞬态和语义相关。应该理解
在可选实施例中该相关系数的阈值可以低于0.8或者高于0.9。
一旦已经识别出与输入询问相关联的一个或多个搜索询问,就在步骤268中 将这些结果呈现给用户。对这一个或多个相关搜索询问的呈现在本发明的可选实施 例中可以被不同地处理。在一个实施例中,可以向用户提供查看已确定与键入搜索 询问语义相关的一个或多个搜索询问的选项。在一可选实施例中,这些相关搜索询 问可以不经提示地呈现给用户。在另一个可选实施例中,可以在输入询问的同时自 动搜索与该输入询问的相关系数在阈值之上的存储询问,并连同有关该输入询问的 搜索结果返回各结果。高度相关搜索询问的指示对广告业而言也颇有价值。
一旦一输入询问已被键入,对所有串v(F》内所有5位的线性传递可能会消耗 过多的时间。因此,本发明的各实施例利用一种能够在不牺牲或牺牲少量精确度的 情况下用縮短的时间找出相关询问的方案。査看图11描述的这一方案利用有关所 有询问n的存储串v(fp)。根据这一方案,算法的运行时间通过将相关引擎350检 查的询问数限制为那些其相关可能具有高于预定阈值A的询问而得以縮短。更具体 地,只检查那些与输入询问q在嵌入v(f《)和v(^)的前k位高度相关的存储询问p, 因为这些询问p最有可能与询问q高度相关。
随后将参考图11更为详尽地解释这一进程。在步骤280中,分配2k个存储段 (即,存储器缓冲区)。随后在步骤282中将每个存储的询问p组织成由其嵌入 v(fp)的前k位指示的存储段。也就是说,前k位相同的所有串都被组织成在相同 的存储段中。在本发明的各实施例中,k可以在10至30位之间,进一步地可以在 15至25位之间,并且在本发明的一个实施例中可以是20位。
一旦在步骤284中接收一输入询问q,处理单元在步骤286中只检査在含有q 的嵌入v(f》的存储段内的那些嵌入v(巧)(即,在q的存储段内的所有串),以及 那些被定义为与含有q的嵌入v(《)的存储段相当接近的存储段。如果一存储段b' 的k位与存储段b内对应位的一致性分数为p,则存储段b'被定义为与含有询问q 的存储段b相当接近。在本发明的各实施例中,p可以小于或等于相关系数义。相 关系数义为0.9时,/ 的范围可以位于0.6至0.9之间,或者可选地位于0.7至0.8 之间,或者在本发明的实施例中可选地为0.85。应该理解在本发明的可选实施例中, p可以小于0.6、大于0.9并且大于相关系数A。
一旦在步骤286中确定了存储段b和b',则在步骤288的本发明各实施例中
将上述存储段中每一个内的询问的所有5位与位串V(《)进行比较,以便从仅对前k 位的检查所得中去除虚假肯定,并且识别那些实际上等于或大于相关系数A的询
问。 一旦识别成相关询问,随后就在步骤290中如上参考图IO所述将这些询问呈
现给用户。
通过仅搜索询问q的存储段和相当接近的存储段,需要执行位比较的询问数 大幅减低。例如,当k:20且p:0.85,对于任何给定的存储段而言,仅需要检查 220= 1,048,576个存储段中的1351个。
本发明描述的实施例还进一步地测量给定时间单位内的进入询问数据。然而, 由于不同的时区,例如来自美国东海岸的询问的发送时刻就与例如来自美国西海岸 的询问发送时刻不同,即使这些询问是同时到达搜索引擎位置的。在另外各可选实 施例中,可以在计算归一化询问频率时考虑发送该询问的时区位置,从而使得例如 在美国东部时区4pm发送的询问能够被包括在与在美国西部时区4pm发送的询问 所在相同的时间单位内,即使这些询问到达搜索引擎位置的时间不同。
在上述实施例中,为所有时间单位存储在第i个时间单位期间的每个询问的密 度Yp,i。在本发明的另一实施例中,本发明的上述方法可以在不存储有关各时间单 位的每个询问的密度Yp,i的情况下开展。更具体地,如前所述,随机向量r和询问 频率向量f,勺点积符号可用于确定从中可以精确近似两询问的相关系数的嵌入 v(f》。然而可以在不存储询问密度Yp,i的过去值的情况下计算r和g的点积符号。 r和f《的点积给出如下
tr(i;)的值不影响点积的符号,所以在确定点积符号时无需该a(j;)。于是, 所需要的是如下的符号<formula>formula see original document page 21</formula>
项f ^,xr,和A^)xf。的计算都无需参考询问密度Yp,i的过去值。第一项可以
<formula>formula see original document page 21</formula>由接收到Ypi新值计算。第二项可以仅通过存储i个时间单位经过时Yp,i的和与
ri的和来计算。于是,r和《的点积符号就可以在不存储询问密度Yp,i的过去值 的情况下算出。
在上述实施例中,不同时间单位i的存储询问密度Yp,i在计算归一化且成 比例的频率向量^时的权重相同。然而在可选实施例中,可以将指数衰减函数 应用于更早时间单位的询问密度Yp,i,从而使得更近时间单位的询问密度在确
定归一化且成比例的频率向量?;时的权重更重。例如,当使用当前时间单位的
新询问密度Yp,i来更新频率向量Fp时,在添加当前时间单位的询问密度之前可 以将小于l的乘数(例如,0.5至0.99,并且作为另一示例的0.9)应用于所有 过去询问密度之和。于是,来自更早时间段的询问密度信息在频率向量Fp中权 重就更轻。
在上述各实施例中,语义关系由瞬态相关所确定,即由给定时间单位内两 个询问的密度关系确定。应该理解也可以使用给定时间单位内密度之外的其他 准则作为确定各询问之间相关系数和语义关系的基础。例如,在一个可选实施 例中,由大量用户中单个用户生成的询问可以使用根据本发明上述的方法来进 行相关。这可以是完全时间无关的。作为另一个实施例,由特定时间段内单个 用户生成的询问可以使用上述方法进行相关。可以预计本发明的各方法在可选 实施例中还可用于以地理区域或其他准则为基础进行询问相关。
在前已出于例证和描述的目的呈现了本发明的详细描述。并不旨在穷竭地 或将本发明限制在公开的精确形式。根据上述教示可以进行许多修改和变化。 选择描述各实施例是为了最好地解释本发明的原理及其实际应用,从而让本领 域普通技术人员能够在适于特定预期使用的各种不同的实施例中使用各种不 同的修改最好地利用本发明。本发明的范围应由所附权利要求所限定。
权利要求
1.一种用于确定两个搜索引擎询问之间语义关系的方法,包括如下步骤(a)归一化关于所述两个搜索引擎询问的询问数据;以及(b)基于在所述步骤(a)中归一化的所述询问数据来识别所述两个询问之间的语义相关。
2. 如权利要求1所述的用于确定两个搜索引擎询问之间语义关系的方法,其特征在于,关于所述两个搜索引擎询问的所述数据是与所述两个搜索引擎询问的所 述频率有关的瞬态数据。
3. 如权利要求l所述的用于确定两个搜索引擎询问之间语义关系的方法,其 特征在于,归一化询问频率数据的所述步骤(a)包括测量在一离散时间单位内与 所有其他搜索引擎询问的组合的瞬态询问频率数据相比的有关每个搜索引擎询问 的瞬态询问频率数据的步骤。
4. 如权利要求l所述的用于确定两个搜索引擎询问之间语义关系的方法,其 特征在于,所述两个搜索引擎询问的第一询问是输入询问,而所述两个搜索引擎询 问的第二询问是存储询问,本方法还包括在确定所述输入询问和所述存储询问之间 存在高于阈值水平的语义关系的情况下向用户或广告商建议所述存储询问的步骤。
5. 如权利要求l所述的用于确定两个搜索引擎询问之间语义关系的方法,其 特征在于,识别所述两个询问之间语义相关的所述步骤(b)包括用一位串表示所 述两个搜索弓I擎询问频率的所述数据,并且检查表示所述两个搜索弓I擎询问频率的 所述位串内各对应位彼此匹配的程度的步骤。
6. 如权利要求l所述的用于确定两个搜索引擎询问之间语义关系的方法,其 特征在于,识别所述两个询问之间语义相关的所述步骤(b)包括计算表示所述第 一询问的所述归一化频率的第一向量与表示所述第二询问的所述归一化频率的第 二向量的点积的步骤。
7. —种用于确定两个搜索引擎询问之间语义关系的方法,包括如下步骤(a) 用位串表示所述两个搜索引擎询问的每一个询问;以及(b) 基于表示所述两个搜索引擎询问的所述位串内各对应位彼此匹配的程度 识别所述两个搜索弓1擎询问之间的语义相关。
8. 如权利要求7所述的用于确定两个搜索引擎询问之间语义关系的方法,其 特征在于,关于所述两个搜索引擎询问的所述数据是与所述两个搜索引擎询问的所 述频率有关的瞬态数据。
9. 如权利要求7所述的用于确定两个搜索引擎询问之间语义关系的方法,其 特征在于,用位串表示所述两个搜索引擎询问的每一个询问的所述步骤(a)包括 用128位的位串表示所述两个搜索弓I擎询问的每一个询问的步骤。
10. 如权利要求7所述的用于确定两个搜索引擎询问之间语义关系的方法, 其特征在于,所述两个搜索引擎询问的询问q是输入询问,而所述两个搜索引擎询 问的询问p是存储询问。
11. 如权利要求IO所述的用于确定两个搜索引擎询问之间语义关系的方法, 其特征在于,还包括在确定所述输入询问和所述存储询问之间存在高于阈值水平的 语义关系的情况下向用户建议所述存储询问的步骤。
12. 如权利要求IO所述的用于确定两个搜索引擎询问之间语义关系的方法, 其特征在于,还包括计算所述两个搜索引擎询问之间的相关系数的步骤,所述相关 系数指示所述两个搜索引擎询问之间的所述语义关系的程度。
13. 如权利要求7所述的用于确定两个搜索引擎询问之间语义关系的方法, 其特征在于,用位串表示所述两个搜索引擎询问的每一个询问的所述步骤(a)包 括生成多个超平面,并且在用于所述两个搜索引擎询问的第一个询问的所述位串中 生成一位,所述位由与所述超平面之一正交的第一向量与表示所述第一搜索弓I擎询 问的第二向量的点积来确定的步骤。
14. 如权利要求7所述的用于确定两个搜索引擎询问之间语义关系的方法, 其特征在于,还包括如下步骤(c) 扫描所述位串的每一位串中所述各位的一部分,以识别在所述第一和第 二位串的所述部分内各对应位的某些部分是否彼此匹配;以及(d) 如果在所述步骤(c)中确定在所述第一和第二位串的所述部分内各对 应位的某些部分彼此匹配,则对应地扫描所述位串内的剩余各位。
15. —种具有计算机可执行指令的计算机可读介质,所述计算机可执行指令用于执行的步骤包括(a) 归一化关于多个搜索引擎询问中的每一询问的询问频率数据;(b) 将在所述步骤(a)中归一化的所述询问数据表示为相应的位串,所述 多个搜索引擎询问中的每一个有一个位串;以及(c) 从所述多个搜索引擎询问中选择一个或多个搜索引擎询问,所选择搜索引擎询问具有高于所述多个搜索引擎询问的基准搜索引擎询问的第一阈值水平的 相关度。
16. 如权利要求15所述的具有计算机可执行指令的计算机可读介质,其特征在于,所述选择步骤(C)包括如下步骤(i) 扫描与所述多个搜索引擎询问相关联的所述位串的每一位串中所述各位 的一部分,以识别具有在所述位串的所述部分内各对应位的某些部分彼此匹配的一 个或多个搜索引擎询问;以及(ii) 扫描所述的一个或多个搜索引擎询问以识别具有高于所述基准搜索引擎 询问的所述第一阈值水平的相关度的所述一个或多个搜索引擎询问。
17. 如权利要求16所述的具有计算机可执行指令的计算机可读介质,其特征 在于,扫描与所述多个搜索引擎询问相关联的所述位串的每一位串中所述各位的一 部分的所述步骤(i)包括扫描所述位串的每一位串中的20位的步骤。
18. 如权利要求15所述的具有计算机可执行指令的计算机可读介质,其特征 在于,将在所述步骤(a)中归一化的所述询问数据表示为相应的位串的所述步骤(b)包括生成多个超平面,并且在用于所述多个搜索引擎询问的第一个询问的所 述位串中生成一位,所述位由与所述超平面之一正交的第一向量与表示所述第一搜 索引擎询问的第二向量的点积所确定的步骤。
19. 如权利要求15所述的具有计算机可执行指令的计算机可读介质,其特征 在于,还包括向客户建议所述一个或多个搜索询问的步骤。
20. 如权利要求15所述的具有计算机可执行指令的计算机可读介质,其 特征在于,还包括计算所述基准搜索引擎询问与所述一个或多个搜索引擎询问 之间的相关系数的步骤,所述相关系数指示所述两个搜索引擎询问之间的所述 语义关系的程度。
全文摘要
一种基于输入询问和存储询问的瞬态相关确定该输入询问和该存储询问之间语义相关的方法。各实施例包括对输入询问和存储询问之间相关系数的形式计算。可选实施例包括在牺牲少许或者不牺牲相关系数精确性的情况下使用简化数据模型和高效数据检查来计算该相关系数的方法。
文档编号G06F7/00GK101171568SQ200680014980
公开日2008年4月30日 申请日期2006年4月21日 优先权日2005年5月2日
发明者N·伊莫里卡, S·智恩 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1