CN115329176A - 搜索请求的处理方法、装置、计算机设备及存储介质 - Google Patents
搜索请求的处理方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN115329176A CN115329176A CN202210959045.6A CN202210959045A CN115329176A CN 115329176 A CN115329176 A CN 115329176A CN 202210959045 A CN202210959045 A CN 202210959045A CN 115329176 A CN115329176 A CN 115329176A
- Authority
- CN
- China
- Prior art keywords
- entity
- query text
- query
- category
- character
- 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.)
- Pending
Links
Images
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
-
- 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/906—Clustering; Classification
-
- 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/9532—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
- G06F40/295—Named entity recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Software Systems (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种搜索请求的处理方法、装置、计算机设备及存储介质,属于计算机技术领域。本申请通过对原始Query进行实体识别,得到原始Query中的实体对象,再在实体对象的基础上改写得到实体Query,并在改写得到的实体Query上进行类别预测,再对预测所得的各个候选类别进行去重,能够快速高效地识别原始Query所属的目标类别,由于在进行类别预测时已经过滤掉了原始Query中的非实体字符,而在实体对象的基础上改写到的实体Query又能避免漏掉不同实体对象组合形成的实体Query,极大改善了长尾Query漏召回的现象,从而极大提升了针对长尾Query进行类别预测的准确率和召回率。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种搜索请求的处理方法、装置、计算机设备及存储介质。
背景技术
在搜索引擎***中,搜索请求中的查询文本(Query)是用户表达搜索意图的载体。在搜索意图识别任务上,首先需要识别出查询文本所属的类别(Label),目前,通常利用HMCN(Hierarchical Multi-Label Classification Networks,多层级多标签分类网络)模型,来预测查询文本具体所属的类别。
由于HMCN在进行类别预测时,严重依赖于有监督的训练数据,针对一些用户搜索频次高的头部查询文本,由于训练数据比较充分,能够实现较好的召回率,但针对一些用户搜索频次低的长尾查询文本,由于训练数据比较匮乏,因此存在严重的长尾查询文本漏召回的问题,导致类别预测的准确率低。
发明内容
本申请实施例提供了一种搜索请求的处理方法、装置、计算机设备及存储介质,能够改善长尾Query漏召回问题,提升针对长尾Query的类别预测准确率。该技术方案如下:
一方面,提供了一种搜索请求的处理方法,所述方法包括:
对搜索请求携带的查询文本进行实体识别,得到所述查询文本包含的至少一个实体对象;
基于所述至少一个实体对象,获取所述查询文本所对应的至少一个实体查询文本,所述实体查询文本由一个或多个实体对象组合形成;
对所述至少一个实体查询文本分别进行类别预测,得到所述至少一个实体查询文本各自所关联的候选类别;
对所述至少一个实体查询文本各自所关联的候选类别进行去重,得到所述查询文本所关联的目标类别。
一方面,提供了一种搜索请求的处理方法,所述方法包括:
将搜索请求的查询文本输入到共享编码模型中,通过所述共享编码模型提取所述查询文本的全局类别特征,所述全局类别特征表征所述查询文本中各字符在类别预测任务上的全局语义,所述共享编码模型用于针对查询文本编码得到可供类别预测的全局类别特征以及可供实体识别的语义特征;
对所述全局类别特征进行全连接处理,得到所述查询文本的全连接类别特征;
对所述全连接类别特征进行非线性映射,得到所述查询文本属于多个叶子类别各自的预测得分;
将预测得分最大的叶子类别确定为所述查询文本所关联的目标类别。
一方面,提供了一种搜索请求的处理装置,所述装置包括:
实体识别模块,用于对搜索请求携带的查询文本进行实体识别,得到所述查询文本包含的至少一个实体对象;
获取模块,用于基于所述至少一个实体对象,获取所述查询文本所对应的至少一个实体查询文本,所述实体查询文本由一个或多个实体对象组合形成;
类别预测模块,用于对所述至少一个实体查询文本分别进行类别预测,得到所述至少一个实体查询文本各自所关联的候选类别;
去重模块,用于对所述至少一个实体查询文本各自所关联的候选类别进行去重,得到所述查询文本所关联的目标类别。
在一种可能实施方式中,所述实体识别模块包括:
语义特征提取单元,用于对所述查询文本包含的多个字符进行特征提取,得到所述查询文本的语义特征;
实体识别单元,用于基于所述查询文本的语义特征,对所述查询文本进行实体识别,得到所述至少一个实体对象。
在一种可能实施方式中,所述语义特征提取单元用于:
对所述查询文本进行分词处理,得到所述查询文本包含的多个字符;
对所述多个字符进行特征提取,得到所述查询文本的字符特征;
将所述查询文本的字符特征输入到实体识别模型的多个第一编码层中,通过所述多个第一编码层对所述查询文本的字符特征进行编码,输出所述查询文本的语义特征,所述实体识别模型用于对所述查询文本进行实体识别。
在一种可能实施方式中,所述实体识别单元包括:
全连接子单元,用于将所述查询文本的语义特征输入到所述实体识别模型的第一全连接层中,通过所述第一全连接层对所述查询文本的语义特征进行全连接处理,得到所述查询文本的全连接语义特征;
预测子单元,用于将所述全连接语义特征输入到所述实体识别模型的条件随机场CRF层中,通过所述CRF层预测得到所述查询文本中多个字符各自的实体边界位置标签;
划分子单元,用于基于所述多个字符各自的实体边界位置标签,从所述多个字符中划分得到所述至少一个实体对象。
在一种可能实施方式中,所述预测子单元用于:
获取所述多个字符所对应的多个候选边界位置标签构成的多条候选路径;
通过所述CRF层,对所述多条候选路径分别进行打分,得到所述多条候选路径各自的路径分数,所述路径分数表征对应候选路径所包含的候选边界位置标签属于所述实体边界位置标签的可能性;
将路径分数最高的候选路径所包含的多个候选边界位置标签确定为所述多个字符各自的实体边界位置标签。
在一种可能实施方式中,所述划分子单元用于:
基于所述多个字符各自的实体边界位置标签,确定所述至少一个实体对象各自的起始字符和结束字符;
基于所述至少一个实体对象各自的起始字符和结束字符,从所述多个字符中划分得到所述至少一个实体对象。
在一种可能实施方式中,所述类别预测模块包括:
字符特征提取单元,用于对所述至少一个实体查询文本中的任一实体查询文本,提取所述实体查询文本的字符特征;
全局特征提取单元,用于基于所述实体查询文本的字符特征,获取所述实体查询文本的全局实体语义特征,所述全局实体语义特征表征所述实体查询文本中各字符在类别预测任务上的全局语义;
预测单元,用于基于所述全局实体语义特征,预测得到所述实体查询文本所关联的候选类别。
在一种可能实施方式中,所述全局特征提取单元用于:
将目标分类符的字符特征和所述实体查询文本的字符特征输入到类别预测模型的多个第二编码层中,所述类别预测模型用于预测实体查询文本所关联的候选类别;
通过所述多个第二编码层对所述目标分类符的字符特征和所述实体查询文本的字符特征进行编码,输出所述目标分类符对应的所述全局实体语义特征。
在一种可能实施方式中,所述预测单元用于:
将所述全局实体语义特征输入到所述类别预测模型的多个第二全连接层中,通过所述多个第二全连接层对所述全局实体语义特征进行全连接处理,得到所述实体查询文本的全连接实体语义特征;
对所述全连接实体语义特征进行非线性映射,得到所述实体查询文本属于多个叶子类别各自的预测得分;
将预测得分最大的叶子类别确定为所述实体查询文本所关联的候选类别。
在一种可能实施方式中,所述装置还包括:
查询模块,用于从预设类别表中,查询得到所述目标类别所关联的一个或多个层级类别,所述层级类别是指在不同层级下分别与所述目标类别具有关联关系的上级或下级类别。
一方面,提供了一种搜索请求的处理装置,所述装置包括:
特征提取模块,用于将搜索请求的查询文本输入到共享编码模型中,通过所述共享编码模型提取所述查询文本的全局类别特征,所述全局类别特征表征所述查询文本中各字符在类别预测任务上的全局语义,所述共享编码模型用于针对查询文本编码得到可供类别预测的全局类别特征以及可供实体识别的语义特征;
全连接模块,用于对所述全局类别特征进行全连接处理,得到所述查询文本的全连接类别特征;
映射模块,用于对所述全连接类别特征进行非线性映射,得到所述查询文本属于多个叶子类别各自的预测得分;
确定模块,用于将预测得分最大的叶子类别确定为所述查询文本所关联的目标类别。
在一种可能实施方式中,所述特征提取模块用于:
对所述查询文本进行分词处理,得到所述查询文本包含的多个字符;
对所述多个字符进行特征提取,得到所述查询文本的字符特征;
将分类指示符的字符特征和所述查询文本的字符特征输入到所述共享编码模型的多个第三编码层中,通过所述多个第三编码层对所述分类指示符的字符特征和所述查询文本的字符特征进行编码,输出所述分类指示符对应的所述全局类别特征。
在一种可能实施方式中,所述共享编码模型还输出所述查询文本的语义特征,所述装置还包括:
实体识别模块,用于基于所述查询文本的语义特征,对所述查询文本进行实体识别,得到所述查询文本包含的至少一个实体对象。
在一种可能实施方式中,所述实体识别模块用于:
对所述查询文本的语义特征进行全连接处理,得到所述查询文本的全连接识别特征;
基于所述全连接识别特征,预测得到所述查询文本中多个字符各自的实体边界位置标签;
基于所述多个字符各自的实体边界位置标签,从所述多个字符中划分得到所述至少一个实体对象。
在一种可能实施方式中,所述装置还包括:
查询模块,用于从预设类别表中,查询得到所述目标类别所关联的一个或多个层级类别,所述层级类别是指在不同层级下分别与所述目标类别具有关联关系的上级或下级类别。
一方面,提供了一种计算机设备,该计算机设备包括一个或多个处理器和一个或多个存储器,该一个或多个存储器中存储有至少一条计算机程序,该至少一条计算机程序由该一个或多个处理器加载并执行以实现如上述任一种可能实现方式的搜索请求的处理方法。
一方面,提供了一种存储介质,该存储介质中存储有至少一条计算机程序,该至少一条计算机程序由处理器加载并执行以实现如上述任一种可能实现方式的搜索请求的处理方法。
一方面,提供一种计算机程序产品,所述计算机程序产品包括一条或多条计算机程序,所述一条或多条计算机程序存储在计算机可读存储介质中。计算机设备的一个或多个处理器能够从计算机可读存储介质中读取所述一条或多条计算机程序,所述一个或多个处理器执行所述一条或多条计算机程序,使得计算机设备能够执行上述任一种可能实施方式的搜索请求的处理方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
通过先针对原始Query进行实体识别,以识别出原始Query中的实体对象,再在实体对象的基础上对原始Query改写得到一个或多个实体Query,以剔除掉一些原始Query中的非实体字符,这样只需要对改写得到的每个实体Query分别进行类别预测,再对类别预测所得的各个候选类别进行去重,即可快速高效地识别到原始Query所属的目标类别,由于在进行类别预测时已经过滤掉了原始Query中的非实体字符,而在实体对象的基础上改写到的实体Query又能避免漏掉不同实体对象组合形成的实体Query,极大改善了长尾Query漏召回的现象,从而极大提升了针对长尾Query进行类别预测的准确率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还能够根据这些附图获得其他的附图。
图1是本申请实施例提供的一种搜索请求的处理方法的实施环境示意图;
图2是本申请实施例提供的一种搜索请求的处理方法的流程图;
图3是本申请实施例提供的一种搜索请求的处理方法的流程图;
图4是本申请实施例提供的一种实体识别BERT模型的原理性示意图;
图5是本申请实施例提供的一种预测实体边界位置标签的流程图;
图6是本申请实施例提供的一种Query改写的原理性流程图;
图7是本申请实施例提供的一种实体Query的类别预测流程图;
图8是本申请实施例提供的一种类别预测BERT模型的原理性示意图;
图9是本申请实施例提供的一种搜索请求的处理方法的原理性流程图;
图10是本申请实施例提供的一种搜索请求的处理方法的流程图;
图11是本申请实施例提供的一种共享BERT编码模型的原理性示意图;
图12是本申请实施例提供的一种搜索请求的处理装置的结构示意图;
图13是本申请实施例提供的一种搜索请求的处理装置的结构示意图;
图14是本申请实施例提供的计算机设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。
本申请中术语“至少一个”是指一个或多个,“多个”的含义是指两个或两个以上,例如,多个第一位置是指两个或两个以上的第一位置。
本申请中术语“包括A或B中至少一项”涉及如下几种情况:仅包括A,仅包括B,以及包括A和B两者。
本申请中涉及到的用户相关的信息(包括但不限于设备信息、个人信息、行为信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,当以本申请实施例的方法运用到具体产品或技术中时,均为经过用户许可、同意、授权或者经过各方充分授权的,且相关信息、数据以及信号的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请中涉及到的查询文本都是在充分授权的情况下获取的。
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用***。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互***、机电一体化等技术。人工智能软件技术主要包括音频处理技术、计算机视觉技术、自然语言处理技术以及机器学习/深度学习等几大方向。
让计算机能听、能看、能说、能感觉,是未来人机交互的发展方向,其中,自然语言处理(Nature Language Processing,NLP)是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系。自然语言处理技术通常包括实体识别、机器翻译、文本预处理、语义理解、机器人问答、知识图谱等技术。
在搜索引擎***中,搜索请求中的查询文本(Query)是用户表达搜索意图的载体,因此机器对查询文本的语义理解,是用户和搜索引擎***建立联系的重要环节。通常,搜索引擎***的QP(Query Processor)模块会负责对查询文本的搜索意图识别工作,在意图识别任务上,首先需要识别出来查询文本所属的类别(Label),换言之,针对查询文本的类别预测,是针对用户搜索意图识别的重要环节。只有精准地对查询文本进行分类,才能够辅助精准判断用户的搜索意图,从而在下游针对召回资源的粗排或精排阶段,辅助进行查询文本和召回物品(Item)进行相关性计算,也可应用于搜索产品辅助功能中的导航、相关搜索等。
通常,为了建立更好地表征查询文本所属的类别,技术人员会预先划分得到一个预设类别表,预设类别表中将记载预先针对不同层级下所划分的各个类别,这样在预测查询文本所属的类别时,会预测出来一个多层级、多标签的分类结果,如在设置四个层级的情况下,分类结果格式如“一级标签_二级标签_三级标签_四级标签”,例如,“美妆护肤_面部洗护_面部精华_精华液/肌底液”就是一种多层级、多标签的分类结果的示例性说明。
目前,搜索引擎***在针对查询文本进多层级的类别预测时,通常将查询文本输入到HMCN(Hierarchical Multi-Label Classification Networks,多层级多标签分类网络)模型中,在HMCN模型中对每个层级都独立设置一个分类器,最终通过每个层级的分类器来预测查询文本在当前层级所具体的类别,综合所有分类器的输出类别,即可得到多层级、多标签的分类结果。
HMCN模型是采用有监督的训练数据训练所得的机器学习模型,要求标注出样本Query属于每个层级中的哪个类别,这样会导致存在如下两个问题:(1)由于预设类别表中各个层级的类别数量都是众多的,比如,层级1包含33个类别,层级2包含277个类别,层级3包含2453个类别,层级4包含3386个类别,显然,在对样本Query进行人工标注的过程中,由于层级众多、类别众多,存在人力成本高、标注效率低的问题;(2)基于有限的人力成本标注得到的有监督的样本Query作为训练数据,很难覆盖到实际搜索场景中的完整Query分布,因此,通常HMCN模型针对一些搜索频次高的头部Query,由于训练数据比较充分,能够精准类别预测出来头部Query所属类别,但针对一些搜索频次低的长尾Query,由于训练数据十分匮乏,因此长尾Query存在严重的漏召回问题。
如表1所示,以商品搜索场景为例,示出了HMCN模型针对如下几种示例的头部Query和长尾Query的类别预测结果:
表1
原始Query | Query类型 | 识别结果 |
品牌A产品1 | 头部Query | √ |
品牌A产品1使用方法 | 长尾Query | × |
品牌A产品1的主要功效是什么 | 长尾Query | × |
品牌A产品1的作用和功效 | 长尾Query | × |
品牌A产品1适合什么年龄 | 长尾Query | × |
品牌A产品1免税店价格 | 长尾Query | × |
孕妇能用品牌A产品1吗 | 长尾Query | × |
干性皮肤可以用品牌A产品1吗 | 长尾Query | × |
为什么用品牌A产品1过敏 | 长尾Query | × |
其中,漏召回问题是指:无法识别出来长尾Query所属类别,导致对应类别的资源无法被精准召回。
如上表1所示,可以看出,在商品搜索场景下,由于头部Query一般分布比较单一规整,直接呈现出“品牌名-产品名”的格式,因此HMCN模型对头部Query的召回率是比较高的,但针对长尾Query,存在分布多样、特征不一等特点,因此HMCN模型对长尾Query存在严重的漏召回问题。
有鉴于此,本申请实施例提供一种搜索请求的处理方法,基于实体识别和Query改写,提供一种商品短文本层级类别预测方案,以改善在商品搜索场景下长尾Query漏召回严重的技术问题,由于针对长尾Query能够显著提升召回率,这样能够有利于提升下游意图识别、针对召回资源的粗排或精排等其他任务的整体指标和研发效率,从而优化搜索引擎***所面向用户的用户体验。
以下,对本申请实施例涉及的术语进行解释说明。
Query:查询文本,通常是一个短文本,在搜索场景下的Query是指用户提供的搜索文本(可能是一个搜索词,或者一个搜索句子,或者一个搜索词组等)。
Query类别预测:即查询文本类别预测,是指对用户输入的Query进行分类,判断出来Query所属的多层级下各自所属的类别,尤其是在商品搜索场景下能够定位出来Query的商品类别意图,从而可在针对召回资源的粗排、精排阶段,辅助进行Query和Item相关性的计算,或者应用于搜索产品辅助功能中的导航、相关搜索等其他场景。
Query实体识别:指针对Query进行实体识别(Named Entity Recognition,NER,也称为命名实体识别、实体分块、实体提取等),通过对Query的字符序列进行序列标注,以识别出来Query中包含的特定意义的实体对象。例如,在商品搜索场景下,实体对象可以是品牌名、产品名、品类名等属性信息,能够辅助更加精细地匹配用户的搜索意图。
通常情况下,给定一个Query,在进行实体识别时涉及到的是识别实体边界和识别实体类型,实体边界是指实体对象从哪个字符开始、到哪个字符结束,实体类型则是指实体对象具体属于那一类属性。
在本申请实施例中,使用B(Begin,开始字符)、I(Inside,中间字符)、E(End,结束字符)、O(Outside,非实体字符)等指示符来标注实体边界,使用“品牌词”、“产品词”等标签来标注实体类型。
在上述针对实体边界和实体类型的标注方式下,假设给定Query为“XY产品名使用方法”,则针对实体对象的识别结果应为:“XY”为品牌词,“产品名”为产品词,“使用方法”为非实体,上述Query实体识别可视为一个针对Query字符序列的序列标注任务,序列标注结果如表2所示。
表2
Query改写:指针对Query进行归一、纠错、拓展、丢词等处理,以做到更好的商品召回和匹配。在本申请实施例中,涉及到利用识别出来的实体对象来进行Query改写。
Query层次类别预测:已知Query的预设类别表,输入一个给定Query,输出Query在多个层级中每个层级所属的类别。在商品搜索场景下,尤其指商品短文本层次类别预测,此时Query的预设类别表也称为商品的层次类别树,给定一个商品Query,会输出一个或多个类别树的完整层次路径,一个或多个类别对应的是多标签,而完整层次对应的多层次,比如,输入商品Query为“XX产品名使用方法”,则预测出来的类别为“美妆护肤_面部洗护_面部精华_精华液/肌底液”。
Transformer(变换器):一种基于自注意力机制的神经网络结构,在自然语言处理、语音技术和计算机视觉等领域有广泛的应用。
BERT(Bidirectional Encoder Representation From Transformers,采用双向编码表示的Transformer模型):BERT模型是一种基于Transformer结构的深度双向编码表征的模型,本质上利用Transformer结构构造了一个多层双向的编码网络,BERT模型中涉及到的编码层都是双向编码层,每个双向编码层用于对输入信号进行正向编码和反向编码,并且,在每个双向编码层中包括一个注意力网络和一个前向全连接层,注意力网络中每一个隐层都是由上一层的隐层进行加权平均所得,使得每一个隐层都能和上一层的所有隐层直接关联,利用输入的长序列信息能够得到一个用于表征全局化信息的隐层向量,而前向全连接层则用于对注意力网络获取的全局化信息进行进一步加工,以增强整个BERT模型的学习能力。
以下,对本申请实施例的***架构进行说明。
图1是本申请实施例提供的一种搜索请求的处理方法的实施环境示意图。
参见图1,该实施环境中涉及终端101和服务器102,下面进行详述:
终端101是能够支持搜索引擎的任一计算机设备,终端101安装和运行有支持搜索引擎的应用程序,可选地,该应用程序可以是:浏览器应用、社交应用、内容分享应用、音视频应用、短视频应用、外卖应用、购物应用等,本申请实施例对应用程序的类型不进行具体限定。
在一些实施例中,用户在支持搜索引擎的应用程序中输入查询文本,并响应于用户执行的搜索操作,触发终端101生成携带该查询文本的搜索请求,进而由终端101向服务器102发送携带该查询文本的搜索请求。
终端101以及服务器102之间可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
服务器102是能够提供搜索引擎服务的一台服务器、多台服务器、云计算平台或者虚拟化中心等。服务器102用于为终端101上支持搜索引擎的应用程序提供后台服务。可选地,在基于查询文本的资源搜索过程中,服务器102承担主要计算工作,终端101承担次要计算工作;或者,服务器102承担次要计算工作,终端101承担主要计算工作;或者,终端101与服务器102之间采用分布式计算架构进行协同计算。
在一些实施例中,服务器102是独立的物理服务器,或者是多个物理服务器构成的服务器集群或者分布式***,或者是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)以及大数据和人工智能平台等基础云计算服务的云服务器。
在一些实施例中,服务器102接收终端101发送的搜索请求,解析该搜索请求得到查询文本,接着,通过本申请实施例提供的方法,对该查询文本进行类别预测,得到该查询文本所属的目标类别,进而在预设类别表中查询到目标类别所关联的其他层级类别,综合目标类别和查询到的层级类别,得到针对查询文本的多层级多标签分类结果,以便于投入到后续的资源召回及排序任务中,便于针对搜索请求召回更加准确的多媒体资源,同时对召回的多媒体资源进行更加准确的排序,可选地,针对识别出来的多层级多标签分类结果,还能够投入到广告推荐、商品推荐、资讯推荐、应用程序推荐等各类资源推荐任务中,以提升资源推荐准确性。
在一些实施例中,终端101的设备类型包括:智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、MP3(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)播放器、MP4(Moving Picture Experts Group AudioLayer IV,动态影像专家压缩标准音频层面4)播放器或者电子书阅读器中至少一项,但并不局限于此。
本领域技术人员可以知晓,终端101可以泛指多个终端中的一个,上述终端101的数量可以更多或更少。比如上述终端101可以仅为一个,或者上述终端101为几十个或几百个,或者更多数量。本申请实施例对终端101的数量和设备类型不加以限定。
以下,将对本申请实施例提供的对搜索请求的处理流程进行简单介绍。
图2是本申请实施例提供的一种搜索请求的处理方法的流程图。参见图2,该实施例由计算机设备执行,以计算机设备为服务器为例进行说明,该实施例包括下述步骤:
201、服务器对搜索请求携带的查询文本进行实体识别,得到该查询文本包含的至少一个实体对象。
在一些实施例中,服务器接收终端发送的数据请求,解析该数据请求的头字段,在该头字段中携带搜索请求标识时,确定该数据请求为搜索请求,接着,解析该搜索请求的数据字段,得到该数据字段中携带的查询文本,其中,查询文本是指用户提供的Query,通常,Query是一段短文本。
示意性地,用户在终端上启动支持搜索引擎的应用程序,并在搜索引擎的搜索输入框中输入查询文本,之后用户点击搜索按钮,触发终端向服务器发送携带该查询文本的搜索请求,可选地,查询文本可以是用户以语音方式输入的,或者以文本方式输入的,或者用户一键点击快捷搜索词、历史搜索词、联想搜索词等,本申请实施例对查询文本的输入方式不进行具体限定。
在一些实施例中,服务器从搜索请求中解析得到查询文本之后,对该查询文本进行实体识别,比如,对查询文本进行分词处理,得到查询文本中多个字符所构成的字符序列,进而对查询文本的字符序列进行序列标注,以对上述字符序列中的每个字符进行实体边界和实体类型的识别,最终根据序列标注结果,可以从字符序列中分割出来查询文本所包含的至少一个实体对象。
示意性地,针对查询文本“XY产品名使用方法”进行分词处理,得到字符序列{“X”,“Y”,“产”,“品”,“名”,“使”,“用”,“方”,“法”},对上述字符序列进行序列标注,得到了如上表2所示的序列标注结果。可以看出,由于字符“使”、“用”、“方”、“法”的标注结果均为O即非实体,因此“使用方法”不是查询文本中的实体对象。进一步的,针对“XY产品名”进行实体分割,“X”的标注结果为“B-品牌词”,即代表字符“X”被识别为实体类型“品牌词”的“开始字符”,“Y”的标注结果为“E-品牌词”,代表字符“Y”被识别为实体类型“品牌词”的“结束字符”,因此可以分割得到查询文本中的第1个实体对象“XY”,且实体对象“XY”实体类型为“品牌词”;同理,“产”的标注结果为“B-产品词”,即代表字符“产”被识别为实体类型“产品词”的“开始字符”,“品”的标注结果为“I-产品词”,代表字符“品”被识别为实体类型“产品词”的“中间字符”,“名”的标注结果为“E-产品词”,代表字符“名”被识别为实体类型“产品词”的“结束字符”,因此可以分割得到查询文本中的第2个实体对象“产品名”,且实体对象“产品名”实体类型为“产品词”。最终,可以得到查询文本中所包含的2个实体对象“XY”和“产品名”。
202、服务器基于该至少一个实体对象,获取该查询文本所对应的至少一个实体查询文本,该实体查询文本由一个或多个实体对象组合形成。
在一些实施例中,基于上述步骤201所识别出来的实体对象,还可以进行Query改写,从而能够将原本形式复杂多样、特征难以对齐的查询文本,切割掉一些无关的非实体字符,进而改写成规整且易分类的实体Query即实体查询文本,通常,实体Query是由上述步骤201识别到的一个或多个实体对象所组合形成的组合词或组合短语,这样在实体Query上进行类别预测时的准确率相较于在原始Query上进行类别预测的准确率会得到大大提升。
在一些实施例中,在基于至少一个实体对象,对原始Query即查询文本进行改写,以得到至少一个实体Query即实体查询文本的过程中,服务器可以先确定每个实体对象的实体类型,进而穷举所有不同实体类型下的实体对象所能够形成的排列组合,每一种排列组合都构成一个实体Query。例如,假设识别到了2个实体类型为品牌词的实体对象,以及3个实体类型为产品词的实体对象,这时将每个品牌词下的实体对象都分别与3个不同产品词下的实体对象进行组合,上述2个品牌词和3个产品词一共能够形成6种组合方式,即可基于上述5个实体对象(包括2个品牌词和3个产品词),获取到6个实体Query。
在一个示例中,原始Query为“XY产品名使用方法”,通过上述步骤201识别到了1个品牌词“XY”和1个产品词“产品名”一共2个实体对象,2个不同实体类型的实体对象只能形成一种组合方式即“XY产品名”,因此通过2个实体对象“XY”和“产品名”,能够获取到原始Query对应的一个实体Query“XY产品名”。
在另一个示例中,原始Query为“XY产品1和产品2如何区别”,通过上述步骤201识别到了1个品牌词“XY”以及2个产品词“产品1”和“产品2”一共3个实体对象,将品牌词“XY”和产品词“产品1”组合形成一个实体Query“XY产品1”,将品牌词“XY”和产品词“产品2”组合形成另一个实体Query“XY产品2”,最终能够获取到原始Query对应的两个实体Query“XY产品1”和“XY产品2”。
203、服务器对该至少一个实体查询文本分别进行类别预测,得到该至少一个实体查询文本各自所关联的候选类别。
在一些实施例中,服务器在上述步骤202所获取到的至少一个实体Query的基础上进行类别预测,比如,对每个实体Query都单独进行类别预测,得到每个实体Query所关联的候选类别。
在一些实施例中,对每个实体Query进行类别预测时,可以先提取到实体Query的全局实体语义特征,再对该全局实体语义特征进行全连接处理,提取到实体Query的全连接实体语义特征,进而将该全连接实体语义特征进行非线性映射,得到实体Query属于每种叶子类别的预测得分,进而,将预测得分最大的叶子类别确定为当前实体Query所关联的候选类别。详细类别预测的方式将在下一实施例中详细说明,这里不做赘述。
需要说明的是,叶子类别可以是指预设类别表中最细粒度的类别标签,例如,假设在划分了4个层级的情况下,完整标签应为“一级标签_二级标签_三级标签_四级标签”,这时的“四级标签”就是最细粒度的叶子类别,例如,“美妆护肤_面部洗护_面部精华_精华液/肌底液”这一多层级多标签的分类结果中,“精华液/肌底液”就是最细粒度的叶子类别。
204、服务器对该至少一个实体查询文本各自所关联的候选类别进行去重,得到该查询文本所关联的目标类别。
在一些实施例中,服务器在上述步骤203中,对每个实体Query都能够预测出来一个候选类别,但不同实体Query的候选类别都可能会重复,这时,需要在本步骤204中,对上述步骤203中针对所有实体Query分别进行类别预测所得的所有候选类别进行去重,在对所有实体Query所属的候选类别去重后,即可得到原始Query所属的目标类别。
在一个示例中,原始Query为“XY产品1和产品2如何区别”,在进行实体识别后再改写得到了2个实体Query“XY产品1”和“XY产品2”,但有可能针对实体Query“XY产品1”的类别预测结果与针对实体Query“XY产品2”的类别预测结果相同,比如,两者预测出来的候选类别均为“精华液/肌底液”,这时对两个实体Query的候选类别进行去重,即可得到原始Query所属的目标类别“精华液/肌底液”。
在另一个示例中,原始Query为“XY产品1和产品2如何区别”,在进行实体识别后再改写得到了2个实体Query“XY产品1”和“XY产品2”,假设针对实体Query“XY产品1”的类别预测结果与针对实体Query“XY产品2”的类别预测结果不同,比如,实体Query“XY产品1”所属的候选类别为“精华液/肌底液”,实体Query“XY产品2”所属的候选类别为“眼霜”,这时对两个实体Query的候选类别进行去重时不会去除任何候选类别,因此最终得到原始Query所属的目标类别为“精华液/肌底液”和“眼霜”。
上述所有可选技术方案,能够采用任意结合形成本公开的可选实施例,在此不再一一赘述。
本申请实施例提供的方法,通过先针对原始Query进行实体识别,以识别出原始Query中的实体对象,再在实体对象的基础上对原始Query改写得到一个或多个实体Query,以剔除掉一些原始Query中的非实体字符,这样只需要对改写得到的每个实体Query分别进行类别预测,再对类别预测所得的各个候选类别进行去重,即可快速高效地识别到原始Query所属的目标类别,由于在进行类别预测时已经过滤掉了原始Query中的非实体字符,而在实体对象的基础上改写到的实体Query又能避免漏掉不同实体对象组合形成的实体Query,极大改善了长尾Query漏召回的现象,从而极大提升了针对长尾Query进行类别预测的准确率和召回率。
在上一实施例中,简单介绍了服务器对搜索请求的处理流程,而在本申请实施例中,将详细介绍对搜索请求的处理流程中各个步骤的实施方式,下面进行说明。
图3是本申请实施例提供的一种搜索请求的处理方法的流程图。参见图3,该实施例由计算机设备执行,以计算机设备为服务器为例进行说明,该实施例包括下述步骤:
301、服务器接收搜索请求,解析该搜索请求得到查询文本。
示意性地,用户在终端上启动支持搜索引擎的应用程序,并在搜索引擎的搜索输入框中输入查询文本,之后用户点击搜索按钮,触发终端向服务器发送携带该查询文本的搜索请求,可选地,查询文本可以是用户以语音方式输入的,或者以文本方式输入的,或者用户一键点击快捷搜索词、历史搜索词、联想搜索词等,本申请实施例对查询文本的输入方式不进行具体限定。
在一些实施例中,服务器接收终端发送的数据请求,解析该数据请求的头字段,在该头字段中携带搜索请求标识时,确定该数据请求为搜索请求,接着,解析该搜索请求的数据字段,得到该数据字段中携带的查询文本,其中,查询文本是指用户提供的Query,通常,Query是一段短文本。
302、服务器对该查询文本进行分词处理,得到该查询文本包含的多个字符。
在一些实施例中,服务器从搜索请求中解析得到查询文本之后,对查询文本进行分词处理,即,将原始的一段查询短文本Query逐个字符进行划分,得到由该查询文本所包含的多个字符所构成的字符序列。可选地,服务器使用分词(Token)工具来对查询文本进行分词处理,从而将查询文本拆解成一个包含查询文本中全部字符的字符序列,本申请实施例涉及的字符包括但不限于:文字(中文字或英文单词)、数字、特殊符号、标点符号等。
在一个示例中,针对查询文本“XY产品名使用方法”进行分词处理,得到字符序列{“X”,“Y”,“产”,“品”,“名”,“使”,“用”,“方”,“法”}。
303、服务器对该多个字符进行特征提取,得到该查询文本的字符特征。
在一些实施例中,服务器对该字符序列中的多个字符进行嵌入(Embedding)处理,将每个字符都映射成Embedding空间的一个Embedding向量,每个字符的Embedding向量即为当前字符的字符特征。
在另一些实施例中,服务器对该字符序列中的多个字符进行独热(One-hot)编码,将每个字符都映射成一个One-hot向量,每个字符的One-hot向量即为当前字符的字符特征。
在一些实施例中,服务器中预先创建一个字符表(或称为词表),并对字符表中的每个字符(如单词)都创建一个唯一的字符ID(Identification,标识),同时预先提取到该字符的字符特征,并将字符表中每个字符的字符ID和字符特征在特征库进行关联存储,在通过上述步骤302分词得到查询文本所包含的每个字符之后,能够根据每个字符的字符ID,从特征库中查询到与该字符ID所关联存储的字符特征,上述字符特征可以是字符的Embedding向量或One-hot向量,本申请实施例对此不进行具体限定。
在一个示例中,针对查询文本“XY产品名使用方法”,分词得到字符序列{“X”,“Y”,“产”,“品”,“名”,“使”,“用”,“方”,“法”},接着,将字符序列中的每个字符通过查找字符表,得到每个字符对应的字符ID,再从特征库中根据字符ID查找到每个字符对应的字符特征,例如上述9个字符的字符特征分别为:T1、T2、T3、T4、T5、T6、T7、T8、T9。
304、服务器将该查询文本的字符特征输入到实体识别模型的多个第一编码层中,通过该多个第一编码层对该查询文本的字符特征进行编码,输出该查询文本的语义特征。
其中,该实体识别模型用于对该查询文本进行实体识别,该实体识别模型的输入信号是查询文本(如一段短文本Query)的字符特征,通过该实体识别模型的处理之后,将输出对该查询文本中每个字符的实体标注结果,其中,该实体标注结果用于指示对应字符的实体边界和/或实体类型。
在一些实施例中,该实体识别模型包括多个第一编码层、第一全连接层和CRF(Conditional Random Field,条件随机场)层,第一编码层用于对输入信号进行编码以提取得到对应的语义特征,第一全连接层用于对输入信号进行全连接处理以提取到对应的全连接特征,CRF层则用于对各个字符所构成的每种可能的实体标注结果路径进行打分以预测出分数最高的候选路径。
在一些实施例中,服务器将该查询文本的字符特征输入到实体识别模型的多个第一编码层中,通过该多个第一编码层对该查询文本的字符特征进行编码,上述多个第一编码层之间是级联的,即,每个第一编码层的输入信号都是上个第一编码层的输出信号,且每个第一编码层的输出信号都会输入到下一个第一编码层中,因此,在通过该多个第一编码层的编码之后,由最后一个第一编码层输出该查询文本的语义特征。
在一些实施例中,以实体识别模型为实体识别BERT模型为例进行说明,BERT模型包括的每个第一编码层都是双向编码层,双向编码层用于对输入信号进行正向编码和反向编码。在每个双向编码层中都包括两部分,一部分是注意力网络,另一部分是前向全连接层,注意力网络中每一个隐层都是由上一层的隐层进行加权平均所得,使得每一个隐层都能和上一层的所有隐层直接关联,利用输入的长序列信息能够得到一个用于表征全局化信息的隐层向量(指分类符的语义特征),而前向全连接层则用于对注意力网络获取的全局化信息进行进一步加工,以增强整个BERT模型的学习能力。
在一些实施例中,在提取到该查询文本中多个字符的字符特征之后,将分类符[CLS]的字符特征、上述多个字符的字符特征、分隔符[SEP]的字符特征以及填充符[PAD]的字符特征,依照上述次序拼接得到一个字符特征序列,将该字符特征序列输入到实体识别BERT模型之后,通过实体识别BERT模型的多个第一编码层,对上述字符特征序列进行正向编码和反向编码,将最后一个第一编码层中输出的该多个字符的语义特征获取为该查询文本的语义特征,其中,上述多个字符的语义特征分别与上述多个字符的字符特征相对应。需要说明的是,分类符[CLS]的字符特征、分隔符[SEP]的字符特征以及填充符[PAD]的字符特征也可以通过上述步骤303中同理的方式进行提取,即通过查找字符表找到分类符[CLS]、分隔符[SEP]以及填充符[PAD]的字符ID,再从特征库中根据字符ID查找到分类符[CLS]、分隔符[SEP]以及填充符[PAD]各自的字符特征。
以首个第一编码层为例进行说明,在该第一编码层中包括注意力网络和前向全连接层。将该字符特征序列输入到首个第一编码层的注意力网络中,通过注意力网络对该字符特征序列进行加权,以提取该字符特征序列的注意力特征序列,将该注意力特征序列输入到首个第一编码层的前向全连接层中,通过前向全连接层对该注意力特征序列进行双向的语义编码(包括正向编码和反向编码),输出一个隐向量序列,将该隐向量序列输入到第二个第一编码层中,依此类推,后续的第一编码层的处理逻辑均与首个第一编码层类似,这里不做赘述,最后一个第一编码层所输出的隐向量序列中查找到该查询文本中多个字符的语义特征作为该查询文本的语义特征。由于在第一编码层中引入注意力机制,能够在每次进行语义编码时,使得各个字符聚焦于与自身关联较大(关系更密切)的字符,使得最终获取的语义特征具有更高的准确性。
在上述过程中,服务器通过第一编码层对字符特征序列中的各个字符特征分别进行了正向编码和反向编码,通过正向编码使得每个字符的特征能够融合该字符之前出现的历史字符的相关信息,而通过反向编码使得每个字符的特征能够融合该字符之后出现的未来字符的相关信息,两个方向的编码操作能够大大提升各个字符的隐向量的表达能力,也即能够提升该语义特征的表达能力。
图4是本申请实施例提供的一种实体识别BERT模型的原理性示意图,如图4所示,实体识别BERT模型400中,包括多个第一编码层410、第一全连接层420和CRF层430。假设查询文本为“XY产品名使用方法”,提取到的查询文本中各个字符的字符特征分别为:T1、T2、T3、T4、T5、T6、T7、T8、T9,接着,再将分类符[CLS]的字符特征放置于T1之前(即将[CLS]的字符特征置于首位),将分隔符[SEP]的字符特征放置于T9之后(即将[SEP]的字符特征置于最后一个字符的字符特征之后),最后判断当前字符特征序列的序列长度是否到达第一预设长度,若未到达第一预设长度,将使用填充符[PAD]的字符特征对字符特征序列进行填充,直到将字符特征序列的长度填充至到达第一预设长度,其中,第一预设长度为任一大于或等于1的整数,例如第一预设长度为30或其他数值,可由技术人员进行指定。将上述第一预设长度的字符特征序列{[CLS],T1,T2,T3,T4,T5,T6,T7,T8,T9,[SEP],[PAD],[PAD],…,[PAD]}输入到多个第一编码层410中,通过该多个第一编码层410对上述字符特征序列进行正向编码和反向编码,由最后一个第一编码层410输出一个隐向量序列{E[CLS],E1,E2,E3,E4,E5,E6,E7,E8,E9,E[SEP],E[PAD],E[PAD],…,E[PAD]},将上述隐向量序列中与查询文本中多个字符对应的语义特征{E1,E2,E3,E4,E5,E6,E7,E8,E9}获取为该查询文本的语义特征。其中,隐向量序列中的E[CLS]表征整个查询文本的全局语义,可以设定维度为768,同时每个字符的语义特征E1~E9的维度也可以设定为768。
在上述步骤302-304中,提供了对该查询文本包含的多个字符进行特征提取,得到该查询文本的语义特征的一种可能实施方式,即通过实体识别BERT模型来提取查询文本的语义特征,由于在BERT模型中会对查询文本的字符特征进行正向编码和反向编码,两个方向的编码操作能够大大提升各个字符的隐向量的表达能力,也即能够提升该查询文本的语义特征的表达能力。
在另一些实施例中,也可以采取Transformer的编码层作为实体识别模型的第一编码层,或者采取其他的支持编码功能的Seq2Seq(Sequence-To-Sequence,序列到序列)模型如:SpanBERT(Improving Pre-training by Representing and Predicting Spans,基于表现和预测跨度的改进预训练BERT模型)、LSTM(Long Short-Term Memory,长短期记忆网络)、Bi-LSTM(Bidirectional Long Short-Term Memory,双向长短期记忆网络)、GRU(Gated Recurrent Unit,门循环单元)等,本申请实施例对实体识别模型的编码层架构不进行具体限定。
305、服务器将该查询文本的语义特征输入到该实体识别模型的第一全连接层中,通过该第一全连接层对该查询文本的语义特征进行全连接处理,得到该查询文本的全连接语义特征。
在一些实施例中,通过上述步骤304提取到查询文本中多个字符的语义特征之后,可以将该查询文本的多个字符的语义特征拼接(Concat)所得的拼接特征输入到实体识别模型的第一全连接层中,通过该第一全连接层对该拼接特征进行全连接处理,提取到该查询文本的全连接语义特征。
在第一全连接层中,通过多对多的连接方式,能够有效地提取全局信息。需要说明的是,多对多的连接方式是指层间的神经元(每个神经元对应于一个字符的语义特征)完全连接,每个输出神经元能够获取到所有输入神经元的信息,换言之,上述全连接语义特征能够获取到组成拼接特征的所有输入字符的语义特征的信息,这样有利于进行信息汇总。
在一个示例性场景中,如图4所示,针对多个第一编码层410输出的隐向量序列{E[CLS],E1,E2,E3,E4,E5,E6,E7,E8,E9,E[SEP],E[PAD],E[PAD],…,E[PAD]},剔除掉分类符[CLS]的隐向量,将剩余的隐向量序列{E1,E2,E3,E4,E5,E6,E7,E8,E9,E[SEP],E[PAD],E[PAD],…,E[PAD]}中的各个隐向量进行拼接,得到拼接隐向量即拼接特征,将上述拼接隐向量输入到第一全连接层420中进行全连接处理,即可得到查询文本的全连接语义特征。
示意性地,假设第一预设长度为30,那么向实体识别BERT模型输入一个长度为30的字符特征序列后,会输出一个长度为30的隐向量序列,由于剔除了首位的分类符[CLS]的隐向量,得到一个长度为29的拼接隐向量Ein,假设每个隐向量都是768维,那么显然拼接隐向量Ein的维度为[29,768],将拼接隐向量Ein输入到第一全连接层420中。进一步地,若第一全连接层420中的权重矩阵W1的维度为[768,7],那么在经过权重矩阵W1对拼接隐向量Ein进行全连接处理后,第一全连接层420会输出一个维度为[29,7]的向量Eout,上述输出向量Eout即是该查询文本的全连接语义特征。
306、服务器将该全连接语义特征输入到该实体识别模型的CRF层中,通过该CRF层预测得到该查询文本中多个字符各自的实体边界位置标签。
其中,实体边界位置标签用于表征当前字符的实体边界标签和实体类型标签,换言之,实体边界位置标签相当于提供了对当前字符的实体边界标注结果和实体类型标签结果。
在一些实施例中,服务器预定义一个实体边界位置标签所构成的实体识别类别表,实体识别类别表中的每个实体边界位置标签都标注了一个确定的实体边界标签和实体类型标签构成的组合。
示意性地,使用B(Begin,开始字符)、I(Inside,中间字符)、E(End,结束字符)、O(Outside,非实体字符)4种指示符来标注实体边界,使用“品牌词”、“产品词”2种标签来标注实体类型为例进行说明,此时2种实体类型标签和4种实体边界标签一种能够组合形成7种实体边界位置标签,对每种实体边界位置标签分配标签ID之后,通过实体识别类别表来记录每种实体边界位置标签和其标签ID的映射关系,如表3所示:
表3
标签ID | 实体边界位置标签 |
0 | O |
1 | B-品牌词 |
2 | I-品牌词 |
3 | E-品牌词 |
4 | B-产品词 |
5 | I-产品词 |
6 | E-产品词 |
通过预先基于实体边界标签和实体类型标签,预定义一个实体识别类别表,这样能够使用单个实体边界位置标签来同时表征一种实体边界标签和一种实体类型标签构成的组合,这样将对实体边界的标注任务和对实体类型的标注任务,转换成将每个字符分类到哪种实体边界位置标签的分类任务,这样能够极大提升实体识别效率。
在一些实施例中,通过上述步骤305提取到查询文本的全连接语义特征之后,可以将该查询文本的全连接语义特征输入到实体识别模型的CRF层中,由于每个字符都可能对应于实体识别类别表中的一种候选边界位置标签,不同字符对应于不同候选边界位置标签时又会组成不同的候选路径,换言之,每个字符在每种可能情况下的候选边界位置标签都能够组成一条可能的序列标注的候选路径,在CRF层中则会对每种可能的候选路径进行打分,以挑选出路径分数最高的候选路径,路径分数最高的候选路径中每个字符的候选边界位置标签即为最终输出的实体边界位置标签。
图5是本申请实施例提供的一种预测实体边界位置标签的流程图,如图5所示,服务器可以通过下述步骤3061-3063来预测每个字符的实体边界位置标签:
3061、服务器获取该多个字符所对应的多个候选边界位置标签构成的多条候选路径。
在一些实施例中,针对查询文本中的每个字符,都可能会具有所有的候选边界位置标签,候选边界位置标签是指实体识别类别表中的任一种标签ID,而不同字符对应的不同候选边界位置标签经过组合又能够构成不同的候选路径,比如,针对查询文本为“XY产品名使用方法”,以表3所示的实体识别类别表为例,查询文本中的每个字符都有7种可能的候选边界位置标签,针对所有字符都对这7种可能的候选边界位置标签进行排列组合,即可得到所有的多条候选路径,比如,假设查询文本为“XY产品名使用方法”,那么9个字符针对这7种候选边界位置标签进行排列组合,共计能够获取到79条候选路径。
在一个示例性实施例中,对查询文本包括的多个字符来说,使用各个字符的候选边界位置标签在实体识别类别表中具有的标签ID构成的标签ID序列来表征一条候选路径。
3062、服务器通过该CRF层,对该多条候选路径分别进行打分,得到该多条候选路径各自的路径分数。
其中,该路径分数表征对应候选路径所包含的候选边界位置标签属于该实体边界位置标签的可能性。
在一些实施例中,对每条候选路径,CRF层都会基于CRF算法来获取在已知多个字符的情况下,这多个字符各自具有当前的候选路径所决定的多个候选边界位置标签的条件概率,这一条件概率即代表了当前的候选路径的路径分数,上述条件概率还表征了在所有的候选路径中当前的候选路径与上述多个字符的匹配程度,在条件概率越高时,代表当前的候选路径所决定的多个候选边界位置标签与对应的多个字符之间的匹配程度越高,反之,在条件概率越低时,代表当前的候选路径所决定的多个候选边界位置标签与对应的多个字符之间的匹配程度越低。
3063、服务器将路径分数最高的候选路径所包含的多个候选边界位置标签确定为该多个字符各自的实体边界位置标签。
在一些实施例中,从上述步骤3061中确定了所有可能的候选路径,从上述步骤3062中确定了每种候选路径的路径分数,接着,获取路径分数最高的候选路径,将路径分数最高的候选路径所包含的每个候选边界位置标签确定为对应字符的实体边界位置标签。可选地,还可以按照路径分数从大到小的顺序,对各条候选路径进行排序,将排序位于首位的候选路径即路径分数最高的候选路径其所所包含的每个候选边界位置标签确定为对应字符的实体边界位置标签。
在一个示例性场景中,如图4所示,将第一全连接层420输出的全连接语义特征即向量Eout输入到CRF层430中,通过CRF层430来预测得到路径分数最高的候选路径,并输出候选路径对应的标签ID序列,根据CRF层430输出的标签ID序列,能够确定出来这一标签ID序列所唯一指示的候选路径中每个字符的实体边界位置标签。
假设针对查询文本“XY产品名使用方法”,CRF层430输出的标签ID序列为{1,3,4,5,6,0,0,0,0},那么根据实体识别类别表如表3所示的映射关系,可知这条候选路径表征的实体边界位置标签依次为“B-品牌词、E-品牌词、B-产品词、I-产品词、E-产品词、O、O、O、O”,因此,最终候选路径对每个字符的实体边界位置标签的实体标注结果如下表4所示。
表4
字符 | X | Y | 产 | 品 | 名 | 使 | 用 | 方 | 法 |
标签 | B-品牌词 | E-品牌词 | B-产品词 | I-产品词 | E-产品词 | O | O | O | O |
ID | 1 | 3 | 4 | 5 | 6 | 0 | 0 | 0 | 0 |
需要说明的是,上述基于CRF层来对候选路径进行打分的实体识别BERT模型,在训练阶段,可以基于CRF层的损失函数来更新整个实体识别BERT模型的模型参数,CRF层的损失函数是指采用CRF算法中的当前转移状态矩阵在正确路径(即对样本Query标注的参考路径)的路径分数与所有路径分数之和的负对数似然。
在上述步骤3061-3063中,提供了实体识别BERT模型中利用CRF层来预测每个字符的实体边界位置标签的一种可能实施方式,通过CRF层来对候选路径进行整体打分,而非逐个字符进行预测,能够约束不同字符的实体边界位置标签之间的先后顺序,这样能够提升对查询文本中每个字符的实体边界位置标签的预测准确度。
在另一些实施例中,实体识别BERT模型中的CRF层可以被替换成一个指数归一化即Softmax层,在这种情况下,将上述步骤305提取到的全连接语义特征输入到Softmax层中,通过Softmax层来对每个字符都计算一个该字符相对于实体识别类别表中的每个候选边界位置标签的匹配概率,并将每个字符的实体边界位置标签都设置为匹配概率最高的候选边界位置标签,这样能够简化预测每个字符的实体边界位置标签的计算量,节约服务器的处理资源。
307、服务器基于该多个字符各自的实体边界位置标签,从该多个字符中划分得到该查询文本包含的至少一个实体对象。
在一些实施例中,服务器可以基于该多个字符各自的实体边界位置标签,确定该至少一个实体对象各自的起始字符和结束字符,由于实体边界位置标签不仅能够标识出来实体边界还能够标识出来实体类型,因此,对于查询文本中所包含的每个实体对象,服务器都能够根据实体边界位置标签,找到该实体对象的起始字符和结束字符。接着,服务器基于该至少一个实体对象各自的起始字符和结束字符,从该多个字符中划分得到该至少一个实体对象,即,对每个实体对象,服务器都将从该实体对象的起始字符开始到该实体对象的结束字符终止之间的各个字符确定为该实体对象。
示意性地,针对查询文本“XY产品名使用方法”,在获取到如上表4的所示的每个字符的实体边界位置标签之后,由于字符“使”、“用”、“方”、“法”的标注结果均为O即非实体,因此“使用方法”不是查询文本中的实体对象。进一步的,针对“XY产品名”进行实体分割,“X”的标注结果为“B-品牌词”,即代表字符“X”被识别为实体类型“品牌词”的“开始字符”,“Y”的标注结果为“E-品牌词”,代表字符“Y”被识别为实体类型“品牌词”的“结束字符”,因此可以分割得到查询文本中的第1个实体对象“XY”,且实体对象“XY”实体类型为“品牌词”;同理,“产”的标注结果为“B-产品词”,即代表字符“产”被识别为实体类型“产品词”的“开始字符”,“品”的标注结果为“I-产品词”,代表字符“品”被识别为实体类型“产品词”的“中间字符”,“名”的标注结果为“E-产品词”,代表字符“名”被识别为实体类型“产品词”的“结束字符”,因此可以分割得到查询文本中的第2个实体对象“产品名”,且实体对象“产品名”实体类型为“产品词”。最终,可以得到查询文本中所包含的2个实体对象“XY”和“产品名”。
在上述步骤305-307中,提供了基于该查询文本的语义特征,对该查询文本进行实体识别,得到该至少一个实体对象的一种可能实施方式,即,通过一个整体的实体识别模型,利用第一编码层来提取查询文本的语义特征,并将查询文本的语义特征输入到级联的第一全连接层和CRF层中,以此对查询文本进行序列标注,输出对查询文本中每个字符的实体边界位置标签,从而能够从查询文本中分割得到每个实体对象,这样能够通过训练完毕的实体识别模型来自动针对任意长尾Query自动识别出来长尾Query中所包含的实体对象,有利于后续根据实体对象来改写得到实体Query,从而提升后续类别预测的准确度。
在上述步骤302-307中,还提供了对搜索请求携带的查询文本进行实体识别,得到该查询文本包含的至少一个实体对象的一种可能实施方式,即,在本申请实施例中,是以实体识别模型和类别预测模型是不同的模型为例进行说明的,在下一个实施例中,将详细介绍实体识别模型和类别预测模型共享编码模块的处理逻辑,本申请实施例对此不进行具体限定。
308、服务器基于该至少一个实体对象,获取该查询文本所对应的至少一个实体查询文本。
其中,该实体查询文本由一个或多个实体对象组合形成。
在一些实施例中,基于上述步骤307所识别出来的查询文本的实体对象,还可以进行Query改写,从而能够将原本形式复杂多样、特征难以对齐的查询文本,切割掉一些无关的非实体字符,进而改写成规整且易分类的实体查询文本即实体Query,在后面的实施例中,为简便起见,将“实体查询文本”简写为“实体Query”,对应的,将“查询文本”简写为“原始Query”。
通常,实体Query是由上述步骤307识别到的一个或多个实体对象所组合形成的组合词或组合短语,这样在实体Query上进行类别预测时的准确率相较于在原始Query上进行类别预测的准确率会得到大大提升。
在一些实施例中,在基于至少一个实体对象,对原始Query即查询文本进行改写,以得到至少一个实体Query即实体查询文本的过程中,服务器可以先确定每个实体对象的实体类型,进而穷举所有不同实体类型下的实体对象所能够形成的排列组合,每一种排列组合都构成一个实体Query。例如,假设识别到了2个实体类型为品牌词的实体对象,以及3个实体类型为产品词的实体对象,这时将每个品牌词下的实体对象都分别与3个不同产品词下的实体对象进行组合,上述2个品牌词和3个产品词一共能够形成6种组合方式,即可基于上述5个实体对象(包括2个品牌词和3个产品词),获取到6个实体Query。
在一个示例中,原始Query为“XY产品名使用方法”,通过上述步骤307识别到了1个品牌词“XY”和1个产品词“产品名”一共2个实体对象,2个不同实体类型的实体对象只能形成一种组合方式即“XY产品名”,因此通过2个实体对象“XY”和“产品名”,能够获取到原始Query对应的一个实体Query“XY产品名”。
在另一个示例中,原始Query为“XY产品1和产品2如何区别”,通过上述步骤307识别到了1个品牌词“XY”以及2个产品词“产品1”和“产品2”一共3个实体对象,将品牌词“XY”和产品词“产品1”组合形成一个实体Query“XY产品1”,将品牌词“XY”和产品词“产品2”组合形成另一个实体Query“XY产品2”,最终能够获取到原始Query对应的两个实体Query“XY产品1”和“XY产品2”。
图6是本申请实施例提供的一种Query改写的原理性流程图,如图6所示,针对基于实体识别模型的实体标注结果从查询文本中所分割得到的每个实体对象,如分割得到的每个品牌词601和每个产品词602,都可以将任意不同实体类型的实体对象组合形成一个新的实体Query 603,这样能够实现基于实体对象对原始Query进行改写后得到的各个实体Query 603,进而,将改写得到的各个实体Query 603输入到类别预测模型中进行类别预测。
在本步骤308中,通过基于实体对象进行组合来进行Query改写,能够将原本构造复杂、形式多样的长尾Query改写成为规整的、易于分类的实体Query,进而仅在实体Query即实体查询文本上进行类别预测,而无需在原始Query即查询文本上进行类别预测,这样能够极大提升类别预测任务的召回率和准确率。
309、服务器对该至少一个实体查询文本分别进行类别预测,得到该至少一个实体查询文本各自所关联的候选类别。
在一些实施例中,服务器在上述步骤308所获取到的至少一个实体Query的基础上进行类别预测,比如,对每个实体Query都单独进行类别预测,得到每个实体Query所关联的候选类别。
在一些实施例中,对每个实体Query进行类别预测时,可以先提取到实体Query的全局实体语义特征,再对该全局实体语义特征进行全连接处理,提取到实体Query的全连接实体语义特征,进而将该全连接实体语义特征进行非线性映射,得到实体Query属于每种叶子类别的预测得分,进而,将预测得分最大的叶子类别确定为当前实体Query所关联的候选类别。
下面,将以该至少一个实体Query中的任一实体Query为例,对单个实体Query的类别预测流程进行说明,图7是本申请实施例提供的一种实体Query的类别预测流程图,如图7所示,服务器通过下述步骤3091-3093来实现单个实体Query的类别预测:
3091、对每个实体Query,服务器提取该实体Query的字符特征。
在一些实施例中,对改写所得的每个实体Query,都能够通过与上述步骤302-303同理的方式,提取到该实体Query的字符特征。即,对该实体Query进行分词处理,得到该实体Query包含的多个字符,进而对该实体Query包含的多个字符进行特征提取,得到该实体Query的字符特征。
在另一些实施例中,由于实体Query都是从原始Query中所包含的字符进行组合得到的,因此实体Query不会出现原始Query中没有出现过的新字符,因此在通过步骤303提取到原始Query中各个字符的字符特征之后,可以缓存原始Query中各个字符的字符特征,接着,在本步骤3091中,只需要从缓存的原始Query中各个字符的字符特征中,查询到属于当前的实体Query的每个字符的字符特征即可,这样能够复用步骤303提取过的字符特征,避免对实体Query再次进行分词处理和字符特征提取,极大节约服务器的处理资源。
在一个示例中,针对改写所得的实体Query“XY产品名”,分词得到字符特征{“X”,“Y”,“产”,“品”,“名”},接着,将字符序列中的每个字符通过查找字符表,得到每个字符对应的字符ID,再从特征库中根据字符ID查找到每个字符对应的字符特征,例如上述5个字符的字符特征分别为:T1、T2、T3、T4、T5。
3092、服务器基于该实体Query的字符特征,获取该实体Query的全局实体语义特征。
其中,该全局实体语义特征表征该实体Query中各字符在类别预测任务上的全局语义。
在一些实施例中,服务器可以通过一个类别预测模型来基于实体Query的字符特征来提取实体Query的全局实体语义特征。可选地,该类别预测模型用于预测实体Query所关联的候选类别,其中,类别预测模型所预测的候选类别是指实体Query在预设类别表中所具有的最细粒度的叶子类别。
在一些实施例中,类别预测模型中包括多个第二编码层和多个第二全连接层,其中,第二编码层用于对输入信号进行编码以提取到对应的全局语义特征,第二全连接层用于对输入信号进行全连接处理以预测出来对应的候选类别。
在一些实施例中,服务器将上述步骤3091提取到的实体Query的字符特征输入到类别预测模型的多个第二编码层中,通过该多个第二编码层对该实体Query的字符特征进行编码,上述多个第二编码层之间是级联的,即,每个第二编码层的输入信号都是上个第二编码层的输出信号,且每个第二编码层的输出信号都会输入到下一个第二编码层中,因此,在通过多个第二编码层的编码之后,由最后一个第二编码层输出该实体Query的全局实体语义特征。
示意性地,以上述类别预测模型为类别预测BERT模型为例进行说明,BERT模型包括的多个第二编码层都是双向编码层,与上述步骤304中介绍过的实体识别BERT模型的双向编码层同理,但通常具有不同的模型参数,这里不做赘述。在类别预测BERT模型的基础上,服务器可以通过下述步骤A1-A2来提取实体Query的全局实体语义特征:
A1、服务器将目标分类符的字符特征和该实体Query的字符特征输入到类别预测模型的多个第二编码层中。
在一些实施例中,在提取到实体Query中多个字符的字符特征之后,将目标分类符[CLS]的字符特征、上述多个字符的字符特征、分隔符[SEP]的字符特征以及填充符[PAD]的字符特征,依照上述次序拼接得到一个实体字符特征序列,将该实体字符特征序列输入到类别预测BERT模型中的多个第二编码层。
图8是本申请实施例提供的一种类别预测BERT模型的原理性示意图,如图8所示,类别预测BERT模型800中,包括多个第二编码层810和多个第二全连接层820。假设实体Query为“XY产品名”,提取到的实体Query中各个字符的字符特征分别为:T1、T2、T3、T4、T5,接着,再将目标分类符[CLS]的字符特征放置于T1之前(即将[CLS]的字符特征置于首位),将分隔符[SEP]的字符特征放置于T5之后(即将[SEP]的字符特征置于最后一个字符的字符特征之后),最后判断当前的实体字符特征序列的序列长度是否到达第二预设长度,若未到达第二预设长度,将使用填充符[PAD]的字符特征对实体字符特征序列进行填充,直到将实体字符特征序列的长度填充至到达第二预设长度,其中,第二预设长度为任一大于或等于1的整数,例如第二预设长度为30或其他数值,可由技术人员进行指定。将上述第二预设长度的实体字符特征序列{[CLS],T1,T2,T3,T4,T5,[SEP],[PAD],[PAD],…,[PAD]}输入到多个第二编码层810中。
A2、服务器通过该多个第二编码层对该目标分类符的字符特征和该实体Query的字符特征进行编码,输出该目标分类符对应的该全局实体语义特征。
在一些实施例中,服务器通过该多个第二编码层,对上述实体字符特征序列进行正向编码和反向编码,将最后一个第二编码层中输出的该目标分类符[CLS]对应的隐向量获取为该实体Query的全局实体语义特征,目标分类符[CLS]对应的隐向量是根据实体Query中各个字符的字符特征这一长序列信息综合编码所得的,即,目标分类符[CLS]对应的隐向量是一个用于表征全局化语义信息的隐层向量,从而能够表征当前的实体Query的全局实体语义特征。其中,每个第二编码层的双向编码方式,与上述步骤304中第一编码层的双向编码方式同理,这里不做赘述。
仍以图8为例进行说明,将上述步骤A1中涉及的实体字符特征序列{[CLS],T1,T2,T3,T4,T5,[SEP],[PAD],[PAD],…,[PAD]}输入到多个第二编码层810之后,通过该多个第二编码层810对上述实体字符特征序列进行正向编码和反向编码,由最后一个第二编码层810输出一个隐向量序列{E[CLS],E1,E2,E3,E4,E5,E[SEP],E[PAD],E[PAD],…,E[PAD]},将上述隐向量序列中与目标分类符[CLS]对应的隐向量E[CLS]获取为该实体Query的全局实体语义特征,隐向量E[CLS]表征整个实体Query的全局语义,可以设定维度为768,同时实体Query中每个字符的隐向量E1~E5的维度也可以设定为768。
3093、服务器基于该全局实体语义特征,预测得到该实体Query所关联的候选类别。
在一些实施例中,服务器可以通过上述类别预测模型,来基于该全局实体语义特征来预测该实体Query的候选类别。可选地,将上述步骤3092提取到的全局实体语义特征输入到类别预测模型包括的多个第二全连接层中,通过该多个第二全连接层来提取到该实体Query的全连接实体语义特征,进而再通过一个激活层来对该全连接实体语义特征进行非线性映射,得到将该实体Query映射至每种叶子类别的预测得分,进而将预测得分最大的叶子类别确定为当前实体Query的候选类别。
示意性地,以上述类别预测模型为类别预测BERT模型为例进行说明,类别预测BERT模型的每个第二全连接层后都串接了一个激活层,在此基础上,服务器可以通过下述步骤B1-B3来提取实体Query的候选类别:
B1、服务器将该全局实体语义特征输入到该类别预测模型的多个第二全连接层中,通过该多个第二全连接层对该全局实体语义特征进行全连接处理,得到该实体Query的全连接实体语义特征。
在一些实施例中,服务器将该全局实体语义特征输入到类别预测BERT模型的多个第二全连接层中,通过第一个第二全连接层对该全局实体语义特征进行全连接处理,得到一个全连接特征,进而通过与第一个第二全连接串接的激活层来对该全连接特征进行激活处理,得到全连接激活特征,进而将该全连接激活特征输入到第二个第二全连接层中,以此类推,直到最后一个第二全连接层输出该实体Query的全连接实体语义特征。
在一个示例性场景中,类别预测BERT模型包括两个第二全连接层,每个第二全连接层后都串接了一个激活层,其中,第一个第二全连接层的权值矩阵可表示为W21,第一个第二全连接层后可串接一个激活函数为tanh的激活层,第二个第二全连接层的权值矩阵可表示为W22,第二个第二全连接层后可串接一个激活函数为sigmoid的激活层。
在此架构的类别预测BERT模型的基础上,如图8所示,将最后一个第二编码层810输出的全局实体语义特征E[CLS]输入到第一个第二全连接层820中,通过权值矩阵W21来对全局实体语义特征E[CLS]进行全连接处理,得到一个全连接特征,进而通过一个tanh激活层来对该全连接特征进行激活处理,得到一个全连接激活特征,将该全连接激活特征输入到第二个第二全连接层820中,通过权值矩阵W22来对全连接激活特征进行全连接处理,得到该实体Query的全连接实体语义特征,接着,在下述步骤B2中,将该全连接实体语义特征输入到一个sigmoid激活层中对该全连接实体语义特征进行非线性映射,以得到该实体Query属于每个叶子类别的预测得分。在一个示例中,W21的维度为[768,768],在预设类别表中最细粒度的叶子类别的类别数量等于5363的情况下,W22的维度可以设置为[768,5363]。
B2、服务器对该全连接实体语义特征进行非线性映射,得到该实体Query属于多个叶子类别各自的预测得分。
在一些实施例中,针对上述步骤B1中最后一个第二全连接层所输出的全连接实体语义特征,将该全连接实体语义特征输入到一个激活层中,通过该激活层中的sigmoid激活函数来对该全连接实体语义特征进行非线性映射,以输出将该实体Query映射至每种叶子类别的预测得分。
在另一些实施例中,类别预测BERT模型的多个第二全连接层之后还可以串接一个指数归一化层来获取每个叶子类别的预测得分,本申请实施例对预测得分的获取方式不进行具体限定。
需要说明的是,叶子类别可以是指预设类别表中最细粒度的类别标签,例如,假设在划分了4个层级的情况下,完整标签应为“一级标签_二级标签_三级标签_四级标签”,这时的“四级标签”就是最细粒度的叶子类别,例如,“美妆护肤_面部洗护_面部精华_精华液/肌底液”这一多层级多标签的分类结果中,“精华液/肌底液”就是最细粒度的叶子类别。
B3、服务器将预测得分最大的叶子类别确定为该实体Query所关联的候选类别。
在一些实施例中,由于对实体Query会计算与每个叶子类别之间的预测得分,因此可以选择预测得分最大的叶子类别作为当前实体Query所关联的候选类别。可选地,在得到每个叶子类别的预测得分后,还可以选择预测得分大于指定阈值的叶子类别作为对当前实体Query的预测结果,进一步的,如果预测得分大于指定阈值的叶子类别有两个或两个以上,则选取预测得分最高的叶子类别作为当前实体Query的候选类别,或者,从预测得分大于指定阈值的两个或两个以上的叶子类别中随机选择一个作为当前实体Query的候选类别,或者,还可以保留所有预测得分大于指定阈值的叶子类别作为当前实体Query的候选类别,本申请实施例对候选类别的选取方式不进行具体限定。其中,指定阈值可以是任一大于或等于0的数值,例如指定阈值可以是0.5。
示意性地,如图8所示,针对实体Query“XY产品名”,最终类别预测BERT模型所输出的预测得分最大的叶子类别为“精华液/肌底液”,换言之,实体Query“XY产品名”所关联的候选类别为“精华液/肌底液”。
在上述过程中,相当于基于最细粒度的叶子类别来构建多层级多标签的类别预测BERT模型,通过控制最后一个第二全连接层输出的全连接实体语义特征的维度等于预设类别表中最细粒度的叶子类别的类别数量,使得在对全连接实体语义特征进行非线性映射即激活处理后,激活处理后的向量中的每个维度都与一个叶子类别是一一对应的,因此激活处理后的向量中每个维度的取值即代表了实体Query属于对应叶子类别的预测得分,从而能够筛选出来实体Query所属的候选类别。
需要说明的是,在训练上述类别预测BERT模型的过程中,可以基于对同一样本实体Query预测出来的候选类别与标注得到的真实类别之间的交叉熵损失作为损失函数,通过上述损失函数来更新整个类别预测BERT模型中第二编码层和第二全连接层(可视为是一个分类层)的模型参数。
在上述步骤B1-B3中,示出了服务器如何基于该全局实体语义特征,预测得到该实体Query所关联的候选类别,通过多个第二全连接层和激活层的非线性映射,能够一步预测到该实体Query所属的叶子类别(即最细粒度的类别标签),这样只需要在预设类别表中依次查询到叶子类别在每一层级所关联的上级标签,即可输出一个多层级多标签的分类结果,而无需向HMCN模型那样针对每个层级单独进行预测,能够极大提升类别预测的准确率。
在另一些实施例中,在提取到该全局实体语义特征之后,还可以串接一个HMCN模型来预测该实体Query的多层级多标签的分类结果,由于HMCN模型对规整的实体Query的识别准确率较高,而通过实体识别和Query改写所得的实体Query本身就是比较规整的格式,因此也能够取得较好的识别准确度。
在上述步骤3091-3093中,示出了至少一个实体Query中单个实体Query的类别预测方式,当通过Query改写得到了多个实体Query时,对每个实体Query都执行上述步骤3091-3093即可得到当前的实体Query所关联的候选类别,重复执行上述操作直到遍历得到了所有实体Query所关联的候选类别之后,进入下述步骤310。
310、服务器对该至少一个实体查询文本各自所关联的候选类别进行去重,得到该查询文本所关联的目标类别。
在一些实施例中,服务器在上述步骤309中,对每个实体Query都能够预测出来一个候选类别,但不同实体Query的候选类别都可能会重复,这时,需要在本步骤310中,对上述步骤309中针对所有实体Query分别进行类别预测所得的所有候选类别进行去重,在对所有实体Query所属的候选类别去重后,即可得到原始Query所属的目标类别。
在一个示例中,原始Query为“XY产品1和产品2如何区别”,在进行实体识别后再改写得到了2个实体Query“XY产品1”和“XY产品2”,但有可能针对实体Query“XY产品1”的类别预测结果与针对实体Query“XY产品2”的类别预测结果相同,比如,两者预测出来的候选类别均为“精华液/肌底液”,这时对两个实体Query的候选类别进行去重,即可得到原始Query所属的目标类别“精华液/肌底液”。
在另一个示例中,原始Query为“XY产品1和产品2如何区别”,在进行实体识别后再改写得到了2个实体Query“XY产品1”和“XY产品2”,假设针对实体Query“XY产品1”的类别预测结果与针对实体Query“XY产品2”的类别预测结果不同,比如,实体Query“XY产品1”所属的候选类别为“精华液/肌底液”,实体Query“XY产品2”所属的候选类别为“眼霜”,这时对两个实体Query的候选类别进行去重时不会去除任何候选类别,因此最终得到原始Query所属的目标类别为“精华液/肌底液”和“眼霜”。
311、服务器从预设类别表中,查询得到该目标类别所关联的一个或多个层级类别。
其中,该层级类别是指在不同层级下分别与该目标类别具有关联关系的上级或下级类别。
在一些实施例中,在上述步骤309中选择预设类别表中的叶子类别作为每个实体Query的候选类别的情况下,由于该预设类别表中记录了不同层级的类别之间的关联关系,比如预设类别表中会记录每个叶子类别所属的上级类别,并记录上级类别所属的更上级类别,以此类推直到找到最上级类别(可称为根类别),因此,对上述步骤310去重后的目标类别所包含的每个候选类别,都可以回溯到候选类别(即叶子类别)以及候选类别所属的每个上级类别、更上级类别直到回溯到最上级类别即根类别,汇总所有候选类别在不同层级中的关联各个类别,即可得到对整个查询文本即原始Query的目标类别所关联的一个或多个层级类别,换言之,即可得到原始Query的多层级多标签分类结果。
在一个示例中,针对查询文本“XY产品名使用方法”,最终去重得到的目标类别仅包含一个候选类别即叶子类别“精华液/肌底液”,在预设类别表中依次查询到叶子类别“精华液/肌底液”所属的上级类别“面部精华”,进一步查询到上级类别“面部精华”所属的更上级类别“面部洗护”,进一步查询到更上级类别“面部洗护”所属的根类别“美妆护肤”,进而汇总各个不同层级的关联类别,得到最终的多层级多标签的分类结果“美妆护肤_面部洗护_面部精华_精华液/肌底液”。
图9是本申请实施例提供的一种搜索请求的处理方法的原理性流程图,如图9所示,针对从搜索请求中解析得到查询文本“XY产品名使用方法”,通过分词得到字符序列{“X”,“Y”,“产”,“品”,“名”,“使”,“用”,“方”,“法”}后,构建字符特征序列{[CLS],T1,T2,T3,T4,T5,T6,T7,T8,T9,[SEP],[PAD],[PAD],…,[PAD]}输入到实体识别模型910中,通过实体识别模型910对查询文本进行实体识别,输出对查询文本进行实体序列标注所得的候选路径表征为“B-品牌词、E-品牌词、B-产品词、I-产品词、E-产品词、O、O、O、O”,进而在Query改写模块920中基于查询文本中分割得到的实体对象进行Query改写,得到重组后的一个或多个实体Query,将Query改写模块920输出的一个或多个实体Query输入到类别预测模型930中,每个实体Query都单独调用一次类别预测模块930来对单个实体Query独立预测其候选类别,综合对所有实体Query预测的候选类别进行去重,即可得到最终对查询文本预测到的目标类别(目标类别是预设类别表中的一个或多个叶子类别),接着在预设类别表中回溯到每个叶子类别所关联的各个层级的上级类别、更上级类别及根类别,以输出对查询文本的多层级多标签的分类结果。
上述所有可选技术方案,能够采用任意结合形成本公开的可选实施例,在此不再一一赘述。
本申请实施例提供的方法,通过先针对原始Query进行实体识别,以识别出原始Query中的实体对象,再在实体对象的基础上对原始Query改写得到一个或多个实体Query,以剔除掉一些原始Query中的非实体字符,这样只需要对改写得到的每个实体Query分别进行类别预测,再对类别预测所得的各个候选类别进行去重,即可快速高效地识别到原始Query所属的目标类别,由于在进行类别预测时已经过滤掉了原始Query中的非实体字符,而在实体对象的基础上改写到的实体Query又能避免漏掉不同实体对象组合形成的实体Query,极大改善了长尾Query漏召回的现象,从而极大提升了针对长尾Query进行类别预测的准确率和召回率。
在上一实施例中,详细介绍了利用一个单独的实体识别模型和一个单独的类别预测模型来对查询文本进行实体识别和类别预测的过程,能够实现实体识别模型和类别预测模型的解耦,在一些实施例中,由于实体识别模型和类别预测模型都需要对输入的Query(查询文本和实体查询文本)进行编码,因此在训练阶段,可以使实体识别模型和类别预测模型共享底层的编码模块,此时,将底层共享的编码模块称为共享编码模型,下面将通过一个实施例来对基于共享编码模型的处理流程进行详细说明。
图10是本申请实施例提供的一种搜索请求的处理方法的流程图,参见图10,该实施例由计算机设备执行,以计算机设备为服务器为例进行说明,该实施例包括下述步骤:
1001、服务器接收搜索请求,解析该搜索请求得到查询文本。
上述步骤1001与上一实施例的步骤301同理,这里不做赘述。
1002、服务器对该查询文本进行分词处理,得到该查询文本包含的多个字符。
上述步骤1002与上一实施例的步骤302同理,这里不做赘述。
1003、服务器对该多个字符进行特征提取,得到该查询文本的字符特征。
上述步骤1003与上一实施例的步骤303同理,这里不做赘述。
1004、服务器将分类指示符的字符特征和该查询文本的字符特征输入到共享编码模型的多个第三编码层中,通过该多个第三编码层对该分类指示符的字符特征和该查询文本的字符特征进行编码,输出该分类指示符对应的该查询文本的全局类别特征以及该查询文本的语义特征。
其中,该共享编码模型用于针对查询文本编码得到可供类别预测的全局类别特征以及可供实体识别的语义特征,该全局类别特征表征该查询文本中各字符在类别预测任务上的全局语义。
换言之,上述共享编码模型既用于对查询文本提取可供进行类别预测的全局类别特征,又用于对查询文本提取可供进行实体识别的语义特征。相当于共享编码模型实现了上一实施例中实体识别模型和类别预测模型的底层共享的编码模块。
在一些实施例中,该共享编码模型中包括多个第三编码层,第三编码层用于对输入信号进行编码以提取得到对应的全局类别特征和对应的语义特征。以共享编码模型为共享BERT编码模型为例进行说明,BERT模型包括的每个第三编码层都是双向编码层,双向编码层用于对输入信号进行正向编码和反向编码,具体双向编码方式与上一实施例中步骤304的描述同理,这里不做赘述。
在一些实施例中,在提取到该查询文本中多个字符的字符特征之后,将分类指示符[CLS]的字符特征、上述多个字符的字符特征、分隔符[SEP]的字符特征以及填充符[PAD]的字符特征,依照上述次序拼接得到一个目标字符特征序列,将该目标字符特征序列输入到共享BERT编码模型之后,通过共享BERT编码模型的多个第三编码层,对上述目标字符特征序列进行正向编码和反向编码,将最后一个第三编码层中输出的该分类指示符[CLS]对应的隐向量作为全局类别特征,将上述多个字符对应的语义特征获取为该查询文本的语义特征,其中,上述多个字符的语义特征分别与上述多个字符的字符特征相对应。
图11是本申请实施例提供的一种共享BERT编码模型的原理性示意图,如图11所示,共享BERT编码模型1110中包括多个第三编码层1111,假设查询文本为“XY产品名使用方法”,提取到的查询文本中各个字符的字符特征分别为:T1、T2、T3、T4、T5、T6、T7、T8、T9,接着,再将分类指示符[CLS]的字符特征放置于T1之前(即将[CLS]的字符特征置于首位),将分隔符[SEP]的字符特征放置于T9之后(即将[SEP]的字符特征置于最后一个字符的字符特征之后),最后判断当前目标字符特征序列的序列长度是否到达第三预设长度,若未到达第三预设长度,将使用填充符[PAD]的字符特征对目标字符特征序列进行填充,直到将目标字符特征序列的长度填充至到达第三预设长度,其中,第三预设长度为任一大于或等于1的整数,例如第三预设长度为30或其他数值,可由技术人员进行指定。将上述第三预设长度的目标字符特征序列{[CLS],T1,T2,T3,T4,T5,T6,T7,T8,T9,[SEP],[PAD],[PAD],…,[PAD]}输入到多个第三编码层1111中,通过该多个第三编码层1111对上述目标字符特征序列进行正向编码和反向编码,由最后一个第三编码层1111输出一个隐向量序列{E[CLS],E1,E2,E3,E4,E5,E6,E7,E8,E9,E[SEP],E[PAD],E[PAD],…,E[PAD]},将上述隐向量序列中与查询文本中多个字符对应的语义特征{E1,E2,E3,E4,E5,E6,E7,E8,E9}获取为该查询文本的语义特征,同时,将上述隐向量序列中与分类指示符[CLS]对应的隐向量E[CLS]获取为该查询文本的全局类别特征,其中,隐向量E[CLS]表征整个查询文本的全局语义,可以设定维度为768,同时每个字符的语义特征E1~E9的维度也可以设定为768。
在上述步骤1004中,示出了将搜索请求的查询文本输入到共享编码模型中,通过该共享编码模型提取该查询文本的全局类别特征的一种可能实施方式,即,共享编码模型是实体识别模型和类别预测模型之间底层共享的编码模块,此时共享编码模型不但会输出该查询文本的全局类别特征,还会输出该查询文本的语义特征,进一步的,将查询文本的全局类别特征输入到下述步骤1005中开启对查询文本进行类别预测,同时,利用查询文本的语义特征还能对查询文本进行实体识别。
在一些实施例中,针对上述步骤1004中共享编码模型所输出的查询文本的语义特征,服务器可以基于该查询文本的语义特征,对该查询文本进行实体识别,得到该查询文本包含的至少一个实体对象。
在一些实施例中,在实体识别的过程中,服务器可以对该查询文本的语义特征进行全连接处理,得到该查询文本的全连接识别特征;基于该全连接识别特征,预测得到该查询文本中多个字符各自的实体边界位置标签;基于该多个字符各自的实体边界位置标签,从该多个字符中划分得到该至少一个实体对象。上述实体识别过程与上一实施例中步骤305-307中的实体识别方式同理,这里不做赘述。
仍以图11为例继续说明,将共享编码模型1110中输出的隐向量序列{E[CLS],E1,E2,E3,E4,E5,E6,E7,E8,E9,E[SEP],E[PAD],E[PAD],…,E[PAD]},剔除掉分类指示符[CLS]的隐向量,将剩余的隐向量序列{E1,E2,E3,E4,E5,E6,E7,E8,E9,E[SEP],E[PAD],E[PAD],…,E[PAD]}中的各个隐向量进行拼接,得到拼接隐向量即拼接特征,将上述拼接隐向量输入到实体识别模型1120中的第一全连接层1121中进行全连接处理,即可得到查询文本的全连接识别特征,进而,将该查询文本的全连接识别特征输入到CRF层1122中对每条候选路径进行打分,以输出路径分数最高的候选路径的标签ID序列,并基于这一标签ID序列能够确定出来每个字符的实体边界位置标签,从而根据每个字符的实体边界位置标签,能够从查询文本中分割出来一个或多个实体对象。
1005、服务器对该全局类别特征进行全连接处理,得到该查询文本的全连接类别特征。
换言之,服务器将该全局类别特征输入到类别预测模型的多个第二全连接层中,通过该多个第二全连接层对该全局类别特征进行全连接处理,得到该查询文本的全连接类别特征。上述步骤1005与上一实施例的步骤3093包含的子步骤B1同理,这里不做赘述。
1006、服务器对该全连接类别特征进行非线性映射,得到该查询文本属于多个叶子类别各自的预测得分。
换言之,服务器将该全连接类别特征输入到类别预测模型的激活层中进行非线性映射,得到该查询文本属于多个叶子类别各自的预测得分。上述步骤1006与上一实施例的步骤3093包含的子步骤B2同理,这里不做赘述。
1007、服务器将预测得分最大的叶子类别确定为该查询文本所关联的目标类别。
换言之,服务器将预测得分最大的叶子类别确定为该查询文本所关联的目标类别。上述步骤1007与上一实施例的步骤3093包含的子步骤B3同理,这里不做赘述。
仍以图11为例继续说明,假设类别预测模型包括两个第二全连接层,每个第二全连接层后都串接了一个激活层,其中,第一个第二全连接层的权值矩阵可表示为W21,第一个第二全连接层后可串接一个激活函数为tanh的激活层,第二个第二全连接层的权值矩阵可表示为W22,第二个第二全连接层后可串接一个激活函数为sigmoid的激活层。
在此基础上,将共享编码模型1110中最后一个第三编码层1111输出的全局类别特征E[CLS]输入到类别预测模型1130中的第一个第二全连接层1131中,通过权值矩阵W21来对全局类别特征E[CLS]进行全连接处理,得到一个全连接特征,进而通过一个tanh激活层来对该全连接特征进行激活处理,得到一个全连接激活特征,将该全连接激活特征输入到第二个第二全连接层1132中,通过权值矩阵W22来对全连接激活特征进行全连接处理,得到该查询文本的全连接类别特征,接着,将该全连接类别特征输入到一个sigmoid激活层中对该全连接类别特征进行非线性映射,以得到该查询文本属于每个叶子类别的预测得分,进而将预测得分最高的叶子类别确定为查询文本所属的目标类别。在一个示例中,W21的维度为[768,768],在预设类别表中最细粒度的叶子类别的类别数量等于5363的情况下,W22的维度可以设置为[768,5363]。
需要说明的是,本申请实施例中,由于实体识别模型、类别预测模型之间共享底层的编码模块即两者都使用共享编码模型输出的特征来进行进一步处理,因此,相当于实体识别模型和类别预测模型都通过共享编码模型来进行联合多任务学习,这样在训练阶段三个模型需要进行协同训练,可选地,三个模型可以使用一个共同的损失函数,例如,这一损失函数是类别预测模型中预测类别和真实类别的交叉熵损失以及实体识别模型中CRF的负对数似然损失之和。
1008、服务器从预设类别表中,查询得到该目标类别所关联的一个或多个层级类别。
其中,该层级类别是指在不同层级下分别与该目标类别具有关联关系的上级或下级类别。
上述步骤1008与上一实施例的步骤311同理,这里不做赘述。
上述所有可选技术方案,能够采用任意结合形成本公开的可选实施例,在此不再一一赘述。
本申请实施例提供的方法,通过训练一个共享编码模型,使得共享编码模型既能够提取用于实体识别的查询文本的语义特征,又能够提取用于类别预测的全局类别特征,这样通过共享编码模型所提取到的全局类别特征能够综合用于进行实体识别的查询文本的语义特征的在类别预测任务上的全局化的语义信息,从而在基于全局类别特征进行类别预测的过程中,由于全局类别特征具有更强的表达能力,从而也能够改善长尾Query漏召回的现象,也就极大提升了针对长尾Query进行类别预测的准确率和召回率。
以下,将结合一些商品搜索场景下的测试数据,来对本申请实施例所涉及的搜索请求的处理方法的测试效果进行说明。
由于HMCN模型针对于长尾Query存在严重的漏召回问题,如表5所示,但在商品搜索场景下,不管是用户高频搜索的头部Query,还是用户低频搜索的长尾Query,一般都是由品牌词和产品词两种实体类型的实体对象所构成的。
表5
原始Query | Query类型 | 品牌词 | 产品词 | 实体识别 | HMCN |
XY产品1 | 头部Query | XY | 产品1 | √ | √ |
XY产品1使用方法 | 长尾Query | XY | 产品1 | √ | × |
XY产品1的主要功效是什么 | 长尾Query | XY | 产品1 | √ | × |
XY产品1的作用和功效 | 长尾Query | XY | 产品1 | √ | × |
XY产品1适合什么年龄 | 长尾Query | XY | 产品1 | √ | × |
XY产品1免税店价格 | 长尾Query | XY | 产品1 | √ | × |
孕妇能用XY产品1吗 | 长尾Query | XY | 产品1 | √ | × |
干性皮肤可以用XY产品1吗 | 长尾Query | XY | 产品1 | √ | × |
为什么用XY产品1过敏 | 长尾Query | XY | 产品1 | √ | × |
可以看出来,类别预测任务由于更加关注原始Query的全局语义,因此仅在头部Query上具有较好的召回率,但对长尾Query存在严重漏召回问题;而实体识别任务由于更加关注原始Query中的实体对象,从而针对原始Query中的核心实体片段(即实体对象)学习更为敏感,因此不管针对头部Query还是长尾Query都具有良好的召回率。
在商品搜索场景下,实体识别模型的训练数据只需覆盖到常见的品牌词和产品词(即只需要覆盖对应应用场景下常见的实体对象),即可正确识别任意头部Query和/或长尾Query,而类别预测模型则需要尽可能的覆盖到全Query分布(而长尾Query是很难完全覆盖的,因此搜索频次低样本验证不足,而且人工标注成本也极高),故而要使类别预测模型覆盖到全Query分布是非常耗时耗力的,也即,难以单纯通过扩充类别预测模型的训练数据来改善长尾Query漏召回问题。
本申请实施例通过借助实体识别模型来提取查询文本中核心的实体对象,由此构造更适合于多层级多标签的类别预测任务的规整改写Query(即基于实体对象改写所得的实体Query),这样训练所得的类别预测模式具有很高的召回率和准确率,从而提升整体搜索引擎***的各类指标和研发效率。
示意性地,表6示出了应用本申请实施例基于实体识别改写的多层级多标签的类别预测方法,对原本表5所示的几种类型的原始Query进行类别预测的测试结果。
表6
原始Query | Query类型 | 改写Query | 召回结果 |
XY产品1 | 头部Query | XY产品1 | √ |
XY产品1使用方法 | 长尾Query | XY产品1 | √ |
XY产品1的主要功效是什么 | 长尾Query | XY产品1 | √ |
XY产品1的作用和功效 | 长尾Query | XY产品1 | √ |
XY产品1适合什么年龄 | 长尾Query | XY产品1 | √ |
XY产品1免税店价格 | 长尾Query | XY产品1 | √ |
孕妇能用XY产品1吗 | 长尾Query | XY产品1 | √ |
干性皮肤可以用XY产品1吗 | 长尾Query | XY产品1 | √ |
为什么用XY产品1过敏 | 长尾Query | XY产品1 | √ |
显然对比表5中HMCN模型的召回结果和本申请实施例方式的召回结果,可以发现针对长尾Query的召回率大大提升,极大改善了传统HMCN模型的长尾Query漏召回现象。
进一步的,在特定的商品搜索场景“商品_美妆护肤”上,利用传统HMCN模型和本申请的方法进行对比实验,对比实验结果如表7所示。
表7
训练方式 | 准确率 | 召回率 | F1指标 |
HMCN | 54.0% | 46.0% | 49.7% |
本申请 | 96.0% | 86.0% | 90.7%(+41.0%) |
其中,F1指标也称为F1指数,是指准确率和召回率二者的调和均值。
可以看出,在应用本申请实施例的方法之后,在全体Query的类别预测任务上,不管是准确率还是召回率都得到了显著提升,同时F1指标也得到了显著提升(增幅高达41.0%)。
图12是本申请实施例提供的一种搜索请求的处理装置的结构示意图,请参考图12,该装置包括:
实体识别模块1201,用于对搜索请求携带的查询文本进行实体识别,得到该查询文本包含的至少一个实体对象;
获取模块1202,用于基于该至少一个实体对象,获取该查询文本所对应的至少一个实体查询文本,该实体查询文本由一个或多个实体对象组合形成;
类别预测模块1203,用于对该至少一个实体查询文本分别进行类别预测,得到该至少一个实体查询文本各自所关联的候选类别;
去重模块1204,用于对该至少一个实体查询文本各自所关联的候选类别进行去重,得到该查询文本所关联的目标类别。
本申请实施例提供的装置,通过先针对原始Query进行实体识别,以识别出原始Query中的实体对象,再在实体对象的基础上对原始Query改写得到一个或多个实体Query,以剔除掉一些原始Query中的非实体字符,这样只需要对改写得到的每个实体Query分别进行类别预测,再对类别预测所得的各个候选类别进行去重,即可快速高效地识别到原始Query所属的目标类别,由于在进行类别预测时已经过滤掉了原始Query中的非实体字符,而在实体对象的基础上改写到的实体Query又能避免漏掉不同实体对象组合形成的实体Query,极大改善了长尾Query漏召回的现象,从而极大提升了针对长尾Query进行类别预测的准确率。
在一种可能实施方式中,基于图12的装置组成,该实体识别模块1201包括:
语义特征提取单元,用于对该查询文本包含的多个字符进行特征提取,得到该查询文本的语义特征;
实体识别单元,用于基于该查询文本的语义特征,对该查询文本进行实体识别,得到该至少一个实体对象。
在一种可能实施方式中,该语义特征提取单元用于:
对该查询文本进行分词处理,得到该查询文本包含的多个字符;
对该多个字符进行特征提取,得到该查询文本的字符特征;
将该查询文本的字符特征输入到实体识别模型的多个第一编码层中,通过该多个第一编码层对该查询文本的字符特征进行编码,输出该查询文本的语义特征,该实体识别模型用于对该查询文本进行实体识别。
在一种可能实施方式中,基于图12的装置组成,该实体识别单元包括:
全连接子单元,用于将该查询文本的语义特征输入到该实体识别模型的第一全连接层中,通过该第一全连接层对该查询文本的语义特征进行全连接处理,得到该查询文本的全连接语义特征;
预测子单元,用于将该全连接语义特征输入到该实体识别模型的条件随机场CRF层中,通过该CRF层预测得到该查询文本中多个字符各自的实体边界位置标签;
划分子单元,用于基于该多个字符各自的实体边界位置标签,从该多个字符中划分得到该至少一个实体对象。
在一种可能实施方式中,该预测子单元用于:
获取该多个字符所对应的多个候选边界位置标签构成的多条候选路径;
通过该CRF层,对该多条候选路径分别进行打分,得到该多条候选路径各自的路径分数,该路径分数表征对应候选路径所包含的候选边界位置标签属于该实体边界位置标签的可能性;
将路径分数最高的候选路径所包含的多个候选边界位置标签确定为该多个字符各自的实体边界位置标签。
在一种可能实施方式中,该划分子单元用于:
基于该多个字符各自的实体边界位置标签,确定该至少一个实体对象各自的起始字符和结束字符;
基于该至少一个实体对象各自的起始字符和结束字符,从该多个字符中划分得到该至少一个实体对象。
在一种可能实施方式中,基于图12的装置组成,该类别预测模块1203包括:
字符特征提取单元,用于对该至少一个实体查询文本中的任一实体查询文本,提取该实体查询文本的字符特征;
全局特征提取单元,用于基于该实体查询文本的字符特征,获取该实体查询文本的全局实体语义特征,该全局实体语义特征表征该实体查询文本中各字符在类别预测任务上的全局语义;
预测单元,用于基于该全局实体语义特征,预测得到该实体查询文本所关联的候选类别。
在一种可能实施方式中,该全局特征提取单元用于:
将目标分类符的字符特征和该实体查询文本的字符特征输入到类别预测模型的多个第二编码层中,该类别预测模型用于预测实体查询文本所关联的候选类别;
通过该多个第二编码层对该目标分类符的字符特征和该实体查询文本的字符特征进行编码,输出该目标分类符对应的该全局实体语义特征。
在一种可能实施方式中,该预测单元用于:
将该全局实体语义特征输入到该类别预测模型的多个第二全连接层中,通过该多个第二全连接层对该全局实体语义特征进行全连接处理,得到该实体查询文本的全连接实体语义特征;
对该全连接实体语义特征进行非线性映射,得到该实体查询文本属于多个叶子类别各自的预测得分;
将预测得分最大的叶子类别确定为该实体查询文本所关联的候选类别。
在一种可能实施方式中,基于图12的装置组成,该装置还包括:
查询模块,用于从预设类别表中,查询得到该目标类别所关联的一个或多个层级类别,该层级类别是指在不同层级下分别与该目标类别具有关联关系的上级或下级类别。
上述所有可选技术方案,能够采用任意结合形成本公开的可选实施例,在此不再一一赘述。
需要说明的是:上述实施例提供的搜索请求的处理装置在处理搜索请求时,仅以上述各功能模块的划分进行举例说明,实际应用中,能够根据需要而将上述功能分配由不同的功能模块完成,即将计算机设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的搜索请求的处理装置与搜索请求的处理方法实施例属于同一构思,其具体实现过程详见搜索请求的处理方法实施例,这里不再赘述。
图13是本申请实施例提供的一种搜索请求的处理装置的结构示意图,请参考图13,该装置包括:
特征提取模块1301,用于将搜索请求的查询文本输入到共享编码模型中,通过该共享编码模型提取该查询文本的全局类别特征,该全局类别特征表征该查询文本中各字符在类别预测任务上的全局语义,该共享编码模型用于针对查询文本编码得到可供类别预测的全局类别特征以及可供实体识别的语义特征;
全连接模块1302,用于对该全局类别特征进行全连接处理,得到该查询文本的全连接类别特征;
映射模块1303,用于对该全连接类别特征进行非线性映射,得到该查询文本属于多个叶子类别各自的预测得分;
确定模块1304,用于将预测得分最大的叶子类别确定为该查询文本所关联的目标类别。
本申请实施例提供的装置,通过训练一个共享编码模型,使得共享编码模型既能够提取用于实体识别的查询文本的语义特征,又能够提取用于类别预测的全局类别特征,这样通过共享编码模型所提取到的全局类别特征能够综合用于进行实体识别的查询文本的语义特征的在类别预测任务上的全局化的语义信息,从而在基于全局类别特征进行类别预测的过程中,由于全局类别特征具有更强的表达能力,从而也能够改善长尾Query漏召回的现象,也就极大提升了针对长尾Query进行类别预测的准确率和召回率。
在一种可能实施方式中,该特征提取模块1301用于:
对该查询文本进行分词处理,得到该查询文本包含的多个字符;
对该多个字符进行特征提取,得到该查询文本的字符特征;
将分类指示符的字符特征和该查询文本的字符特征输入到该共享编码模型的多个第三编码层中,通过该多个第三编码层对该分类指示符的字符特征和该查询文本的字符特征进行编码,输出该分类指示符对应的该全局类别特征。
在一种可能实施方式中,该共享编码模型还输出该查询文本的语义特征,基于图13的装置组成,该装置还包括:
实体识别模块,用于基于该查询文本的语义特征,对该查询文本进行实体识别,得到该查询文本包含的至少一个实体对象。
在一种可能实施方式中,该实体识别模块用于:
对该查询文本的语义特征进行全连接处理,得到该查询文本的全连接识别特征;
基于该全连接识别特征,预测得到该查询文本中多个字符各自的实体边界位置标签;
基于该多个字符各自的实体边界位置标签,从该多个字符中划分得到该至少一个实体对象。
在一种可能实施方式中,基于图13的装置组成,该装置还包括:
查询模块,用于从预设类别表中,查询得到该目标类别所关联的一个或多个层级类别,该层级类别是指在不同层级下分别与该目标类别具有关联关系的上级或下级类别。
上述所有可选技术方案,能够采用任意结合形成本公开的可选实施例,在此不再一一赘述。
需要说明的是:上述实施例提供的搜索请求的处理装置在处理搜索请求时,仅以上述各功能模块的划分进行举例说明,实际应用中,能够根据需要而将上述功能分配由不同的功能模块完成,即将计算机设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的搜索请求的处理装置与搜索请求的处理方法实施例属于同一构思,其具体实现过程详见搜索请求的处理方法实施例,这里不再赘述。
图14是本申请实施例提供的一种计算机设备的结构示意图,该计算机设备1400可因配置或性能不同而产生比较大的差异,该计算机设备1400包括一个或一个以上处理器(Central Processing Units,CPU)1401和一个或一个以上的存储器1402,其中,该存储器1402中存储有至少一条计算机程序,该至少一条计算机程序由该一个或一个以上处理器1401加载并执行以实现上述各个实施例提供的搜索请求的处理方法。可选地,该计算机设备1400还具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该计算机设备1400还包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括至少一条计算机程序的存储器,上述至少一条计算机程序可由终端中的处理器执行以完成上述各个实施例中的搜索请求的处理方法。例如,该计算机可读存储介质包括ROM(Read-Only Memory,只读存储器)、RAM(Random-Access Memory,随机存取存储器)、CD-ROM(Compact Disc Read-Only Memory,只读光盘)、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品,包括一条或多条计算机程序,该一条或多条计算机程序存储在计算机可读存储介质中。计算机设备的一个或多个处理器能够从计算机可读存储介质中读取该一条或多条计算机程序,该一个或多个处理器执行该一条或多条计算机程序,使得计算机设备能够执行以完成上述实施例中的搜索请求的处理方法。
本领域普通技术人员能够理解实现上述实施例的全部或部分步骤能够通过硬件来完成,也能够通过程序来指令相关的硬件完成,可选地,该程序存储于一种计算机可读存储介质中,可选地,上述提到的存储介质是只读存储器、磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (20)
1.一种搜索请求的处理方法,其特征在于,所述方法包括:
对搜索请求携带的查询文本进行实体识别,得到所述查询文本包含的至少一个实体对象;
基于所述至少一个实体对象,获取所述查询文本所对应的至少一个实体查询文本,所述实体查询文本由一个或多个实体对象组合形成;
对所述至少一个实体查询文本分别进行类别预测,得到所述至少一个实体查询文本各自所关联的候选类别;
对所述至少一个实体查询文本各自所关联的候选类别进行去重,得到所述查询文本所关联的目标类别。
2.根据权利要求1所述的方法,其特征在于,所述对搜索请求携带的查询文本进行实体识别,得到所述查询文本包含的至少一个实体对象包括:
对所述查询文本包含的多个字符进行特征提取,得到所述查询文本的语义特征;
基于所述查询文本的语义特征,对所述查询文本进行实体识别,得到所述至少一个实体对象。
3.根据权利要求2所述的方法,其特征在于,所述对所述查询文本包含的多个字符进行特征提取,得到所述查询文本的语义特征包括:
对所述查询文本进行分词处理,得到所述查询文本包含的多个字符;
对所述多个字符进行特征提取,得到所述查询文本的字符特征;
将所述查询文本的字符特征输入到实体识别模型的多个第一编码层中,通过所述多个第一编码层对所述查询文本的字符特征进行编码,输出所述查询文本的语义特征,所述实体识别模型用于对所述查询文本进行实体识别。
4.根据权利要求3所述的方法,其特征在于,所述基于所述查询文本的语义特征,对所述查询文本进行实体识别,得到所述至少一个实体对象包括:
将所述查询文本的语义特征输入到所述实体识别模型的第一全连接层中,通过所述第一全连接层对所述查询文本的语义特征进行全连接处理,得到所述查询文本的全连接语义特征;
将所述全连接语义特征输入到所述实体识别模型的条件随机场CRF层中,通过所述CRF层预测得到所述查询文本中多个字符各自的实体边界位置标签;
基于所述多个字符各自的实体边界位置标签,从所述多个字符中划分得到所述至少一个实体对象。
5.根据权利要求4所述的方法,其特征在于,所述通过所述CRF层预测得到所述查询文本中多个字符各自的实体边界位置标签包括:
获取所述多个字符所对应的多个候选边界位置标签构成的多条候选路径;
通过所述CRF层,对所述多条候选路径分别进行打分,得到所述多条候选路径各自的路径分数,所述路径分数表征对应候选路径所包含的候选边界位置标签属于所述实体边界位置标签的可能性;
将路径分数最高的候选路径所包含的多个候选边界位置标签确定为所述多个字符各自的实体边界位置标签。
6.根据权利要求4所述的方法,其特征在于,所述基于所述多个字符各自的实体边界位置标签,从所述多个字符中划分得到所述至少一个实体对象包括:
基于所述多个字符各自的实体边界位置标签,确定所述至少一个实体对象各自的起始字符和结束字符;
基于所述至少一个实体对象各自的起始字符和结束字符,从所述多个字符中划分得到所述至少一个实体对象。
7.根据权利要求1所述的方法,其特征在于,所述对所述至少一个实体查询文本分别进行类别预测,得到所述至少一个实体查询文本各自所关联的候选类别包括:
对所述至少一个实体查询文本中的任一实体查询文本,提取所述实体查询文本的字符特征;
基于所述实体查询文本的字符特征,获取所述实体查询文本的全局实体语义特征,所述全局实体语义特征表征所述实体查询文本中各字符在类别预测任务上的全局语义;
基于所述全局实体语义特征,预测得到所述实体查询文本所关联的候选类别。
8.根据权利要求7所述的方法,其特征在于,所述基于所述实体查询文本的字符特征,获取所述实体查询文本的全局实体语义特征包括:
将目标分类符的字符特征和所述实体查询文本的字符特征输入到类别预测模型的多个第二编码层中,所述类别预测模型用于预测实体查询文本所关联的候选类别;
通过所述多个第二编码层对所述目标分类符的字符特征和所述实体查询文本的字符特征进行编码,输出所述目标分类符对应的所述全局实体语义特征。
9.根据权利要求8所述的方法,其特征在于,所述基于所述全局实体语义特征,预测得到所述实体查询文本所关联的候选类别包括:
将所述全局实体语义特征输入到所述类别预测模型的多个第二全连接层中,通过所述多个第二全连接层对所述全局实体语义特征进行全连接处理,得到所述实体查询文本的全连接实体语义特征;
对所述全连接实体语义特征进行非线性映射,得到所述实体查询文本属于多个叶子类别各自的预测得分;
将预测得分最大的叶子类别确定为所述实体查询文本所关联的候选类别。
10.根据权利要求1所述的方法,其特征在于,所述对所述至少一个实体查询文本各自所关联的候选类别进行去重,得到所述查询文本所关联的目标类别之后,所述方法还包括:
从预设类别表中,查询得到所述目标类别所关联的一个或多个层级类别,所述层级类别是指在不同层级下分别与所述目标类别具有关联关系的上级或下级类别。
11.一种搜索请求的处理方法,其特征在于,所述方法包括:
将搜索请求的查询文本输入到共享编码模型中,通过所述共享编码模型提取所述查询文本的全局类别特征,所述全局类别特征表征所述查询文本中各字符在类别预测任务上的全局语义,所述共享编码模型用于针对查询文本编码得到可供类别预测的全局类别特征以及可供实体识别的语义特征;
对所述全局类别特征进行全连接处理,得到所述查询文本的全连接类别特征;
对所述全连接类别特征进行非线性映射,得到所述查询文本属于多个叶子类别各自的预测得分;
将预测得分最大的叶子类别确定为所述查询文本所关联的目标类别。
12.根据权利要求11所述的方法,其特征在于,所述将搜索请求的查询文本输入到共享编码模型中,通过所述共享编码模型提取所述查询文本的全局类别特征包括:
对所述查询文本进行分词处理,得到所述查询文本包含的多个字符;
对所述多个字符进行特征提取,得到所述查询文本的字符特征;
将分类指示符的字符特征和所述查询文本的字符特征输入到所述共享编码模型的多个第三编码层中,通过所述多个第三编码层对所述分类指示符的字符特征和所述查询文本的字符特征进行编码,输出所述分类指示符对应的所述全局类别特征。
13.根据权利要求11所述的方法,其特征在于,所述共享编码模型还输出所述查询文本的语义特征,所述方法还包括:
基于所述查询文本的语义特征,对所述查询文本进行实体识别,得到所述查询文本包含的至少一个实体对象。
14.根据权利要求13所述的方法,其特征在于,所述基于所述查询文本的语义特征,对所述查询文本进行实体识别,得到所述查询文本包含的至少一个实体对象包括:
对所述查询文本的语义特征进行全连接处理,得到所述查询文本的全连接识别特征;
基于所述全连接识别特征,预测得到所述查询文本中多个字符各自的实体边界位置标签;
基于所述多个字符各自的实体边界位置标签,从所述多个字符中划分得到所述至少一个实体对象。
15.根据权利要求11所述的方法,其特征在于,所述将预测得分最大的叶子类别确定为所述查询文本所关联的目标类别之后,所述方法还包括:
从预设类别表中,查询得到所述目标类别所关联的一个或多个层级类别,所述层级类别是指在不同层级下分别与所述目标类别具有关联关系的上级或下级类别。
16.一种搜索请求的处理装置,其特征在于,所述装置包括:
实体识别模块,用于对搜索请求携带的查询文本进行实体识别,得到所述查询文本包含的至少一个实体对象;
获取模块,用于基于所述至少一个实体对象,获取所述查询文本所对应的至少一个实体查询文本,所述实体查询文本由一个或多个实体对象组合形成;
类别预测模块,用于对所述至少一个实体查询文本分别进行类别预测,得到所述至少一个实体查询文本各自所关联的候选类别;
去重模块,用于对所述至少一个实体查询文本各自所关联的候选类别进行去重,得到所述查询文本所关联的目标类别。
17.一种搜索请求的处理装置,其特征在于,所述装置包括:
特征提取模块,用于将搜索请求的查询文本输入到共享编码模型中,通过所述共享编码模型提取所述查询文本的全局类别特征,所述全局类别特征表征所述查询文本中各字符在类别预测任务上的全局语义,所述共享编码模型用于针对查询文本编码得到可供类别预测的全局类别特征以及可供实体识别的语义特征;
全连接模块,用于对所述全局类别特征进行全连接处理,得到所述查询文本的全连接类别特征;
映射模块,用于对所述全连接类别特征进行非线性映射,得到所述查询文本属于多个叶子类别各自的预测得分;
确定模块,用于将预测得分最大的叶子类别确定为所述查询文本所关联的目标类别。
18.一种计算机设备,其特征在于,所述计算机设备包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述一个或多个处理器加载并执行以实现如权利要求1至权利要求10或权利要求11至权利要求15任一项所述的搜索请求的处理方法。
19.一种存储介质,其特征在于,所述存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行以实现如权利要求1至权利要求10或权利要求11至权利要求15任一项所述的搜索请求的处理方法。
20.一种计算机程序产品,其特征在于,所述计算机程序产品包括至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行以实现如权利要求1至权利要求10或权利要求11至权利要求15任一项所述的搜索请求的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210959045.6A CN115329176A (zh) | 2022-08-10 | 2022-08-10 | 搜索请求的处理方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210959045.6A CN115329176A (zh) | 2022-08-10 | 2022-08-10 | 搜索请求的处理方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115329176A true CN115329176A (zh) | 2022-11-11 |
Family
ID=83922237
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210959045.6A Pending CN115329176A (zh) | 2022-08-10 | 2022-08-10 | 搜索请求的处理方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115329176A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115982338A (zh) * | 2023-02-24 | 2023-04-18 | 中国测绘科学研究院 | 一种基于查询路径排序的领域知识图谱问答方法及*** |
CN117316159A (zh) * | 2023-11-30 | 2023-12-29 | 深圳市天之眼高新科技有限公司 | 车辆语音控制方法、装置、设备及存储介质 |
-
2022
- 2022-08-10 CN CN202210959045.6A patent/CN115329176A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115982338A (zh) * | 2023-02-24 | 2023-04-18 | 中国测绘科学研究院 | 一种基于查询路径排序的领域知识图谱问答方法及*** |
CN117316159A (zh) * | 2023-11-30 | 2023-12-29 | 深圳市天之眼高新科技有限公司 | 车辆语音控制方法、装置、设备及存储介质 |
CN117316159B (zh) * | 2023-11-30 | 2024-01-26 | 深圳市天之眼高新科技有限公司 | 车辆语音控制方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021027533A1 (zh) | 文本语义识别方法、装置、计算机设备和存储介质 | |
CN110427461B (zh) | 智能问答信息处理方法、电子设备及计算机可读存储介质 | |
CN107085581B (zh) | 短文本分类方法和装置 | |
CN113011186B (zh) | 命名实体识别方法、装置、设备及计算机可读存储介质 | |
CN115329176A (zh) | 搜索请求的处理方法、装置、计算机设备及存储介质 | |
CN111460783B (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
CN113282711B (zh) | 一种车联网文本匹配方法、装置、电子设备及存储介质 | |
CN113761868B (zh) | 文本处理方法、装置、电子设备及可读存储介质 | |
CN112131876A (zh) | 一种基于相似度确定标准问题的方法及*** | |
CN111858898A (zh) | 基于人工智能的文本处理方法、装置及电子设备 | |
CN112364664B (zh) | 意图识别模型的训练及意图识别方法、装置、存储介质 | |
CN113553412A (zh) | 问答处理方法、装置、电子设备和存储介质 | |
CN115795038B (zh) | 基于国产化深度学习框架的意图识别方法和装置 | |
CN113722492A (zh) | 一种意图识别方法及装置 | |
CN112528136A (zh) | 一种观点标签的生成方法、装置、电子设备和存储介质 | |
CN111666400A (zh) | 消息获取方法、装置、计算机设备及存储介质 | |
CN117217277A (zh) | 语言模型的预训练方法、装置、设备、存储介质及产品 | |
CN115203372A (zh) | 文本意图分类方法、装置、计算机设备及存储介质 | |
CN115408488A (zh) | 用于小说场景文本的分割方法及*** | |
CN114722837A (zh) | 一种多轮对话意图识别方法、装置及计算机可读存储介质 | |
CN115017879A (zh) | 文本对比方法、计算机设备及计算机存储介质 | |
US11361031B2 (en) | Dynamic linguistic assessment and measurement | |
CN114491079A (zh) | 知识图谱构建和查询方法、装置、设备和介质 | |
CN113486143A (zh) | 一种基于多层级文本表示及模型融合的用户画像生成方法 | |
CN116484105B (zh) | 业务处理方法、装置及计算机设备、存储介质、程序产品 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40075674 Country of ref document: HK |