CN112256953B - 查询改写方法、装置、计算机设备和存储介质 - Google Patents
查询改写方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN112256953B CN112256953B CN201910659095.0A CN201910659095A CN112256953B CN 112256953 B CN112256953 B CN 112256953B CN 201910659095 A CN201910659095 A CN 201910659095A CN 112256953 B CN112256953 B CN 112256953B
- Authority
- CN
- China
- Prior art keywords
- word
- prediction
- candidate
- candidate word
- query
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000000873 masking effect Effects 0.000 claims abstract description 102
- 238000012549 training Methods 0.000 claims description 32
- 238000004590 computer program Methods 0.000 claims description 23
- 238000010586 diagram Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 10
- 239000013598 vector Substances 0.000 description 10
- 230000008569 process Effects 0.000 description 5
- 238000007418 data mining Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000010606 normalization Methods 0.000 description 4
- 238000007781 pre-processing Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 240000002853 Nelumbo nucifera Species 0.000 description 1
- 235000006508 Nelumbo nucifera Nutrition 0.000 description 1
- 235000006510 Nelumbo pentapetala Nutrition 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000008451 emotion Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
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)
- Machine Translation (AREA)
Abstract
本申请涉及一种查询改写方法、装置、计算机设备和存储介质,所述方法包括:获取用户输入的查询内容;对查询内容的目标位置进行遮蔽,根据各遮蔽位置在查询内容中的上下文语境,对各遮蔽位置进行预测,获得各遮蔽位置的预测结果;根据各遮蔽位置的预测结果,对各遮蔽位置的原始字进行改写。本申请提供的方案可以获得更优的改写结果。
Description
技术领域
本申请涉及搜索技术领域,特别是涉及一种查询改写方法、装置、计算机设备和存储介质。
背景技术
随着互联网技术的发展,用户在很多场景下都需要用到搜索功能,搜索结果与用户输入的查询内容对应。用户在输入查询内容时,难免会出现错误,导致搜索结果不准确,无法满足用户的实际需求,因此,有必要对错误的查询进行改写,以优化搜索结果。
目前通常基于机器翻译的方法进行查询改写,借鉴机器翻译中源语言和目标语言的对应关系,将错误的查询以一种翻译的思路改写到更加正确的查询。然而,该方法只能单一地从前往后进行改写,无法兼顾查询内容的上下文语境,存在单向依赖的局限性。
发明内容
基于此,有必要针对目前方法存在单向依赖的局限性的技术问题,提供一种查询改写方法、装置、计算机设备和存储介质。
一种查询改写方法,所述方法包括:
获取用户输入的查询内容;
对所述查询内容的目标位置进行遮蔽,根据各遮蔽位置在所述查询内容中的上下文语境,对各遮蔽位置进行预测,获得各所述遮蔽位置的预测结果;
根据各所述遮蔽位置的预测结果,对各所述遮蔽位置的原始字进行改写。
一种查询改写装置,所述装置包括:
获取模块,用于获取用户输入的查询内容;
预测模块,用于对所述查询内容的目标位置进行遮蔽,根据各遮蔽位置在所述查询内容中的上下文语境,对各遮蔽位置进行预测,获得各所述遮蔽位置的预测结果;
改写模块,用于根据各所述遮蔽位置的预测结果,对各所述遮蔽位置的原始字进行改写。
一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:
获取用户输入的查询内容;
对所述查询内容的目标位置进行遮蔽,根据各遮蔽位置在所述查询内容中的上下文语境,对各遮蔽位置进行预测,获得各所述遮蔽位置的预测结果;
根据各所述遮蔽位置的预测结果,对各所述遮蔽位置的原始字进行改写。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:
获取用户输入的查询内容;
对所述查询内容的目标位置进行遮蔽,根据各遮蔽位置在所述查询内容中的上下文语境,对各遮蔽位置进行预测,获得各所述遮蔽位置的预测结果;
根据各所述遮蔽位置的预测结果,对各所述遮蔽位置的原始字进行改写。
上述查询改写方法、装置、计算机可读存储介质和计算机设备,对查询内容的目标位置进行遮蔽,基于各遮蔽位置在查询内容中的上下文语境,对各遮蔽位置进行预测,并根据各遮蔽位置的预测结果,对各遮蔽位置的原始字进行改写。由于查询内容中某一部分的内容实际上跟其前后内容都有很大的关联,因此对各遮蔽位置进行预测时,兼顾各遮蔽位置前后双向的上下文语境,可以避免单向依赖,为预测提供更全面的语义环境信息,从而获得更优的改写结果。
附图说明
图1为一个实施例中查询改写方法的应用环境图;
图2为一个实施例中查询改写方法的流程示意图;
图3为一个实施例中根据各遮蔽位置的预测结果,对各遮蔽位置的原始字进行改写步骤的流程示意图;
图4为一个实施例中根据候选字,对该遮蔽位置的原始字进行改写步骤的流程示意图;
图5为一个实施例中根据第一候选字和第二候选字的预测概率差异,对该遮蔽位置的原始字进行改写步骤的流程示意图;
图6为一个实施例中BERT模型的编码器(Encoder)和解码器(Decoder)框架;
图7为一个实施例中查询改写装置的结构框图;
图8为一个实施例中查询改写装置的结构框图;
图9为一个实施例中查询改写装置的结构框图;
图10为一个实施例中计算机设备的结构框图;
图11为一个实施例中计算机设备的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为一个实施例中查询改写方法的应用环境图。如图1所示,该应用环境涉及用户终端110和服务器120,用户终端110和服务器120通过网络连接。用户可以通过用户终端110访问资源搜索平台,服务器120可以是该资源搜索平台所在的服务器。终端110或者服务器120,可以获取用户输入的查询内容,并对该查询内容进行改写。终端110具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
如图2所示,在一个实施例中,提供了一种查询改写方法。本实施例主要以该方法应用于上述图1中的终端110或者服务器120来举例说明。参照图2,该查询改写方法具体包括如下步骤S202至步骤S206。
S202,获取用户输入的查询内容。
其中,用户输入的查询内容可以是一个词、短语或句子。比如,当用户需要搜索电视剧资源时,其输入的查询内容具体可以是一部电视剧的名字,例如“权力的游戏”。
在一个实施例中,在获取到用户输入的查询内容之后,可以对查询内容进行预处理。具体地,预处理包括对查询内容中的数据格式和非法请求串的预处理,例如,对查询内容中包含的英文、统一资源定位符(url)、标点符号等进行剔除,只保留中文文字。
S204,对查询内容的目标位置进行遮蔽,根据各遮蔽位置在查询内容中的上下文语境,对各遮蔽位置进行预测,获得各遮蔽位置的预测结果。
其中,目标位置表示需要进行预测的位置,目标位置对应的内容可以视为需要纠正的内容。具体地,目标位置可以有多个,每次对其中一个进行遮蔽,根据该遮蔽位置的上下文内容的语义信息,预测得到该遮蔽位置的语义信息,并基于该遮蔽位置的语义信息,预测该遮蔽位置的原始字。
在一个实施例中,目标位置包括查询内容的每一个字所在位置、以及相邻字之间的位置。例如,假设查询内容(Query)为“林志英僵尸片”,那么目标位置有11个,如下所示:
1、[MASK]志英僵尸片
2、林[MASK]英僵尸片
3、林[MASK]志英僵尸片
4、林志[MASK]僵尸片
5、林志[MASK]英僵尸片
6、林志英[MASK]尸片
7、林志英[MASK]僵尸片
8、林志英僵[MASK]片
9、林志英僵[MASK]尸片
10、林志英僵尸[MASK]
11、林志英僵尸[MASK]片
其中,符号[MASK]所在位置即目标位置,也是遮蔽位置,同时也是要给出预测结果的位置。
S206,根据各遮蔽位置的预测结果,对各遮蔽位置的原始字进行改写。
其中,各遮蔽位置的预测结果是兼顾各遮蔽位置在查询内容中的上下文获得的,准确性较高,根据该预测结果对原始字进行改写,可以纠正错误的原始字,得到更正确的查询内容。
上述查询改写方法,对查询内容的目标位置进行遮蔽,基于各遮蔽位置在查询内容中的上下文语境,对各遮蔽位置进行预测,并根据各遮蔽位置的预测结果,对各遮蔽位置的原始字进行改写。由于查询内容中某一部分的内容实际上跟其前后内容都有很大的关联,因此对各遮蔽位置进行预测时,兼顾各遮蔽位置前后双向的上下文语境,可以避免单向依赖,为预测提供更全面的语义环境信息,从而获得更优的改写结果。
在一个实施例中,各遮蔽位置的预测结果包括预测字以及预测字对应的预测概率。例如,查询内容(Query)为“林志英僵尸片”,对上述实施例中的第1至11个目标位置进行遮蔽,各遮蔽位置对应的预测结果如下:
1、predict:3360,token:林
((林:-0.090008,刘:-2.818535,朴:-5.748668))
2、predict:3633,token:正
((正:-0.000008,那:-13.717857,真:-14.268865))
3、predict:3633,token:正
((正:-0.342943,志:-4.079220,文:-4.607937))
4、predict:7577,token:颖
((颖:-0.578820,玲:-0.874299,炫:-5.213043))
5、predict:3633,token:正
((正:-0.110226,莲:-3.616452,英:-4.158678))
6、predict:1018,token:僵
((僵:-0.322614,丧:-1.302108,赶:-8.415523))
7、predict:4638,token:的
((的:-0.773114,拍:-2.082296,打:-2.860602))
8、predict:2221,token:尸
((尸:-0.000034,小:-11.274945,鬼:-12.093356))
9、predict:2221,token:尸
((尸:-0.020387,僵:-4.301908,丧:-6.536051))
10、predict:4275,token:片
((片:-0.158831,王:-3.293644,电:-4.342345))
11、predict:7787,token:鬼
((鬼:-0.066146,新:-4.371636,大:-4.968204))
其中,“predict”后面的数据表示预测概率最大的预测字的序号,“token”后面的字表示预测概率最大的预测字,括号里面给出了预测概率排在前三的预测字及其相应的预测概率。例如,对查询内容“林志英僵尸片”中的第1个目标位置进行遮蔽,即对“林”所在位置进行遮蔽,预测得到该遮蔽位置的预测字中,预测概率排前三的预测字分别是“林”、“刘”和“朴”,对应的预测概率分别为-0.090008、-2.818535和-5.748668,需要理解的是,该预测概率为负值是因为经过了取对数处理(比如log-softmax函数处理)。
如图3所示,在一个实施例中,根据各遮蔽位置的预测结果,对各遮蔽位置的原始字进行改写,包括以下步骤S302至步骤S304。
S302,若遮蔽位置对应的各预测字的预测概率均小于概率阈值,保留该遮蔽位置的原始字不对其进行改写。
其中,概率阈值可以结合实际需要进行设定。在一个实施例中,概率阈值设为-0.001,则当遮蔽位置对应的各预测字的预测概率均小于-0.001,保留该遮蔽位置的原始字不对其进行改写。例如,上述实施例中,对查询内容“林志英僵尸片”中“林”所在位置进行遮蔽,预测得到该遮蔽位置的预测字的最大预测概率为-0.090008,即该遮蔽位置的所有预测字的预测概率均小于-0.001,因此保留该遮蔽位置的原始字“林”,不对其进行改写。
S304,若遮蔽位置对应的各预测字的预测概率中,存在至少一个预测概率大于或等于概率阈值,将大于或等于概率阈值的预测概率对应的预测字作为候选字,根据候选字,对该遮蔽位置的原始字进行改写。
例如,上述实施例中,对查询内容“林志英僵尸片”中“志”所在位置进行遮蔽,预测得到预测概率排前三的预测字分别是“正”、“那”和“真”,对应的预测概率分别为-0.000008、-13.717857和-14.268865,即所有预测概率中存在一个大于概率阈值(-0.001),因此,将该大于-0.001的预测概率(即-0.000008)对应的预测字(即“正”)作为候选字。
上述实施例中,仅当遮蔽位置的预测字的预测概率大于或等于概率阈值时,才考虑对该遮蔽位置的原始字进行改写,若遮蔽位置的预测字的预测概率小于概率阈值,说明预测概率置信度低,此时不对该遮蔽位置的原始字进行改写,从而保留相对于预测字更加正确的原始字。例如,上述实施例中,对查询内容“林志英僵尸片”进行改写,最终改写结果为“林正英僵尸片”,从而将用户输入的错误信息导向正确的内容,有助于搜索引擎得到更加准确的搜索结果。
如图4所示,在一个实施例中,根据候选字,对该遮蔽位置的原始字进行改写,包括以下步骤S402至步骤S404。
S402,若候选字只有一个,采用该候选字对该遮蔽位置的原始字进行改写。
候选字只有一个,即该遮蔽位置的预测结果中只有一个预测字的预测概率满足概率阈值,说明该候选字的置信度高,因此将该遮蔽位置的原始字改写为该候选字。例如,上述实施例中,对查询内容“林志英僵尸片”中“志”所在位置进行遮蔽,预测得到的候选字只有一个,即“正”,则将该遮蔽位置的原始字“志”改写为该候选字“正”。
需要理解的是,如果该唯一的候选字就是原始字,则不需要对原始字进行改写。例如,上述实施例中,对查询内容“林志英僵尸片”中“尸”所在位置进行遮蔽,预测得到的候选字只有一个,即“尸”,与该遮蔽位置的原始字相同,则保留该遮蔽位置的原始字不需要对其进行改写。
S404,若候选字大于或等于两个,根据第一候选字和第二候选字的预测概率差异,对该遮蔽位置的原始字进行改写,第一候选字为候选字中预测概率最大的预测字,第二候选字为候选字中预测概率排第二的预测字。
在一个实施例中,遮蔽位置的预测结果中,可能会出现多个预测字的预测概率都大于或等于概率阈值,即候选字会有多个,这里的“多个”指的是大于或等于两个。按照预测概率从大往小的顺序,可以将候选字分为第一候选字、第二候选字等。
如图5所示,在一个实施例中,根据第一候选字和第二候选字的预测概率差异,对该遮蔽位置的原始字进行改写,包括以下步骤S502至步骤S504。
S502,若第一候选字和第二候选字的预测概率比值小于或等于比值阈值,采用第一候选字对该遮蔽位置的原始字进行改写。
S504,若第一候选字和第二候选字的预测概率比值大于比值阈值,保留该遮蔽位置的原始字不对其进行改写。
其中,第一候选字和第二候选字的预测概率比值可以反映第一候选字和第二候选字的预测概率的差异程度,当差异较大时,说明第一候选字的置信度高,因此将该遮蔽位置的原始字改写为第一候选字;当差异较小时,尽管第一候选字和第二候选字的预测概率都大于或等于概率阈值,但是预测结果无法很好的区分该遮蔽位置究竟为第一候选字还是第二候选字,因此这种情况下保留该遮蔽位置的原始字不对其进行改写。
比值阈值可以结合实际需要进行设定。在上述实施例中,预测概率为负值,则第一候选字和第二候选字的预测概率比值越小,说明预测概率差异越大,反之,第一候选字和第二候选字的预测概率比值越大,说明预测概率差异越小。在一个实施例中,比值阈值设为0.66,则当第一候选字和第二候选字的预测概率比值小于或等于0.66时,采用第一候选字对该遮蔽位置的原始字进行改写,当第一候选字和第二候选字的预测概率比值小于0.66时,保留该遮蔽位置的原始字不对其进行改写。
上述实施例中,利用各遮蔽位置的预测结果对各遮蔽位置的原始字进行改写时,同时考虑了预测概率以及预测概率差异是否满足改写条件,从而使得改写结果更准确。
在一些实施例中,对查询内容的改写结果如下:
[[神]]勇[[双]]响炮##_##智勇三响炮
[[薛]]平贵[[与]]王宝钏电视剧##_##徐平贵和王宝钏电视剧
[[复]]仇者联[[盟]]##_##付仇者联望
其中,“##_##”后面表示原始查询内容,“##_##”前面表示改写后的查询内容,“[[]]”内是纠错后的目标字。
应该理解的是,虽然图2-5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,通过已训练Bidirectional Encoder Representations fromTransformers(简称BERT)模型,对查询内容的目标位置进行遮蔽,根据各遮蔽位置在查询内容中的上下文语境,对各遮蔽位置进行预测,获得各遮蔽位置的预测结果。
相比于传统语言模型,BERT模型的自注意力(Self-Attention)机制使得模型能够在预测过程中同时考虑遮蔽位置前后双向的全局上下文,并根据依赖程度给出不同的权重,为预测提供更全面的语义环境信息,获得更优的预测结果。
如图6所示,在一个实施例中,提供了BERT模型的编码器(Encoder)和解码器(Decoder)框架。其中,左侧为编码器部分,编码器由多个相同的编码层组成,Nx表示编码层的数量,每个编码层包含两个子层,分别为多头注意力层(Multi-Head Attention)和前向反馈层(Feed Forward),每个子层的输出都增加了归一化处理(Add&Norm),且使用了残差连接。右侧为解码器部分,解码器由多个相同的解码层组成,Nx表示解码层的数量,每个解码层包含三个子层,分别为遮蔽多头注意力层(Masked Multi-Head Attention)、多头注意力层(Multi-Head Attention)和前向反馈层(Feed Forward),每个子层的输出都增加了归一化处理(Add&Norm),且使用了残差连接。
模型首先会对输入(Inputs)进行嵌入处理(Input Embedding)和位置编码(Positional Encoding),例如,假设Inputs为一个句子,Input Embedding可以理解为将Inputs切分为一个一个的字,并将每个字转换为字向量,Positional Encoding可以理解为赋予每个字一个位置向量,这是由于出现在句子不同位置的字所携带的语义信息存在差异,比如“从北京去上海”和“从上海去北京”,即使两个句子包含的字相同,但是语义明显不同,因此对每个字的字向量附加一个位置向量以对不同位置的字进行区分。字向量和位置向量叠加后,作为编码层中Multi-Head Attention的输入,Multi-Head Attention可以理解为考虑多种语义场景下目标字与其它字的语义向量,对其进行加权融合,输出各目标字的增强语义向量。解码层的每次处理会同时将该次处理之前的所有输出(Outputs)和编码层的输出考虑进来,解码后输出的特征向量经过线性处理(Linear)和归一化指数函数处理(Softmax)后,最终输出在目标字位置上的预测词条及对应的预测概率(OutputProbabilities)。
在一个实施例中,BERT模型的训练方法,包括以下步骤:获取用户输入的历史查询内容;利用历史查询内容,对待训练BERT模型进行无监督训练,直至满足训练结束条件,获得已训练BERT模型。
其中,历史查询内容可以为线上真实搜索记录(Query Log),通常绝大部分用户输入的搜索串是正确的。BERT模型的训练不需要有任何监督的数据,只需要获取大规模的线上真实Query Log,在现有BERT模型的基础上无监督地进行微调(Fine-Tuning)训练。训练结束条件可以是损失值收敛至预设阈值,也可以是训练次数达到预设次数。
上述实施例中,BERT模型的训练是一种完全无监督的训练,可以减少繁琐的数据准备过程,并且无需担心因为准备的数据的质量和数量问题对模型效果带来的影响。模型训练数据选取的是原始Query Log,除了基本的诸如归一化、非法串过滤等处理,无需任何复杂的数据挖掘和预处理工作,并且Query Log的数据规模可百倍于基于词典和数据挖掘而来的改写词对(Pairs),庞大的训练数据量有助于模型效果的提升。
在一个实施例中,从一视频平台的Query Log中,选取140,000,000条Query作为训练集,选取100,000条Query作为测试集,测试集不包含在训练集中。测试结果如下:对100,000条Query进行测试,增加的改写结果数为2613条,当前线上改写结果数为11454条,则改写结果增长率为22%;随机取500个预测结果,进行人工评估,准确率为91.3%;按照线上日均1,500,000页面浏览量(PV)计算,每天增加PV收益为330,000,高峰PV收益可达到418,000。
如图7所示,在一个实施例中,提供了一种查询改写装置700,包括:获取模块710、预测模块720和改写模块730。
获取模块710,用于获取用户输入的查询内容。
预测模块720,用于对查询内容的目标位置进行遮蔽,根据各遮蔽位置在查询内容中的上下文语境,对各遮蔽位置进行预测,获得各遮蔽位置的预测结果。
改写模块730,用于根据各遮蔽位置的预测结果,对各遮蔽位置的原始字进行改写。
上述查询改写装置,对查询内容的目标位置进行遮蔽,基于各遮蔽位置在查询内容中的上下文语境,对各遮蔽位置进行预测,并根据各遮蔽位置的预测结果,对各遮蔽位置的原始字进行改写。由于查询内容中某一部分的内容实际上跟其前后内容都有很大的关联,因此对各遮蔽位置进行预测时,兼顾各遮蔽位置前后双向的上下文语境,可以避免单向依赖,为预测提供更全面的语义环境信息,从而获得更优的改写结果。
在一个实施例中,目标位置包括查询内容的每一个字所在位置、以及相邻字之间的位置。
在一个实施例中,预测模块720,具体用于通过已训练BERT模型,对查询内容的目标位置进行遮蔽,根据各遮蔽位置在查询内容中的上下文语境,对各遮蔽位置进行预测,获得各遮蔽位置的预测结果。
相比于传统语言模型,BERT模型的自注意力(Self-Attention)机制使得模型能够在预测过程中同时考虑遮蔽位置前后双向的全局上下文,并根据依赖程度给出不同的权重,为预测提供更全面的语义环境信息,获得更优的改写结果。
如图8所示,在一个实施例中,查询改写装置700还包括训练模块740,用于训练获得已训练BERT模型。训练模块740包括:获取单元741和训练单元742。
获取单元741,用于获取用户输入的历史查询内容。
训练单元742,用于利用历史查询内容,对待训练BERT模型进行无监督训练,直至满足训练结束条件,获得已训练BERT模型。
上述实施例中,BERT模型的训练是一种完全无监督的训练,可以减少繁琐的数据准备过程,并且无需担心因为准备的数据的质量和数量问题对模型效果带来的影响。模型训练数据选取的是原始Query Log,除了基本的诸如归一化、非法串过滤等处理,无需任何复杂的数据挖掘和预处理工作,并且Query Log的数据规模可百倍于基于词典和数据挖掘而来的改写词对(Pairs),庞大的训练数据量有助于模型效果的提升。
如图9所示,在一个实施例中,各遮蔽位置的预测结果包括预测字以及预测字对应的预测概率;改写模块730包括比较单元731、保留单元732和改写单元733。
比较单元731,用于比较遮蔽位置对应的各预测字的预测概率与概率阈值的大小。
保留单元732,用于若遮蔽位置对应的各预测字的预测概率均小于概率阈值,保留该遮蔽位置的原始字不对其进行改写。
改写单元733,用于若遮蔽位置对应的各预测字的预测概率中,存在至少一个预测概率大于或等于概率阈值,将大于或等于概率阈值的预测概率对应的预测字作为候选字,根据候选字,对该遮蔽位置的原始字进行改写。
上述实施例中,仅当遮蔽位置的预测字的预测概率大于或等于概率阈值时,才考虑对该遮蔽位置的原始字进行改写,若遮蔽位置的预测字的预测概率小于概率阈值,说明预测概率置信度低,此时不对该遮蔽位置的原始字进行改写,从而保留相对于预测字更加正确的原始字。
在一个实施例中,改写单元733包括第一改写单元和第二改写单元,其中,第一改写单元用于若候选字只有一个,采用该候选字对该遮蔽位置的原始字进行改写;第二改写单元用于若候选字大于或等于两个,根据第一候选字和第二候选字的预测概率差异,对该遮蔽位置的原始字进行改写,第一候选字为候选字中预测概率最大的预测字,第二候选字为候选字中预测概率排第二的预测字。
在一个实施例中,第二改写单元具体用于若第一候选字和第二候选字的预测概率比值小于或等于比值阈值,采用第一候选字对该遮蔽位置的原始字进行改写;若第一候选字和第二候选字的预测概率比值小于比值阈值,保留该遮蔽位置的原始字不对其进行改写。
上述实施例中,利用各遮蔽位置的预测结果对各遮蔽位置的原始字进行改写时,同时考虑了预测概率以及预测概率差异是否满足改写条件,从而使得改写结果更准确。
图10示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的终端110。如图10所示,该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现查询改写方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行查询改写方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
图11示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的服务器120。如图11所示,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现查询改写方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行查询改写方法。
本领域技术人员可以理解,图10或图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的查询改写装置可以实现为一种计算机程序的形式,计算机程序可在如图10或图11所示的计算机设备上运行。计算机设备的存储器中可存储组成该查询改写装置的各个程序模块,比如,图7所示的获取模块、预测模块和改写模块。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的查询改写方法中的步骤。
例如,图10或图11所示的计算机设备可以通过如图7所示的查询改写装置中的获取模块执行步骤S202。计算机设备可通过预测模块执行步骤S204。计算机设备可通过改写模块执行步骤S206。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:获取用户输入的查询内容;对查询内容的目标位置进行遮蔽,根据各遮蔽位置在查询内容中的上下文语境,对各遮蔽位置进行预测,获得各遮蔽位置的预测结果;根据各遮蔽位置的预测结果,对各遮蔽位置的原始字进行改写。
在一个实施例中,目标位置包括查询内容的每一个字所在位置、以及相邻字之间的位置。
在一个实施例中,计算机程序使得处理器在执行对查询内容的目标位置进行遮蔽,根据各遮蔽位置在查询内容中的上下文语境,对各遮蔽位置进行预测,获得各遮蔽位置的预测结果的步骤时,具体执行以下步骤:通过已训练BERT模型,对查询内容的目标位置进行遮蔽,根据各遮蔽位置在查询内容中的上下文语境,对各遮蔽位置进行预测,获得各遮蔽位置的预测结果。
在一个实施例中,计算机程序使得处理器还执行以下步骤:获取用户输入的历史查询内容;利用历史查询内容,对待训练BERT模型进行无监督训练,直至满足训练结束条件,获得已训练BERT模型。
在一个实施例中,各遮蔽位置的预测结果包括预测字以及预测字对应的预测概率;计算机程序使得处理器在执行根据各遮蔽位置的预测结果,对各遮蔽位置的原始字进行改写的步骤时,具体执行以下步骤:若遮蔽位置对应的各预测字的预测概率均小于概率阈值,保留该遮蔽位置的原始字不对其进行改写;若遮蔽位置对应的各预测字的预测概率中,存在至少一个预测概率大于或等于概率阈值,将大于或等于概率阈值的预测概率对应的预测字作为候选字,根据候选字,对该遮蔽位置的原始字进行改写。
在一个实施例中,计算机程序使得处理器在执行根据候选字,对该遮蔽位置的原始字进行改写的步骤时,具体执行以下步骤:若候选字只有一个,采用该候选字对该遮蔽位置的原始字进行改写;若候选字大于或等于两个,根据第一候选字和第二候选字的预测概率差异,对该遮蔽位置的原始字进行改写,第一候选字为候选字中预测概率最大的预测字,第二候选字为候选字中预测概率排第二的预测字。
在一个实施例中,计算机程序使得处理器在执行根据第一候选字和第二候选字的预测概率差异,对该遮蔽位置的原始字进行改写的步骤时,具体执行以下步骤:若第一候选字和第二候选字的预测概率比值小于或等于比值阈值,采用第一候选字对该遮蔽位置的原始字进行改写;若第一候选字和第二候选字的预测概率比值小于比值阈值,保留该遮蔽位置的原始字不对其进行改写。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:获取用户输入的查询内容;对查询内容的目标位置进行遮蔽,根据各遮蔽位置在查询内容中的上下文语境,对各遮蔽位置进行预测,获得各遮蔽位置的预测结果;根据各遮蔽位置的预测结果,对各遮蔽位置的原始字进行改写。
在一个实施例中,目标位置包括查询内容的每一个字所在位置、以及相邻字之间的位置。
在一个实施例中,计算机程序使得处理器在执行对查询内容的目标位置进行遮蔽,根据各遮蔽位置在查询内容中的上下文语境,对各遮蔽位置进行预测,获得各遮蔽位置的预测结果的步骤时,具体执行以下步骤:通过已训练BERT模型,对查询内容的目标位置进行遮蔽,根据各遮蔽位置在查询内容中的上下文语境,对各遮蔽位置进行预测,获得各遮蔽位置的预测结果。
在一个实施例中,计算机程序使得处理器还执行以下步骤:获取用户输入的历史查询内容;利用历史查询内容,对待训练BERT模型进行无监督训练,直至满足训练结束条件,获得已训练BERT模型。
在一个实施例中,各遮蔽位置的预测结果包括预测字以及预测字对应的预测概率;计算机程序使得处理器在执行根据各遮蔽位置的预测结果,对各遮蔽位置的原始字进行改写的步骤时,具体执行以下步骤:若遮蔽位置对应的各预测字的预测概率均小于概率阈值,保留该遮蔽位置的原始字不对其进行改写;若遮蔽位置对应的各预测字的预测概率中,存在至少一个预测概率大于或等于概率阈值,将大于或等于概率阈值的预测概率对应的预测字作为候选字,根据候选字,对该遮蔽位置的原始字进行改写。
在一个实施例中,计算机程序使得处理器在执行根据候选字,对该遮蔽位置的原始字进行改写的步骤时,具体执行以下步骤:若候选字只有一个,采用该候选字对该遮蔽位置的原始字进行改写;若候选字大于或等于两个,根据第一候选字和第二候选字的预测概率差异,对该遮蔽位置的原始字进行改写,第一候选字为候选字中预测概率最大的预测字,第二候选字为候选字中预测概率排第二的预测字。
在一个实施例中,计算机程序使得处理器在执行根据第一候选字和第二候选字的预测概率差异,对该遮蔽位置的原始字进行改写的步骤时,具体执行以下步骤:若第一候选字和第二候选字的预测概率比值小于或等于比值阈值,采用第一候选字对该遮蔽位置的原始字进行改写;若第一候选字和第二候选字的预测概率比值小于比值阈值,保留该遮蔽位置的原始字不对其进行改写。
需要理解的是,上述实施例中的术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种查询改写方法,包括:
获取用户输入的查询内容;
通过已训练BERT模型,对所述查询内容的目标位置进行遮蔽,根据各遮蔽位置在所述查询内容中的上下文语境,对各遮蔽位置进行预测,获得各所述遮蔽位置的预测结果;所述目标位置包括所述查询内容的每一个字所在位置、以及相邻字之间的位置;所述预测结果包括预测字以及所述预测字对应的预测概率;
若所述遮蔽位置对应的各预测字的预测概率均小于概率阈值,保留该遮蔽位置的原始字不对其进行改写;
若所述遮蔽位置对应的各预测字的预测概率中,存在至少一个预测概率大于或等于所述概率阈值,将所述大于或等于所述概率阈值的预测概率对应的预测字作为候选字,若所述候选字只有一个,采用该候选字对该遮蔽位置的原始字进行改写;
若所述候选字大于或等于两个,根据第一候选字和第二候选字的预测概率差异,对该遮蔽位置的原始字进行改写,所述第一候选字为所述候选字中预测概率最大的预测字,所述第二候选字为所述候选字中预测概率排第二的预测字。
2.根据权利要求1所述的方法,其特征在于,训练获得所述已训练BERT模型的方法,包括:
获取用户输入的历史查询内容;
利用所述历史查询内容,对待训练BERT模型进行无监督训练,直至满足训练结束条件,获得所述已训练BERT模型。
3.根据权利要求1所述的方法,其特征在于,根据第一候选字和第二候选字的预测概率差异,对该遮蔽位置的原始字进行改写,包括:
若所述第一候选字和第二候选字的预测概率比值小于或等于比值阈值,采用所述第一候选字对该遮蔽位置的原始字进行改写;
若所述第一候选字和第二候选字的预测概率比值小于所述比值阈值,保留该遮蔽位置的原始字不对其进行改写。
4.根据权利要求1至3任意一项所述的方法,其特征在于,所述已训练BERT模型包括编码器和解码器,所述编码器包括多个编码层,所述编码层包括多头注意力层和前向反馈层,所述解码器包括多个解码层,所述解码层包括遮蔽多头注意力层、多头注意力层和前向反馈层。
5.一种查询改写装置,其特征在于,所述装置包括:
获取模块,用于获取用户输入的查询内容;
预测模块,用于通过已训练BERT模型,对所述查询内容的目标位置进行遮蔽,根据各遮蔽位置在所述查询内容中的上下文语境,对各遮蔽位置进行预测,获得各所述遮蔽位置的预测结果;所述目标位置包括所述查询内容的每一个字所在位置、以及相邻字之间的位置;所述预测结果包括预测字以及所述预测字对应的预测概率;
改写模块包括保留单元和改写单元,所述保留单元,用于若所述遮蔽位置对应的各预测字的预测概率均小于概率阈值,保留该遮蔽位置的原始字不对其进行改写;
所述改写单元,用于若所述遮蔽位置对应的各预测字的预测概率中,存在至少一个预测概率大于或等于所述概率阈值,将所述大于或等于所述概率阈值的预测概率对应的预测字作为候选字;
所述改写单元包括第一改写单元和第二改写单元,所述第一改写单元,用于若所述候选字只有一个,采用该候选字对该遮蔽位置的原始字进行改写;
所述第二改写单元,用于若所述候选字大于或等于两个,根据第一候选字和第二候选字的预测概率差异,对该遮蔽位置的原始字进行改写,所述第一候选字为所述候选字中预测概率最大的预测字,所述第二候选字为所述候选字中预测概率排第二的预测字。
6.根据权利要求5所述的装置,其特征在于,查询改写装置还包括训练模块,所述训练模块用于获取用户输入的历史查询内容,利用所述历史查询内容,对待训练BERT模型进行无监督训练,直至满足训练结束条件,获得所述已训练BERT模型。
7.根据权利要求5所述的装置,其特征在于,所述第二改写单元还用于若所述第一候选字和第二候选字的预测概率比值小于或等于比值阈值,采用所述第一候选字对该遮蔽位置的原始字进行改写,若所述第一候选字和第二候选字的预测概率比值小于所述比值阈值,保留该遮蔽位置的原始字不对其进行改写。
8.根据权利要求5至7任意一项所述的装置,其特征在于,所述已训练BERT模型包括编码器和解码器,所述编码器包括多个编码层,所述编码层包括多头注意力层和前向反馈层,所述解码器包括多个解码层,所述解码层包括遮蔽多头注意力层、多头注意力层和前向反馈层。
9.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至4中任一项所述方法的步骤。
10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至4中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910659095.0A CN112256953B (zh) | 2019-07-22 | 2019-07-22 | 查询改写方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910659095.0A CN112256953B (zh) | 2019-07-22 | 2019-07-22 | 查询改写方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112256953A CN112256953A (zh) | 2021-01-22 |
CN112256953B true CN112256953B (zh) | 2023-11-14 |
Family
ID=74224343
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910659095.0A Active CN112256953B (zh) | 2019-07-22 | 2019-07-22 | 查询改写方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112256953B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113505194B (zh) * | 2021-06-15 | 2022-09-13 | 北京三快在线科技有限公司 | 改写词生成模型的训练方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106557480A (zh) * | 2015-09-25 | 2017-04-05 | 阿里巴巴集团控股有限公司 | 查询改写的实现方法及装置 |
CN107221328A (zh) * | 2017-05-25 | 2017-09-29 | 百度在线网络技术(北京)有限公司 | 修改源的定位方法及装置、计算机设备及可读介质 |
CN108563632A (zh) * | 2018-03-29 | 2018-09-21 | 广州视源电子科技股份有限公司 | 文字拼写错误的修正方法、系统、计算机设备及存储介质 |
CN109471919A (zh) * | 2018-11-15 | 2019-03-15 | 北京搜狗科技发展有限公司 | 零代词消解方法及装置 |
CN109885828A (zh) * | 2019-01-14 | 2019-06-14 | 平安科技(深圳)有限公司 | 基于语言模型的词语纠错方法、装置、计算机设备及介质 |
CN109992648A (zh) * | 2019-04-10 | 2019-07-09 | 北京神州泰岳软件股份有限公司 | 基于词迁徙学习的深度文本匹配方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10762083B2 (en) * | 2017-12-21 | 2020-09-01 | Microsoft Technology Licensing, Llc | Entity- and string-based search using a dynamic knowledge graph |
-
2019
- 2019-07-22 CN CN201910659095.0A patent/CN112256953B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106557480A (zh) * | 2015-09-25 | 2017-04-05 | 阿里巴巴集团控股有限公司 | 查询改写的实现方法及装置 |
CN107221328A (zh) * | 2017-05-25 | 2017-09-29 | 百度在线网络技术(北京)有限公司 | 修改源的定位方法及装置、计算机设备及可读介质 |
CN108563632A (zh) * | 2018-03-29 | 2018-09-21 | 广州视源电子科技股份有限公司 | 文字拼写错误的修正方法、系统、计算机设备及存储介质 |
CN109471919A (zh) * | 2018-11-15 | 2019-03-15 | 北京搜狗科技发展有限公司 | 零代词消解方法及装置 |
CN109885828A (zh) * | 2019-01-14 | 2019-06-14 | 平安科技(深圳)有限公司 | 基于语言模型的词语纠错方法、装置、计算机设备及介质 |
CN109992648A (zh) * | 2019-04-10 | 2019-07-09 | 北京神州泰岳软件股份有限公司 | 基于词迁徙学习的深度文本匹配方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112256953A (zh) | 2021-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109783655B (zh) | 一种跨模态检索方法、装置、计算机设备和存储介质 | |
CN110263349B (zh) | 语料评估模型训练方法、装置、存储介质和计算机设备 | |
CN110019471B (zh) | 从结构化数据生成文本 | |
CN112528637B (zh) | 文本处理模型训练方法、装置、计算机设备和存储介质 | |
CN109062937A (zh) | 训练描述文本生成模型的方法、生成描述文本的方法及装置 | |
CN111444320A (zh) | 文本检索方法、装置、计算机设备和存储介质 | |
CN109635197B (zh) | 搜索方法、装置、电子设备及存储介质 | |
CN112380837B (zh) | 基于翻译模型的相似句子匹配方法、装置、设备及介质 | |
CN110008482B (zh) | 文本处理方法、装置、计算机可读存储介质和计算机设备 | |
CN111814493B (zh) | 机器翻译方法、装置、电子设备和存储介质 | |
CN109885830A (zh) | 语句释义方法、装置、计算机设备 | |
CN110297897A (zh) | 问答处理方法及相关产品 | |
CN112613293A (zh) | 摘要生成方法、装置、电子设备及存储介质 | |
CN114742037A (zh) | 文本纠错方法、装置、计算机设备和存储介质 | |
CN112926334A (zh) | 确定词表示向量的方法、装置及电子设备 | |
CN112215230A (zh) | 一种信息审核方法、装置及电子设备 | |
CN116993864A (zh) | 一种图像生成方法、装置、电子设备及存储介质 | |
CN112256953B (zh) | 查询改写方法、装置、计算机设备和存储介质 | |
CN112749639B (zh) | 模型训练方法、装置、计算机设备和存储介质 | |
CN117422064A (zh) | 搜索文本纠错方法、装置、计算机设备及存储介质 | |
CN116956954A (zh) | 文本翻译方法、装置、电子设备及存储介质 | |
CN112069810A (zh) | 一种文本填充方法及装置 | |
CN115879480A (zh) | 语义约束机器翻译方法、装置、电子设备及存储介质 | |
CN112016281B (zh) | 错误医疗文本的生成方法、装置及存储介质 | |
CN115858797A (zh) | 一种基于ocr技术生成中文近义词的方法及系统 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |