CN104715063B - 搜索排序方法和装置 - Google Patents

搜索排序方法和装置 Download PDF

Info

Publication number
CN104715063B
CN104715063B CN201510149901.1A CN201510149901A CN104715063B CN 104715063 B CN104715063 B CN 104715063B CN 201510149901 A CN201510149901 A CN 201510149901A CN 104715063 B CN104715063 B CN 104715063B
Authority
CN
China
Prior art keywords
phrase
sample
search entry
vector
query entries
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.)
Active
Application number
CN201510149901.1A
Other languages
English (en)
Other versions
CN104715063A (zh
Inventor
张军
牛罡
吴先超
刘占
刘占一
于佃海
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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201510149901.1A priority Critical patent/CN104715063B/zh
Publication of CN104715063A publication Critical patent/CN104715063A/zh
Application granted granted Critical
Publication of CN104715063B publication Critical patent/CN104715063B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/90335Query processing
    • G06F16/90348Query processing by searching ordered data, e.g. alpha-numerically ordered data
    • 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/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了搜索排序方法和装置。所述搜索排序方法包括:使用查询条目样本以及相应的正例搜索条目样本和负例搜索条目样本,对以短语向量集合为参数的预设模型进行训练,确定短语向量集合;基于短语向量集合,分别计算待响应的查询条目与对应的各搜索条目的相似度;根据相似度确定对查询条目进行响应时,各搜索条目的呈现顺序。该搜索排序方法可通过短语向量确定查询条目和搜索条目的匹配程度,并据此对搜索条目进行排序,从而进一步改善了搜索排序的准确性。

Description

搜索排序方法和装置
技术领域
本申请涉及互联网技术领域,具体涉及网络搜索技术领域,尤其涉及搜索排序方法和装置。
背景技术
随着互联网技术的不断发展,通过网络来搜索各类信息已经成为人们获取信息资源的主要方式之一。在搜索完成后,搜索系统通常会将获得的大量搜索结果,按照一定的先后顺序展示给用户。由于对搜索结果的排序情况代表了搜索系统对用户搜索意图的预测,因此是评价搜索是否全面、准确的重要标准之一。
现有技术在对搜索结果进行排序时,可以将短语作为将搜索的关键词句与搜索结果进行匹配的基本单位,然后根据匹配程度对搜索结果进行排序。这个方法比起之前以词为单位进行匹配排序的方法,能够在一定程度上改善对搜索结果进行排序的准确性。但是,在进行短语匹配时,其必须基于预先建立的短语表进行完全匹配,而对于短语表中未记录的短语,则又会退回到词匹配的方式,从而影响了搜索排序的准确性。
发明内容
本申请提供了一种搜索排序方法和装置,可以将短语表示为向量形式,从而可通过短语向量确定查询条目和搜索条目的匹配程度,提高了匹配精度,从而实现了改善搜索结果准确性的目的。
第一方面,本申请提供了一种搜索排序方法,包括:使用查询条目样本以及相应的正例搜索条目样本和负例搜索条目样本,对以短语向量集合为参数的预设模型进行训练,确定所述短语向量集合;基于所述短语向量集合,分别计算待响应的查询条目与对应的各搜索条目的相似度;根据所述相似度确定对所述查询条目进行响应时,所述各搜索条目的呈现顺序。
第二方面,本申请提供了一种搜索排序装置,包括:向量确定模块,用于使用查询条目样本以及相应的正例搜索条目样本和负例搜索条目样本,对以短语向量集合为参数的预设模型进行训练,确定所述短语向量集合;计算模块,用于基于所述短语向量集合,分别计算待响应的查询条目与对应的各搜索条目的相似度;排序模块,用于根据所述相似度确定对所述查询条目进行响应时,所述各搜索条目的呈现顺序。
本申请提供的搜索排序方法和装置,首先可以通过对以短语向量集合为参数的预设模型进行训练,获得大量短语的向量表示即向量短语集合,然后利用向量短语计算查询条目与各个搜索条目之间的相似度,最后根据相似度的计算结果对搜索条目进行排序。本申请可以将短语表示为向量形式,从而在对查询条目和搜索条目进行匹配时,可通过短语向量确定匹配程度,提高了查询条目和搜索条目的匹配精度,从而进一步改善了搜索排序的准确性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出了可以应用本申请实施例的示例性系统架构100;
图2是本申请搜索排序方法的一个实施例的流程图;
图3是本申请搜索排序方法的另一个实施例的流程图;
图4是本申请分别将查询条目样本、正例搜索条目样本和负例搜索条目样本转换为以短语向量集合为参数的待定叠加向量的一个实施例的流程图;
图5是本申请例对以短语向量集合为参数的预设模型进行训练,确定短语向量集合的一个实施例的流程图;
图6是本申请基于短语向量集合,分别计算待响应的查询条目与对应的各搜索条目的相似度的一个实施例的流程图;
图7是本申请搜索排序装置的一个实施例的功能模块构架示意图;
图8示出了适于用来实现本申请实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请实施例的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102、网络103和服务器104。网络103用以在终端设备101、102和服务器104之间提供通信链路的介质。网络103可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户110可以使用终端设备101、102通过网络103与服务器104交互,以接收或发送消息等。终端设备101、102上可以安装有各种通讯客户端应用,例如即时通信工具、邮箱客户端、浏览器软件等。
终端设备101、102可以是各种电子设备,包括但不限于个人电脑、智能手机、智能手表、平板电脑、个人数字助理等等。
服务器104可以是提供各种服务的服务器。服务器可以对接收到的数据进行存储、分析等处理,并将处理结果反馈给终端设备。
需要说明的是,本申请实施例所提供的搜索排序方法可以由终端设备101、102执行,也可以由服务器104执行,搜索排序装置可以设置于终端设备101、102中,也可以设置于服务器104中。在一些实施例中,以短语向量集合为参数的预设模型可以在服务器104中进行训练,确定的短语向量集合可以存储在终端设备101、102中,以用于计算相似度。例如,在对搜索结果进行排序时,如果网络103通畅,可以由服务器104对搜索结果进行排序后返回,如果没有网络或网络103不畅通,可以由终端设备101、102直接对搜索结果进行排序。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
首先参考图2,其示出了本申请搜索排序方法的一个实施例的流程图。
如图2所示,在步骤201中,使用查询条目样本以及相应的正例搜索条目样本和负例搜索条目样本,对以短语向量集合为参数的预设模型进行训练,确定短语向量集合。
要基于短语向量对搜索条目进行排序,首先要确定出能够代表短语的具体向量,即短语向量。由于每个短语都需要用不同的短语向量进行表示,因此,确定短语向量实际上是需要确定出由大量的短语向量所构成的短语向量集合。在本实施例中,可以首先获取查询条目和搜索条目的样本数据,然后使用预先设计好的机器学习方法来对样本数据进行学习,从而确定出短语向量集合中的各个短语向量。
具体地,可以首先从搜索系统的查询日志中获取足够量的查询条目样本,以及与该查询条目样本对应的正例搜索条目样本和负例搜索条目样本。搜索系统可以是指现有技术中的搜索平台系统,例如,百度搜索平台等。在搜索系统的查询日志中,通常记录有用户之前在搜索系统中搜索过的字、词、句等查询条目,同时也记录有搜索系统针对每一条查询目录所返回的搜索结果。每个搜索结果中通常会包括很多个网页,每个网页都可以用一个搜索条目来表示。搜索条目通常是对网页的关键内容进行描述的语句,例如网页的标题、摘要或所记载的关键文字内容都可以作为搜索条目。当搜索系统将很多个网页作为搜索结果返回给用户时,用户会选择性地打开其感兴趣的网页,而忽略无关的网页。这样,在查询日志中,代表那些被打开的网页的搜索条目就可以被记录为与查询条目对应的正例搜索条目,而代表那些未被打开的网页的搜索条目就可以被记录为是与查询条目对应的负例搜索条目。
在从搜索系统的查询日志中获得查询条目以及相应的正例搜索条目和负例搜索条目后,可以将这些数据都作为样本数据,对预设的训练模型进行训练。由于训练的最终目的是要确定短语向量集合,因此可以将短语向量集合看作是预设模型中的一个未知参数,然后对预设模型进行训练。当上述参数能够让预设模型满足特定的训练目标时,就可以认为此时的参数就是需要确定的短语向量集合。
接着,在步骤202中,基于短语向量集合,分别计算待响应的查询条目与对应的各搜索条目的相似度。
当在上述步骤201中确定出短语向量集合后,就可以得到在该短语向量集合中的各个短语向量的具体维数和取值。当搜索系统再次接收到用户的查询请求,也就是接收到用户输入的待响应的查询条目时,可以首先在网络上对该查询条目进行搜索,以得到与该查询条目对应的多个搜索条目。然后再计算查询条目与每个搜索条目之间的相似度。具体地,可以首先将从短语向量集合中获取具体的短语向量,然后可以将查询条目和每个搜索条目均转换为由多个短语向量组成的向量集合。这样,就可以计算出查询条目的向量集合与每个搜索条目的向量集合之间的相似度。
最后,在步骤203中,根据相似度确定对查询条目进行响应时,各搜索条目的呈现顺序。
当在上述步骤202中,通过计算得到了查询条目与每个搜索条目之间的相似度之后,可以根据相似度的具体数值,对搜索条目进行排序。在一种可能的方式中,搜索条目与查询条目的相似度越高,排序的时候就越靠前。在另一种可能的方式中,可以对于相似度在一定范围内的多个搜索条目,进行随机排序。例如,可以将相似度在0.9到1之间的多个搜索条目,整体排在相似度在0.7到0.9之间的多个搜索条目之前。同时,相似度在0.9到1之间的多个搜索条目之间的排列顺序,可以随机确定。在确定出搜索条目的排列顺序后,搜索系统就可以按照这个顺序将搜索条目呈给用户,作为对查询条目的响应。
本实施例中的搜索排序方法,可以首先通过对以短语向量集合为参数的预设模型进行训练,获得大量短语的向量表示即向量短语集合,然后利用向量短语计算查询条目与各个搜索条目之间的相似度,最后根据相似度的计算结果对搜索条目进行排序。本申请可以将短语表示为向量形式,从而在对查询条目和搜索条目进行匹配时,可通过短语向量确定匹配程度,提高了查询条目和搜索条目的匹配精度,从而进一步改善了搜索排序的准确性。
进一步参考图3,其示出了本申请搜索排序方法的另一个实施例的流程图。
如图3所示,在步骤301中,分别将查询条目样本、正例搜索条目样本和负例搜索条目样本转换为以短语向量集合为参数的待定叠加向量。
在从搜索系统的查询日志中获得查询条目样本,以及与该查询条目样本对应的正例搜索条目样本和负例搜索条目样本之后,可以首先将每个条目样本都拆分为多个短语。在对条目样本进行拆分的时候,如果条目样本是由多个短语组成的句子,则可以根据通用的语法规则将其拆分为多个短语;如果条目样本是一个短语,则可以将这一个短语作为拆分后的短语;如果条目样本是一个词,则可以将这一个词看作是拆分后的短语。这样,每一个条目样本都可以被拆分成至少一个短语。然后,可以将每个短语都用一个向量形式来表示,也就是说,可以用一个维度和取值都未知的向量来表示短语。当一个条目样本被拆分为n(n为大于0的整数)个短语时,就可以将该条目样本表示为n个短语向量叠加的形式。由于每个短语向量的维度和取值都是未知的,需要经过后续的机器学习才能确定的。因此,这些短语向量叠加后得到的条目样本,就可以被看作是以短语向量集合为参数的待定叠加向量。
接着,在步骤302中,分别计算查询条目样本的待定叠加向量与正例搜索条目样本和负例搜索条目样本的待定叠加向量的第一相似度和第二相似度。
当在上述步骤301中将各个条目样本都转换为待定叠加向量之后,由于每个条目样本都可以以向量形式进行表示,因此,可以利用计算向量相似度的方法来计算搜索条目样本和查询条目样本之间的相似度。具体地,可以计算查询条目样本的待定叠加向量与正例搜索条目样本的待定叠加向量之间的第一相似度,同时计算查询条目样本的待定叠加向量与负例搜索条目样本的待定叠加向量之间的第二相似度。相似度代表了两个向量之间的相似程度,相似度值越大说明两个向量越相近,其取值范围可以是[-1,1]。当相似度为1时,可以认为两个向量完全相同。而当相似度为-1时,则可以认为两个向量完全不同。具体计算相似度的方法,可以是现有技术中常用的计算向量相似度的方法,例如内积法、余弦函数法或皮尔逊相关系数法等。
然后,在步骤303中,以第一相似度与第二相似度的差值最大化为训练目标,构建以短语向量集合为参数的预设模型。
由于在上述步骤302中,计算得到的第一相似度和第二相似度中都包括有多个未知的短语向量,因此第一相似度和第二相似度都可以被看作是以短语向量集合为参数的计算函数。在确定短语向量集合时,最优的短语向量集合应当使得查询条目样本与正例搜索条目样本尽量一致,而与负例搜索条目样本尽量不同。也就是说,第一相似度越大越好,同时第二相似度越小越好。基于上述需求,可以以第一相似度与第二相似度的差值最大化为训练目标,构建一个训练模型。该训练模型就可以被当作是以短语向量集合为参数的预设模型
继而,在步骤304中,使用查询条目样本以及相应的正例搜索条目样本和负例搜索条目样本,对以短语向量集合为参数的预设模型进行训练,确定短语向量集合。
当在上述步骤303中得到预设模型后,就可以使用样本数据对这个模型进行训练,使得第一相似度与第二相似度之间的差值不断增大。当第一相似度与第二相似度的差值达到最大时,预设模型中所使用的作为参数的短语向量集合就可以作为最终确定的短语向量集合。
接着,在步骤305中,基于短语向量集合,分别计算待响应的查询条目与对应的各搜索条目的相似度。
最后,在步骤306中,根据相似度确定对查询条目进行响应时,各搜索条目的呈现顺序。
在本实施例中,步骤304~306分别与图2中的步骤201~203相同,在此不再赘述。
在本实施例中,可以分别计算查询条目样本与正例搜索条目样本和负例搜索条目样本的第一相似度和第二相似度,并将这两个相似度的差值最大化作为确定出短语向量集合的条件,从而可以提高短语向量的准确性。
进一步参考图4,其示出了本申请分别将查询条目样本、正例搜索条目样本和负例搜索条目样本转换为以短语向量集合为参数的待定叠加向量的一个实施例的流程图。
如图4所示,在步骤401中,构建查询条目样本与正例搜索条目样本的短语对应表。
在本实施例中,短语对应表可以是指查询条目样本中的短语与正例搜索条目样本的短语相互对应的一个表格。在构建该短语对应表时,可以利用现有技术中的机器翻译技术进行构建。也就是说,可以将查询条目样本和正例搜索条目样本看成是两种不同语言的文字。这样,一个查询条目样本就可以被“翻译”为多个正例搜索条目样本,而一个查询条目样本和与其对应的一个正例搜索条目样本,就可以构成一个可以相互翻译的“翻译对”。然后,就可以使用机器翻译技术中的短语抽取方法,对查询条目样本和正例搜索条目样本中的短语进行抽取,从而得到短语对应表。
在本实施例的一个可选实现方式中,构建查询条目样本与正例搜索条目样本的短语对应表可以包括:将查询条目样本与对应的正例搜索条目样本进行词语对齐;将对齐后的查询条目样本和正例搜索条目样本进行短语抽取,得到短语对应表。在构建短语对应表时,可以使用机器翻译技术中的词语对齐方法,将查询条目样本与对应的正例搜索条目样本进行词语对齐。例如,可以使用EM算法(Expectation Maximization Algorithm,期望最大化算法)对查询条目样本与正例搜索条目样本进行迭代训练,由句子对齐得到词语对齐。在将查询条目样本与对应的正例搜索条目样本进行词语对齐之后,就可以直接进行短语抽取。例如,可以从词对齐开始,遍历查询条目样本中的每一个源短语,寻找与之对齐的正例搜索条目样本中的目标短语。在确定了某一个源短语之后,收集它的每一个词所对应的目标词,寻找这些目标词的最小位置和最大位置。之后,确定在这两个位置之间的目标词是否全部对位于该源短语中的词,如果能够完全对应(也就是与词对齐完全相容),则抽取该短语对,否则就放弃。从查询条目样本与正例搜索条目样本中所抽取出的所有短语对,就可以构成短语对应表。
需要说明的是,本可选实现方式中的短语抽取方法与机器翻译中的短语抽取方法并不完全相同。本实施例的主要目的是构建查询条目样本与正例搜索条目样本的短语对应表,而并不关注查询条目样本中的短语与正例搜索条目样本中的短语的“翻译”概率。因此,在词语对齐后并不需要进行词语评分,并且在抽取短语后也不需要进行短语评分。也就是说,不需要计算词与词之间,或短语与短语之间的最大“翻译”概率。
接着,在步骤402中,基于短语对应表,将查询条目样本、正例搜索条目样本和负例搜索条目样本分别拆分为一个第一短语序列,第一短语序列中包括至少一个短语。
当在上述步骤401中得到短语对应表后,可以以该短语对应表为依据,对各个条目样本进行拆分。短语对应表中包括两类短语,第一类短语是从查询条目样本中抽取出来的,而第二类短语是从正例搜索条目样本中抽取出来。具体拆分时,可以将查询条目样本与第一类短语进行匹配,匹配成功就拆分出一个短语,直到将整个搜索条目样本拆分完毕,就可以得到一个由至少一个短语组成的短语序列,即第一短语序列。例如,可以将条目样本“北京市公安局交通管理局”拆分为由“北京市公安局交通管理局”这三个短语组成的短语序列。同理,可以将正例搜索条目样本、负例搜索条目样本与上述第二类短语进行匹配拆分,以得到各自的第一短语序列。
可选地,采用最大匹配方式执行上述拆分。在通过短语匹配将查询条目样本、正例搜索条目样本和负例搜索条目样本分别拆分为一个第一短语序列的过程中,每次都可以优先使用最长的短语进行匹配。这样匹配出来的短语的颗粒度较大,准确性通常也比较高。具体地,可以使用现有技术中常见的最大匹配算法,例如正向最大匹配法、逆向最大匹配法和双向最大匹配法等,执行上述拆分。
继而,在步骤403中,将第一短语序列中的各短语分别转换为待定短语向量。
当在上述步骤402得到各个条目样本的第一短语序列后,可以进一步将第一短语序列中的各短语分别转换为待定短语向量。待定短语向量可以是指虽然具备向量形式,但是具体的维度和取值都未知的一个向量。并且,不同短语的待定短语向量是不同的。具体地,在将第一短语序列中的各短语分别转换为待定短语向量时,可以为每个第一短语序列中的所有短语表示为不同的向量形式,即不同的待定短语向量。这样,作为参数的短语向量集合,就可以认为是包括了所有待定短语向量的一个向量集合。
最后,在步骤404中,分别将每个第一短语序列中的所有待定短语向量进行叠加,得到查询条目样本、正例搜索条目样本和负例搜索条目样本的以短语向量集合为参数的待定叠加向量。
具体地,可以将查询条目样本拆分得到的第一短语序列中的、所有短语的待定短语向量进行叠加,这样就得到了以短语向量集合为参数的查询条目样本的待定叠加向量。例如,一个查询条目样本Query拆分得到的第一短语序列中包括L个短语:Qphrase1、Qphrase2、…、QphraseL,则Query的叠加向量V(Query)可以表示为:
V(Query)=V(Qphrase1)+V(Qphrase2)+…+V(QphraseL)
其中,V(Qphrase1)、V(Qphrase2)、…V(QphraseL)代表待定短语向量。
同理,可以得到同样以短语向量集合为参数的正例搜索条目样本和负例搜索条目样本的待定叠加向量。
在本实施例的一个可选实现方式中,短语向量为维度不大于1000的低维度实数向量。例如,最终确定的短语向量的具体形式可以是如下形式:[0.355,-0.687,-0.168,0.103,-0.231,...]的低维实数向量,维度一般不超过1000的整数。若维度太少,则不能充分表示每个短语之间的不同,而维度太多,则计算量会比较大。可选地,短语向量的维度可以在50至1000之间,从而可以同时兼顾准确性和计算效率。
本实施例在将各类条目样本转换为待定叠加向量时,可以首先根据查询条目样本与正例搜索条目样本构建一个短语对应表,然后再根据该短语对应表对各类条目样本进行拆分得到短语序列,从而进一步提高了将短语拆分的准确性。
图5示出了根据本申请例对以短语向量集合为参数的预设模型进行训练,确定短语向量集合的一个实施例的流程图。
在本实施例中,预设模型为损失函数模型。在统计学中,损失函数是一种衡量损失和错误的函数,其可以用于描述系统在不同参数值之下的损失。当以上述第一相似度与第二相似度的差值最大化为训练目标,构建本实施例中的损失函数模型时,可以将第一相似度与第二相似度之差作为损失函数中的自变量。这样,损失函数模型就可以被看作是以短语向量集合为参数的预设模型。
如图5所示,在步骤501中,将查询条目样本、正例搜索条目样本和负例搜索条目样本的待定叠加向量作为样本数据,对损失函数模型进行训练。
具体地,在得到上述以短语向量集合为参数的损失函数模型后,可以将查询条目样本、正例搜索条目样本和负例搜索条目样本的待定叠加向量作为样本数据,对损失函数模型进行训练。通常情况下,可以首先为每个待定短语向量赋予一个初始值,然后将初始值带入一组查询条目样本、正例搜索条目样本和负例搜索条目样本的待定叠加向量,以计算损失函数的值。接着,可以根据计算的函数值调整待定短语向量的向量值,然后将其带入一组新的查询条目样本、正例搜索条目样本和负例搜索条目样本,以重新计算损失函数的值。
在步骤502中,当损失函数模型的值最小时,得到短语向量集合。
当多次重复上述步骤501中的计算损失函数值和调整待定短语向量的取值这两个步骤后,也就是通过多次迭代使得损失函数的值最小时,就得到了短语向量集合。这是由于损失函数的值最小时,可以认为,目前得到的短语向量集合与实际可以代表短语的短语向量集合的差别最小,也就可以被看作时实际的短语向量集合。
为了更好地理解本实施例的方案,下面以一种损失函数Hinge Loss为例,对本实施例做具体说明。以Hinge Loss构建的损失函数J(θ)具体为:
其中,θ代表短语向量集合,Query,T+,T-分别代表查询条目样本、正例搜索条目样本、负例搜索条目样本,V(Query)、V(T+)、V(T-)分别代表查询条目样本、正例搜索条目样本、负例搜索条目样本的待定叠加向量,margin为0-1之间的预设间隔值,Sim表示通过余弦函数计算相似度。
在对J(θ)进行训练时,可以利用SGD(Stochastic Gradient Descent随机梯度下降)与BP(Back Propagation,反向传播)算法,得到最优的参数θ。SGD算法可以通过计算某一组训练样本的梯度(参数的偏导数),来迭代更新随机初始化过的参数;更新的方法是每次让参数减去所设置的一个学习率(Learning Rate)乘以计算出的梯度,从而在多次迭代之后可以让深度学习网络根据参数所计算出的值,与实际值之间的差在所定义的损失函数上最小化。也就是说,可以首先对θ进行随机初始化,然后将某一组查询条目样本、正例搜索条目样本、负例搜索条目样本带入J(θ),并通过BP算法计算其梯度值G。接着,对θ进行更新得到的θ’=θ-Gα,其中α为学习率。这样就可以用θ’继续计算J(θ)在另一组样本数据下的梯度G’。通过多次迭代,当J(θ)的值最小时,θ就是要求得的短语向量集合。
本实施例通过对损失函数模型进行训练,得到最终的短语向量集合,确保了短语向量的准确斯能够。
图6示出了根据本申请例基于短语向量集合,分别计算待响应的查询条目与对应的各搜索条目的相似度的一个实施例的流程图。
如图6所示,在步骤601中,基于短语对应表,将待响应的查询条目以及对应的各搜索条目分别拆分为一个第二短语序列,第二短语序列中包括至少一个短语。
可以上述步骤401中构建的短语对应表为依据,对待响应的查询条目以及对应的各搜索条目进行拆分。短语对应表中包括两类短语,第一类短语是从查询条目样本中抽取出来的,而第二类短语是从正例搜索条目样本中抽取出来。具体拆分时,可以将待响应的查询条目与第一类短语进行匹配,匹配成功就拆分出一个短语,直到将整个待响应的查询条目拆分完毕,就可以得到一个由至少一个短语组成的短语序列,即第二短语序列。同理,可以将搜索条目与上述第二类短语进行匹配拆分,以得到各自的第二短语序列。可选地,采用最大匹配方式执行上述拆分。
接着,在步骤602中,根据短语向量集合,获取第二短语序列中各短语的短语向量。
当在上述步骤601得到各个条目的第二短语序列后,可以进一步从已经确定出的短语向量集合中,查找出第二短语序列中各短语的短语向量。
继而,在步骤603中,分别将每个第二短语序列中的所有短语向量进行叠加,得到查询条目以及各搜索条目的叠加向量。
在得到每个短语的短语向量后,就可以将由待响应的查询条目拆分得到的第二短语序列中的、所有短语的短语向量进行叠加,这样就得到了查询条目的叠加向量。同理,可以得到各搜索条目的叠加向量。
最后,在步骤604中,分别计算查询条目的叠加向量与各搜索条目的叠加向量的相似度。
具体地,可以通过内积法或余弦函数法,计算查询条目的叠加向量与每个搜索条目的叠加向量的相似度。这个相似度就可以代表每个搜索条目与待响应的查询条目之间的匹配程度。
本实施例在将各类条目转换为叠加向量时,可以根据由查询条目样本与正例搜索条目样本构建的短语对应表,对各类条目样本进行拆分得到短语序列,不但提高了短语拆分的准确性,还进一步优化了搜索条目与待响应的查询条目之间的匹配精度。
应当注意,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
进一步参考如图7所示,本实施例的搜索排序装置包括:向量确定模块710、计算模块720和排序模块730。
向量确定模块710,用于使用查询条目样本以及相应的正例搜索条目样本和负例搜索条目样本,对以短语向量集合为参数的预设模型进行训练,确定短语向量集合。
计算模块720,用于基于短语向量集合,分别计算待响应的查询条目与对应的各搜索条目的相似度。
排序模块730,用于根据相似度确定对查询条目进行响应时,各搜索条目的呈现顺序。
在本实施例的一个可选实现方式中,搜索排序装置还包括:
样本转换模块,用于分别将查询条目样本、正例搜索条目样本和负例搜索条目样本转换为以短语向量集合为参数的待定叠加向量。
样本计算模块,用于分别计算查询条目样本的待定叠加向量与正例搜索条目样本和负例搜索条目样本的待定叠加向量的第一相似度和第二相似度。
模型构建模块,用于以第一相似度与第二相似度的差值最大化为训练目标,构建以短语向量集合为参数的预设模型。
在本实施例的一个可选实现方式中,样本转换模块包括:
短语表构建单元,用于构建查询条目样本与正例搜索条目样本的短语对应表。
第一拆分单元,用于基于短语对应表,将查询条目样本、正例搜索条目样本和负例搜索条目样本分别拆分为一个第一短语序列,第一短语序列中包括至少一个短语。
短语转换单元,用于将第一短语序列中的各短语转换为待定短语向量。
第一叠加单元,用于分别将每个第一短语序列中的所有待定短语向量进行叠加,得到查询条目样本、正例搜索条目样本和负例搜索条目样本的以短语向量集合为参数的待定叠加向量。
其中,作为参数的短语向量集合中包括待定短语向量。
在本实施例的一个可选实现方式中,预设模型为损失函数模型。
向量确定模块710包括:
模型训练单元,用于将查询条目样本、正例搜索条目样本和负例搜索条目样本的待定叠加向量作为样本数据,对损失函数模型进行训练。
参数确定单元,用于当损失函数模型的值最小时,得到短语向量集合。
在本实施例的一个可选实现方式中,短语表构建模块包括:
词语对齐单元,用于将查询条目样本与对应的正例搜索条目样本进行词语对齐。
短语抽取单元,用于将对齐后的查询条目样本和正例搜索条目样本进行短语抽取,得到短语对应表。
在本实施例的一个可选实现方式中,计算模块720包括:
第二拆分单元,用于基于短语对应表,将待响应的查询条目以及对应的各搜索条目分别拆分为一个第二短语序列,第二短语序列中包括至少一个短语。
向量获取单元,用于根据短语向量集合,获取第二短语序列中各短语的短语向量。
第二叠加单元,用于分别将每个第二短语序列中的所有短语向量进行叠加,得到查询条目以及各搜索条目的叠加向量。
相似度计算单元,用于分别计算查询条目的叠加向量与各搜索条目的叠加向量的相似度。
在本实施例的一个可选实现方式中,采用最大匹配的方式执行上述拆分。
在本实施例的一个可选实现方式中,短语向量为维度不大于1000的低维度实数向量。
应当理解,图7中记载的诸单元或模块与参考图2-6描述的方法中的各个步骤相对应。由此,上文针对方法描述的操作和特征同样适用于图7中的装置及其中包含的单元或模块,在此不再赘述。
本申请提供的搜索排序装置,向量确定模块首先可以通过对以短语向量集合为参数的预设模型进行训练,获得大量短语的向量表示即向量短语集合,然后计算模块利用向量短语计算查询条目与各个搜索条目之间的相似度,最后排序模块根据相似度的计算结果对搜索条目进行排序。本申请可以将短语表示为向量形式,从而在对查询条目和搜索条目进行匹配时,可通过短语向量确定匹配程度,提高了查询条目和搜索条目的匹配精度,从而进一步改善了搜索排序的准确性。
下面参考图8,其示出了适于用实现本申请实施例的终端设备或服务器的计算机系统的结构示意图。
如图8所示,计算机系统800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有系统800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括向量确定模块,计算模块和排序模块。其中,这些模块的名称在某种情况下并不构成对该单元本身的限定,例如,计算模块还可以被描述为“用于基于短语向量集合,分别计算待响应的查询条目与对应的各搜索条目的相似度的模块”。
作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入终端中的计算机可读存储介质。所述计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本申请的搜索排序方法。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (14)

1.一种搜索排序方法,其特征在于,所述方法包括:
使用查询条目样本以及相应的正例搜索条目样本和负例搜索条目样本,对以短语向量集合为参数的预设模型进行训练,确定所述短语向量集合;
基于所述短语向量集合,分别计算待响应的查询条目与对应的各搜索条目的相似度;
根据所述相似度确定对所述查询条目进行响应时,各所述搜索条目的呈现顺序;
其中,所述方法还包括:
分别将所述查询条目样本、正例搜索条目样本和负例搜索条目样本转换为以所述短语向量集合为参数的待定叠加向量;
分别计算所述查询条目样本的待定叠加向量与所述正例搜索条目样本和所述负例搜索条目样本的待定叠加向量的第一相似度和第二相似度;
以所述第一相似度与所述第二相似度的差值最大化为训练目标,构建所述以短语向量集合为参数的预设模型。
2.根据权利要求1所述的方法,其特征在于,所述分别将所述查询条目样本、正例搜索条目样本和负例搜索条目样本转换为以所述短语向量集合为参数的待定叠加向量,包括:
构建所述查询条目样本与所述正例搜索条目样本的短语对应表;
基于所述短语对应表,将所述查询条目样本、正例搜索条目样本和负例搜索条目样本分别拆分为一个第一短语序列,所述第一短语序列中包括至少一个短语;
将所述第一短语序列中的各短语分别转换为待定短语向量;
分别将每个所述第一短语序列中的所有待定短语向量进行叠加,得到所述查询条目样本、正例搜索条目样本和负例搜索条目样本的以所述短语向量集合为参数的待定叠加向量;
其中,作为所述参数的短语向量集合中包括所述待定短语向量。
3.根据权利要求2所述的方法,其特征在于,
所述预设模型为损失函数模型;
所述使用查询条目样本以及相应的正例搜索条目样本和负例搜索条目样本,对以短语向量集合为参数的预设模型进行训练,确定所述短语向量集合包括:
将所述查询条目样本、正例搜索条目样本和负例搜索条目样本的待定叠加向量作为样本数据,对所述损失函数模型进行训练;
当所述损失函数模型的值最小时,得到所述短语向量集合。
4.根据权利要求2所述的方法,其特征在于,所述构建所述查询条目样本与所述正例搜索条目样本的短语对应表包括:
将所述查询条目样本与对应的所述正例搜索条目样本进行词语对齐;
将对齐后的所述查询条目样本和所述正例搜索条目样本进行短语抽取,得到所述短语对应表。
5.根据权利要求2所述的方法,其特征在于,所述基于所述短语向量集合,分别计算待响应的查询条目与对应的各搜索条目的相似度包括:
基于所述短语对应表,将所述待响应的查询条目以及对应的各搜索条目分别拆分为一个第二短语序列,所述第二短语序列中包括至少一个短语;
根据所述短语向量集合,获取所述第二短语序列中各短语的短语向量;
分别将每个所述第二短语序列中的所有短语向量进行叠加,得到所述查询条目以及各所述搜索条目的叠加向量;
分别计算所述查询条目的叠加向量与各所述搜索条目的叠加向量的相似度。
6.根据权利要求5所述的方法,其特征在于,采用最大匹配方式将所述查询条目样本、正例搜索条目样本和负例搜索条目样本分别拆分为一个第一短语序列和/或将所述待响应的查询条目以及对应的各搜索条目分别拆分为一个第二短语序列。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述短语向量为维度不大于1000的低维度实数向量。
8.一种搜索排序装置,其特征在于,所述装置包括:
向量确定模块,用于使用查询条目样本以及相应的正例搜索条目样本和负例搜索条目样本,对以短语向量集合为参数的预设模型进行训练,确定所述短语向量集合;
计算模块,用于基于所述短语向量集合,分别计算待响应的查询条目与对应的各搜索条目的相似度;
排序模块,用于根据所述相似度确定对所述查询条目进行响应时,各所述搜索条目的呈现顺序;
其中,所述装置还包括:
样本转换模块,用于分别将所述查询条目样本、正例搜索条目样本和负例搜索条目样本转换为以所述短语向量集合为参数的待定叠加向量;
样本计算模块,用于分别计算所述查询条目样本的待定叠加向量与所述正例搜索条目样本和所述负例搜索条目样本的待定叠加向量的第一相似度和第二相似度;
模型构建模块,用于以所述第一相似度与所述第二相似度的差值最大化为训练目标,构建所述以短语向量集合为参数的预设模型。
9.根据权利要求8所述的装置,其特征在于,所述样本转换模块包括:
短语表构建单元,用于构建所述查询条目样本与所述正例搜索条目样本的短语对应表;
第一拆分单元,用于基于所述短语对应表,将所述查询条目样本、正例搜索条目样本和负例搜索条目样本分别拆分为一个第一短语序列,所述第一短语序列中包括至少一个短语;
短语转换单元,用于将所述第一短语序列中的各短语转换为待定短语向量;
第一叠加单元,用于分别将每个所述第一短语序列中的所有待定短语向量进行叠加,得到所述查询条目样本、正例搜索条目样本和负例搜索条目样本的以所述短语向量集合为参数的待定叠加向量;
其中,作为所述参数的短语向量集合中包括所述待定短语向量。
10.根据权利要求9所述的装置,其特征在于,
所述预设模型为损失函数模型,
所述向量确定模块包括:
模型训练单元,用于将所述查询条目样本、正例搜索条目样本和负例搜索条目样本的待定叠加向量作为样本数据,对所述损失函数模型进行训练;
参数确定单元,用于当所述损失函数模型的值最小时,得到所述短语向量集合。
11.根据权利要求9所述的装置,其特征在于,所述短语表构建单元包括:
词语对齐单元,用于将所述查询条目样本与对应的所述正例搜索条目样本进行词语对齐;
短语抽取单元,用于将对齐后的所述查询条目样本和所述正例搜索条目样本进行短语抽取,得到所述短语对应表。
12.根据权利要求9所述的装置,其特征在于,所述计算模块包括:
第二拆分单元,用于基于所述短语对应表,将所述待响应的查询条目以及对应的各搜索条目分别拆分为一个第二短语序列,所述第二短语序列中包括至少一个短语;
向量获取单元,用于根据所述短语向量集合,获取所述第二短语序列中各短语的短语向量;
第二叠加单元,用于分别将每个所述第二短语序列中的所有短语向量进行叠加,得到所述查询条目以及各所述搜索条目的叠加向量;
相似度计算单元,用于分别计算所述查询条目的叠加向量与各所述搜索条目的叠加向量的相似度。
13.根据权利要求12所述的装置,其特征在于,采用最大匹配方式将所述查询条目样本、正例搜索条目样本和负例搜索条目样本分别拆分为一个第一短语序列和/或将所述待响应的查询条目以及对应的各搜索条目分别拆分为一个第二短语序列。
14.根据权利要求8至13任一项所述的装置,其特征在于,所述短语向量为维度不大于1000的低维度实数向量。
CN201510149901.1A 2015-03-31 2015-03-31 搜索排序方法和装置 Active CN104715063B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510149901.1A CN104715063B (zh) 2015-03-31 2015-03-31 搜索排序方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510149901.1A CN104715063B (zh) 2015-03-31 2015-03-31 搜索排序方法和装置

Publications (2)

Publication Number Publication Date
CN104715063A CN104715063A (zh) 2015-06-17
CN104715063B true CN104715063B (zh) 2018-11-02

Family

ID=53414389

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510149901.1A Active CN104715063B (zh) 2015-03-31 2015-03-31 搜索排序方法和装置

Country Status (1)

Country Link
CN (1) CN104715063B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11816159B2 (en) 2020-06-01 2023-11-14 Yandex Europe Ag Method of and system for generating a training set for a machine learning algorithm (MLA)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106354852A (zh) * 2016-09-02 2017-01-25 北京百度网讯科技有限公司 基于人工智能的搜索方法及装置
CN107451894B (zh) * 2017-08-03 2020-09-29 北京京东尚科信息技术有限公司 数据处理方法、装置和计算机可读存储介质
CN109947919B (zh) * 2019-03-12 2020-05-15 北京字节跳动网络技术有限公司 用于生成文本匹配模型的方法和装置
CN110969006B (zh) * 2019-12-02 2023-03-21 支付宝(杭州)信息技术有限公司 一种文本排序模型的训练方法和系统
CN111061954B (zh) * 2019-12-19 2022-03-15 腾讯音乐娱乐科技(深圳)有限公司 搜索结果排序方法、装置及存储介质
CN112084435A (zh) * 2020-08-07 2020-12-15 北京三快在线科技有限公司 搜索排序模型训练方法及装置、搜索排序方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060106792A1 (en) * 2004-07-26 2006-05-18 Patterson Anna L Multiple index based information retrieval system
CN104050203A (zh) * 2013-03-17 2014-09-17 祁勇 一种获取网页和用户个性化特征的方法
CN104361077A (zh) * 2014-11-06 2015-02-18 百度在线网络技术(北京)有限公司 网页打分模型的创建方法及装置
CN104462357A (zh) * 2014-12-08 2015-03-25 百度在线网络技术(北京)有限公司 实现个性化搜索的方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060106792A1 (en) * 2004-07-26 2006-05-18 Patterson Anna L Multiple index based information retrieval system
CN104050203A (zh) * 2013-03-17 2014-09-17 祁勇 一种获取网页和用户个性化特征的方法
CN104361077A (zh) * 2014-11-06 2015-02-18 百度在线网络技术(北京)有限公司 网页打分模型的创建方法及装置
CN104462357A (zh) * 2014-12-08 2015-03-25 百度在线网络技术(北京)有限公司 实现个性化搜索的方法和装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
a latent semantic model with convolutional-pooling structure for information retrieval;yelong shen et al;《CIKM’14》;20141103;第101-105页 *
clickthrough-based translation models for web search:from word models to phrase models;jianfeng gao et al;《CIKM"10》;20101026;第1139-1148页 *
phrase-based translation model for question retrieval in community question answer archives;guangyou zhou et al;《proceedings of the 49th annual meeting of the association for computational linguistics》;20110619;第653-662页 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11816159B2 (en) 2020-06-01 2023-11-14 Yandex Europe Ag Method of and system for generating a training set for a machine learning algorithm (MLA)

Also Published As

Publication number Publication date
CN104715063A (zh) 2015-06-17

Similar Documents

Publication Publication Date Title
CN104715063B (zh) 搜索排序方法和装置
CN104615767B (zh) 搜索排序模型的训练方法、搜索处理方法及装置
CN109145219B (zh) 基于互联网文本挖掘的兴趣点有效性判断方法和装置
CN109408526B (zh) Sql语句生成方法、装置、计算机设备及存储介质
CN107491534B (zh) 信息处理方法和装置
CN108829822B (zh) 媒体内容的推荐方法和装置、存储介质、电子装置
CN106383875B (zh) 基于人工智能的人机交互方法和装置
WO2018086470A1 (zh) 关键词提取方法、装置和服务器
CN103699625B (zh) 基于关键词进行检索的方法及装置
CN107491547A (zh) 基于人工智能的搜索方法和装置
CN105677931B (zh) 信息搜索方法和装置
CN105095444A (zh) 信息获取方法和装置
CN107463704A (zh) 基于人工智能的搜索方法和装置
CN107832414A (zh) 用于推送信息的方法和装置
CN112667794A (zh) 一种基于孪生网络bert模型的智能问答匹配方法及系统
CN107704453A (zh) 一种文字语义分析方法、文字语义分析终端及存储介质
US11762926B2 (en) Recommending web API's and associated endpoints
CN107145496A (zh) 基于关键词将图像与内容项目匹配的方法
JP6232607B1 (ja) 特許要件適否予測装置および特許要件適否予測プログラム
CN112559684A (zh) 一种关键词提取及信息检索方法
CN112084307B (zh) 一种数据处理方法、装置、服务器及计算机可读存储介质
CN108334489A (zh) 文本核心词识别方法和装置
CN112183102A (zh) 基于注意力机制与图注意力网络的命名实体识别方法
CN113627797A (zh) 入职员工画像生成方法、装置、计算机设备及存储介质
CN109410935A (zh) 一种基于语音识别的目的地搜索方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant