首页> 中国专利> 基于神经网络的语义搜索方法、装置、设备和存储介质

基于神经网络的语义搜索方法、装置、设备和存储介质

摘要

本申请涉及人工智能技术领域,具体公开了一种基于神经网络的语义搜索方法、装置、设备和存储介质,其中,语义搜索方法包括:获取语料库;将至少一个训练语料输入预先设置的组合神经网络中进行训练,得到语义提取模型;将至少一个训练语料中的每个训练语料输入语义提取模型,得到至少一个语料语义向量;根据至少一个训练语料中的每个训练语料进行实体生成,得到至少一个实体,并将至少一个实体和至少一个语料语义向量存入分布式搜索服务器;获取搜索请求,搜索请求包括待搜索文本;将待搜索文本输入语义提取模型,得到搜索语义向量;将搜索语义向量传入分布式搜索服务器进行语义搜索,得到搜索结果。

著录项

  • 公开/公告号CN113806487A

    专利类型发明专利

  • 公开/公告日2021-12-17

    原文格式PDF

  • 申请/专利权人 平安科技(深圳)有限公司;

    申请/专利号CN202111118260.5

  • 发明设计人 刘波;王彦;马骏;王少军;

    申请日2021-09-23

  • 分类号G06F16/33(20190101);G06F40/30(20200101);G06F40/279(20200101);G06F16/953(20190101);G06N3/04(20060101);G06N3/08(20060101);

  • 代理机构44202 广州三环专利商标代理有限公司;

  • 代理人熊永强

  • 地址 518000 广东省深圳市福田区福田街道福安社区益田路5033号平安金融中心23楼

  • 入库时间 2023-06-19 13:45:04

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-01-04

    实质审查的生效 IPC(主分类):G06F16/33 专利申请号:2021111182605 申请日:20210923

    实质审查的生效

说明书

技术领域

本发明涉及人工智能技术领域,具体涉及一种基于神经网络的语义搜索方法、装置、设备和存储介质。

背景技术

语义搜索作为信息搜索和自然语言处理领域的一个分支,受到的关注越来越多。具体而言,语义搜索引擎能从数亿条文本中,搜索出与用户输入的句子,语义相同或相近的语句,它作为计算机语义理解和人机交互的基础,已广泛应用到智能客服、智能问答、推荐系统等领域,并在这些领域中发挥着重要作用。

目前,现有的语义搜索引擎多通过文本正则匹配等方式,或者使用词频-逆文本频率指数(Term Frequency–Inverse Document Frequency,TF-IDF)等简单算法计算输入语句与搜索库中的语句之间的文本相似度,从而实现语义搜索。

但是,上述语义搜索引擎所使用的语义分析方式无法真正理解文本语义,导致搜索准确率低。且现有的语义搜索引擎系统将数亿条文本存储于搜索库中,致使搜索库的数据存储占用空间大,数据传输效率低,无法应对大数据多业务多任务场景的语义搜索。此外,现有的语义搜索引擎无法做到分布式计算,导致搜索算法效率低、数据传输效率低。总而言之,现有的语义搜索引擎存在搜索速度慢、搜索准确率低、应用场景窄、以及无法实时返回搜索结果的问题。

发明内容

为了解决现有技术中存在的上述问题,本申请实施方式提供了一种基于神经网络的语义搜索方法、装置、设备和存储介质,可以实现对文本语义的精准理解和分布式搜索,提升了搜索速度和搜索的准确性。

第一方面,本申请的实施方式提供了一种基于神经网络的语义搜索方法,包括:

获取语料库,其中,语料库中包括至少一个训练语料,且至少一个训练语料中的每个训练语料对应的业务类型相同;

将至少一个训练语料输入预先设置的组合神经网络中进行训练,得到语义提取模型,其中,组合神经网络由至少两个子神经网络组成,且至少两个子神经网络中包括至少一个模型生成神经网络和至少一个模型优化神经网络,模型优化神经网络用于优化模型生成神经网络生成的模型;

将至少一个训练语料中的每个训练语料输入语义提取模型,得到至少一个语料语义向量,其中,至少一个语料语义向量和至少一个训练语料一一对应;

根据至少一个训练语料中的每个训练语料进行实体生成,得到至少一个实体,并将至少一个实体和至少一个语料语义向量存入分布式搜索服务器,其中,至少一个实体和至少一个训练语料一一对应;

获取检索请求,检索请求包括待检索文本;

将待检索文本输入语义提取模型,得到检索语义向量;

将检索语义向量传入分布式搜索服务器进行语义检索,得到检索结果。

第二方面,本申请的实施方式提供了一种基于神经网络的语义搜索装置,包括:

采集模块,用于获取语料库,其中,语料库中包括至少一个训练语料,且至少一个训练语料中的每个训练语料对应的业务类型相同;

训练模块,用于将至少一个训练语料输入预先设置的组合神经网络中进行训练,得到语义提取模型,其中,组合神经网络由至少两个子神经网络组成,且至少两个子神经网络中包括至少一个模型生成神经网络和至少一个模型优化神经网络,模型优化神经网络用于优化模型生成神经网络生成的模型;

处理模块,用于将至少一个训练语料中的每个训练语料输入语义提取模型,得到至少一个语料语义向量,其中,至少一个语料语义向量和至少一个训练语料一一对应;

实体生成模块,用于根据至少一个训练语料中的每个训练语料进行实体生成,得到至少一个实体,并将至少一个实体和至少一个语料语义向量存入分布式搜索服务器,其中,至少一个实体和至少一个训练语料一一对应;

接收模块,用于获取检索请求,检索请求包括待检索文本;

检索模块,用于将待检索文本输入语义提取模型,得到检索语义向量,并将检索语义向量传入分布式搜索服务器进行语义检索,得到检索结果。

第三方面,本申请实施方式提供一种电子设备,包括:处理器,处理器与存储器相连,存储器用于存储计算机程序,处理器用于执行存储器中存储的计算机程序,以使得电子设备执行如第一方面的方法。

第四方面,本申请实施方式提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序使得计算机执行如第一方面的方法。

第五方面,本申请实施方式提供一种计算机程序产品,计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,计算机可操作来使计算机执行如第一方面的方法。

实施本申请实施方式,具有如下有益效果:

在本申请实施方式中,通过语料库对组合神经网络进行训练优化,生成一种基于神经网络的编码模型对文本进行语义提取,从而实现对文本语义的精准理解,并进一步提升了后续语义搜索的精准度。同时,通过将训练语料进行实体化,生成相应的实体进行存储,实现不同实体支持不同任务,并能对新增的任务进行扩展支持,可实现单语义搜索引擎多任务多业务支持。并进一步对实体序列化,序列化后的实体可以压缩减少存储空间,获得更快的传输速率,从而支持更大规模的存储搜索,并提高安全性。最后,通过分布式搜索服务器进行语义搜索,实现了大数据分布式计算,进一步的提升了搜索速度,并拓宽了应用场景。

附图说明

为了更清楚地说明本申请实施方式中的技术方案,下面将对实施方式描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施方式提供的一种基于神经网络的语义搜索装置的硬件结构示意图;

图2为本申请实施方式提供的一种基于神经网络的语义搜索方法的流程示意图;

图3为本申请实施方式提供的一种将至少一个训练语料输入预先设置的组合神经网络中进行训练,得到语义提取模型的方法的流程示意图;

图4为本申请实施方式提供的一种第二模型的总体架构图;

图5为本申请实施方式提供的一种第二模型融合卷积神经网络的架构示意图;

图6为本申请实施方式提供的一种对第三模型进行白化处理,得到语义提取模型的方法的流程示意图;

图7为本申请实施方式提供的一种根据至少一个训练语料中的每个训练语料进行实体生成,得到至少一个实体的方法的流程示意图;

图8为本申请实施方式提供的一种不同实体的数据结构组成示意图;

图9为本申请实施方式提供的一种存储需要的格式的示意图;

图10为本申请实施方式提供的一种结合Elasticsearch、gRPC、HNSW和tensorflowserving的语义搜索引擎的结构示意图;

图11为本申请实施方式提供的一种语义搜索引擎的总体结构图;

图12为本申请实施方式提供的一种基于神经网络的语义搜索装置的功能模块组成框图;

图13为本申请实施方式提供的一种电子设备的结构示意图。

具体实施方式

下面将结合本申请实施方式中的附图,对本申请实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本申请一部分实施方式,而不是全部的实施方式。基于本申请中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本申请保护的范围。

本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

在本文中提及“实施方式”意味着,结合实施方式描述的特定特征、结果或特性可以包含在本申请的至少一个实施方式中。在说明书中的各个位置出现该短语并不一定均是指相同的实施方式,也不是与其它实施方式互斥的独立的或备选的实施方式。本领域技术人员显式地和隐式地理解的是,本文所描述的实施方式可以与其它实施方式相结合。

首先,参阅图1,图1为本申请实施方式提供的一种基于神经网络的语义搜索装置的硬件结构示意图。该基于神经网络的语义搜索装置100包括至少一个处理器101,通信线路102,存储器103以及至少一个通信接口104。

在本实施方式中,处理器101,可以是一个通用中央处理器(central processingunit,CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。

通信线路102,可以包括一通路,在上述组件之间传送信息。

通信接口104,可以是任何收发器一类的装置(如天线等),用于与其他设备或通信网络通信,例如以太网,RAN,无线局域网(wireless local area networks,WLAN)等。

存储器103,可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。

在本实施方式中,存储器103可以独立存在,通过通信线路102与处理器101相连接。存储器103也可以和处理器101集成在一起。本申请实施方式提供的存储器103通常可以具有非易失性。其中,存储器103用于存储执行本申请方案的计算机执行指令,并由处理器101来控制执行。处理器101用于执行存储器103中存储的计算机执行指令,从而实现本申请下述实施方式中提供的方法。

在可选的实施方式中,计算机执行指令也可以称之为应用程序代码,本申请对此不作具体限定。

在可选的实施方式中,处理器101可以包括一个或多个CPU,例如图1中的CPU0和CPU1。

在可选的实施方式中,该基于神经网络的语义搜索装置100可以包括多个处理器,例如图1中的处理器101和处理器107。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。

在可选的实施方式中,若基于神经网络的语义搜索装置100为服务器,例如,可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(ContentDelivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。则基于神经网络的语义搜索装置100还可以包括输出设备105和输入设备106。输出设备105和处理器101通信,可以以多种方式来显示信息。例如,输出设备105可以是液晶显示器(liquid crystal display,LCD),发光二级管(light emitting diode,LED)显示设备,阴极射线管(cathode ray tube,CRT)显示设备,或投影仪(projector)等。输入设备106和处理器101通信,可以以多种方式接收用户的输入。例如,输入设备106可以是鼠标、键盘、触摸屏设备或传感设备等。

上述的基于神经网络的语义搜索装置100可以是一个通用设备或者是一个专用设备。本申请实施方式不限定基于神经网络的语义搜索装置100的类型。

其次,需要说明的是,本申请所公开的实施方式可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。

人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。

以下,将对本申请所公开的基于神经网络的语义搜索方法进行说明:

参阅图2,图2为本申请实施方式提供的一种基于神经网络的语义搜索方法的流程示意图。该基于神经网络的语义搜索方法包括以下步骤:

201:获取语料库。

在本实施方式中,语料库中可以包括至少一个训练语料,且该至少一个训练语料中的每个训练语料对应的业务类型相同。简而言之,可以将同一种业务对应的语料存放于同一个语料库中,由此,可以生成针对某一业务的专用搜索库,提升后续语义搜索的效率。

202:将至少一个训练语料输入预先设置的组合神经网络中进行训练,得到语义提取模型。

在本实施方式中,该组合神经网络可以由至少两个子神经网络组成,且该至少两个子神经网络中包括至少一个模型生成神经网络和至少一个模型优化神经网络,模型优化神经网络用于优化模型生成神经网络生成的模型。示例性的,该至少两个子神经网络可以包括:老师神经网络(teacher network)、学生神经网络(student network)和卷积神经网络(Convolutional Neural Networks,CNN)。

具体而言,本申请中提供了一种将至少一个训练语料输入预先设置的组合神经网络中进行训练,得到语义提取模型的方法,如图3所示,该方法包括:

301:将至少一个训练语料输入老师神经网络进行训练,得到第一模型。

在本实施方式中,可以通过将语料库在masked language model任务上对老师神经网络进行预训练,得到第一模型。

302:根据学生神经网络,对第一模型进行蒸馏处理,得到第二模型。

在本实施方式中,学生神经网络的结构与老师神经网络(BERT)的结构基本一致,差异在于学生神经网络将BERT的层数减少至原来的一半。且学生神经网络的每一层增加初始化,每一层的初始化为老师神经网络的参数。而蒸馏后的第一模型,即第二模型,使神经网络的编码速度提升了60%。如图4所示,图4示出了第二模型的总体架构图。

303:将卷积神经网络与第二模型进行融合参数微调训练,得到第三模型。

在本实施方式中,第三模型可以理解为参数微调后的第二模型。具体而言,可以将第二模型的输出向量输入卷积神经网络的一维卷积层,得到至少一个第一向量。然后,对至少一个第一向量中的每个第一向量进行最大池化,并将最大池化后的每个第一向量进行拼接,得到第二向量。再将第二向量输入卷积神经网络的全连接层,得到第一矩阵。最后,通过softmax对第一矩阵进行分类,并根据分类结果对第二模型进行优化调整,得到第三模型。

具体而言,如图5所示,图5示出了一个第二模型融合卷积神经网络的架构示意图。其中,将第二模型(DistilBERT)的输出,输入一维卷积层convolutional layer,然后将卷积后得到的向量进行最大池化max-pooling并进行concatenate拼接,最后经过一个全连接层(full connected layer),输出一个形状为(batch_size,num_classes)的矩阵。最后利用回归模型,例如:softmax进行分类。由此,利用业务数据对DistilBERT在分类任务上进行参数微调,进一步的提高了语义编码的准确率。

304:对第三模型进行白化处理,得到语义提取模型。

在本实施方式中,考虑到输入向量如果为各项同性,再进行余弦相似度计算会提高相似度计算的精度。因此,可以对第三模型的输出向量进行白化。基于此,本实施方式提供了一种对第三模型进行白化处理的方法,如图6所示,该方法包括:

601:根据第三模型的输出向量x

在本实施方式中,第一参数u可以通过公式①进行表示:

其中,N为第三模型的输出向量x

602:确定第三模型的输出向量x

603:对第三模型的输出向量的协方差矩阵A进行奇异值分解,得到第一特征矩阵B和第二特征矩阵C。

在本实施方式中,第三模型的输出向量的协方差矩阵A、第一特征矩阵B和第二特征矩阵C满足公式②:

A=BCB

其中,B

604:根据第一特征矩阵B和第二特征矩阵C,确定第二参数W。

在本实施方式中,第二参数W、第一特征矩阵B和第二特征矩阵C满足公式③:

605:根据第一参数u和第二参数W,对第三模型的输出向量x

在本实施方式中,第一参数u、第二参数W、第三模型的输出向量x

在本实施方式中,该白化向量

由此,在本实施方式中,采用DistilBERT、CNN、Whitening结合优化的编码方式,进一步加快了神经网络的语义编码速度和语义理解精度,从而使后续的相似度计算的任务的效率和准确率得到了提升,具体而言,准确率得到了5%的提升。

在可选的实施方式中,还可以对白化后的第三模型进行降维处理,再得到语义提取模型,从而进一步提升神经网络的语义编码速度和语义理解精度。

203:将至少一个训练语料中的每个训练语料输入语义提取模型,得到至少一个语料语义向量。

在本实施方式中,该至少一个语料语义向量和至少一个训练语料一一对应。

204:根据至少一个训练语料中的每个训练语料进行实体生成,得到至少一个实体,并将至少一个实体和至少一个语料语义向量存入分布式搜索服务器。

在本实施方式中,该分布式搜索服务器可以是Elasticsearch搜索服务器,且该至少一个实体和至少一个训练语料一一对应。

在本实施方式中,通过引入实体生成器及实体序列化,且使不同实体对应于不同的业务,由此,能够对新增的业务进行快速扩展支持,以实现单语义搜索引擎对多任务多业务的支持。

示例性的,本实施方式提供了一种根据至少一个训练语料中的每个训练语料进行实体生成,得到至少一个实体的方法,如图7所示,该方法包括:

701:根据每个训练语料的业务类型,获取实体模板。

在本实施方式中,不同业务类型的业务对应的实体的数据结构并不相同。示例性的,如图8所示,图8示出了本实施方式中包括的不同实体的数据结构组成示意图。具体而言,本实施方式所提供的实体可以包括:文本搜索实体、意图识别实体、问答实体、相似句查询实体、情绪识别实体(客户/座席)和文本质检实体(客户/座席)。实体可以根据其对应的业务类型的特性,选取不同的数据存储进实体中。例如,对于文本搜索实体,由于文本搜索任务的关注点在于搜索结果上,因此,该实体中可以包括:文本、搜索结果、搜索结果对应主题和搜索结果对应类别。

702:根据实体模型的数据结构,对每个训练语料进行数据采集,得到至少一个实体数据。

在本实施方式中,以情绪识别实体的实体模型为例,其数据结构为:角色、文本、文本对应的情绪和该情绪的程度。基于此,首先确定每个训练语料所对应的角色信息,再对该训练语料进行情绪识别和情绪程度确定。

703:将至少一个实体数据中的每个实体数据填入实体模板中对应的位置,得到至少一个实体。

在本实施方式中,沿用上述情绪识别实体的示例,可以将角色信息、训练语料、情绪识别结果和程度确定成果进行封装,形成情绪识别实体。

此外,在本实施方式中,在将至少一个实体和至少一个语料语义向量存入Elasticsearch搜索服务器前,还可以确定该至少一个实体对应的索引名称,从而根据索引名称在Elasticsearch搜索服务器中确定一个存储位置,或者说使用该索引名称对该至少一个实体和至少一个语料语义向量在Elasticsearch搜索服务器中存储的位置进行标记,由此,在后续使用时,可以通过该索引名称对该至少一个实体和至少一个语料语义向量形成的检索库进行快速定位。

同时,在本实施方式中,还可以对生成的至少一个实体进行序列化,例如,通过结构数据序列化工具protobuf将每个实体序列化,并将数据、序列化后的实体和该实体序列对应的语料语义向量组成的实体对转为存储需要的格式,并存入Elasticsearch搜索服务器。其中,存储需要的格式图9所示。由于序列化后的实体可以压缩并减少存储空间,获得更快的传输速率,从而支持更大规模的存储搜索,并提高安全性。

205:获取检索请求,检索请求包括待检索文本。

206:将待检索文本输入语义提取模型,得到检索语义向量。

207:将检索语义向量传入分布式搜索服务器进行语义检索,得到检索结果。

在本实施方式中,可以通过gRPC服务将检索语义向量传入Elasticsearch搜索服务器,再通过向量索引算法,例如:HNSW(Hierarchical Navigable Small World)算法,对检索语义向量进行语义检索,得到检索结果序列,其中,检索结果序列中可以包括至少一个候选结果,且至少一个候选结果在检索结果序列中,按照每个候选结果与检索语义向量之间的相似度从大到小的顺序进行排列。最后,根据检索请求,确定检索数量n,从而将检索结果序列中,前n个候选结果作为检索结果。

具体而言,本实施方式提供的语义搜索方法结合Elasticsearch、gRPC、HNSW等,实现了大数据分布式计算。其中,结合HNSW算法,可以实现在千万级别数据上的毫秒级的准确搜索,此外,本实施方式中的语义搜索方法还可以结合tensorflow serving实现多神经网络编码器同时在线以及热更新,从而实现多业务多任务支持,并通过gRPC服务提高传输速率,提供高效服务。

以下,将通过一个具体的示例,对结合Elasticsearch、gRPC、HNSW和tensorflowserving的语义搜索方法进行说明:

如图10所示,图10示出了一种结合Elasticsearch、gRPC、HNSW和tensorflowserving的语义搜索引擎的结构示意图。基于图10中的语义搜索引擎,搜索方法如下:

首先,用户发出一个搜索请求,该请求可以包括要检索的文本、索引名称以及需检索相似文本数量n。然后,将待检索文本通过tensorflow serving加载的神经网络编码器编码后得到文本向量。再将文本向量、索引名称以及需检索相似文本数量n,通过gRPC服务传入Elasticsearch中。最后,通过HNSW算法进行检索,返回与该文本相似的n个文本及实体,以及相似分数,并按相似分数大小进行排序。

在本实施方式中,Elasticsearch是一种高效的分布式架构,而HNSW算法是一种高效准确的图搜索算法。gRPC服务是一种快速安全的服务框架,gRPC服务与http服务相比有更快的传输速度。基于此,Elasticsearch分布式架构通过分布式计算,将数据备份到集群中的各个节点,并结合HNSW算法,进行多机联合检索,充分发挥大数据搜索能力,最后将搜索的结果通过gRPC服务进行交互,可实现千万级别数据上毫秒级的准确搜索。

由此,本实施方式还提出了一种语义搜索引擎,如图11所示,图11示出了该语义搜索引擎的总体结构图。其中,图11左边部分为语料库编码、实体生成存储部分,各业务用户可通过该部分将自身业务对应的语料库通过神经网络进行编码,并由实体生成器生成相应的实体,并将生成的实体以及其他数据发送至Elasticsearch进行存储,建立对应索引。图11右边部分为文本实时搜索部分,用户输入需要搜索的文本,以及需要搜索的相似文本个数和索引名称。通过神经网络编码,HNSW算法搜索以及gRPC服务快速从Elasticsearch中找到相似的文本及实体并返回搜索结果。本实施方式所提供的的语义搜索引擎实现了高精度、高准确率、且支持分布式大数据的多任务多业务的实时语义搜索。

综上所述,本发明所提供的基于神经网络的语义搜索方法中,通过语料库对组合神经网络进行训练优化,生成一种基于神经网络的编码模型对文本进行语义提取,从而实现对文本语义的精准理解,并进一步提升了后续语义搜索的精准度。同时,通过将训练语料进行实体化,生成相应的实体进行存储,实现不同实体支持不同任务,并能对新增的任务进行扩展支持,可实现单语义搜索引擎多任务多业务支持。并进一步对实体序列化,序列化后的实体可以压缩减少存储空间,获得更快的传输速率,从而支持更大规模的存储搜索,并提高安全性。最后,通过Elasticsearch搜索服务器进行语义搜索,实现了大数据分布式计算,进一步的提升了搜索速度,并拓宽了应用场景。

参阅图12,图12为本申请实施方式提供的一种基于神经网络的语义搜索装置的功能模块组成框图。如图12所示,该基于神经网络的语义搜索装置1200包括:

采集模块1201,用于获取语料库,其中,语料库中包括至少一个训练语料,且至少一个训练语料中的每个训练语料对应的业务类型相同;

训练模块1202,用于将至少一个训练语料输入预先设置的组合神经网络中进行训练,得到语义提取模型,其中,组合神经网络由至少两个子神经网络组成,且至少两个子神经网络中包括至少一个模型生成神经网络和至少一个模型优化神经网络,模型优化神经网络用于优化模型生成神经网络生成的模型;

处理模块1203,用于将至少一个训练语料中的每个训练语料输入语义提取模型,得到至少一个语料语义向量,其中,至少一个语料语义向量和至少一个训练语料一一对应;

实体生成模块1204,用于根据至少一个训练语料中的每个训练语料进行实体生成,得到至少一个实体,并将至少一个实体和至少一个语料语义向量存入分布式搜索服务器,其中,至少一个实体和至少一个训练语料一一对应;

接收模块1205,用于获取检索请求,检索请求包括待检索文本;

检索模块1206,用于将待检索文本输入语义提取模型,得到检索语义向量,并将检索语义向量传入分布式搜索服务器进行语义检索,得到检索结果。

在本发明的实施方式中,至少两个子神经网络包括:老师神经网络、学生神经网络、卷积神经网络,基于此,在将至少一个训练语料输入预先设置的组合神经网络中进行训练,得到语义提取模型方面,训练模块1202,具体用于:

将至少一个训练语料输入老师神经网络进行训练,得到第一模型;

根据学生神经网络,对第一模型进行蒸馏处理,得到第二模型;

将卷积神经网络与第二模型进行融合参数微调训练,得到第三模型,其中,第三模型为参数微调后的第二模型;

对第三模型进行白化处理,得到语义提取模型。

在本发明的实施方式中,在将卷积神经网络与第二模型进行融合参数微调训练,得到第三模型方面,训练模块1202,具体用于:

将第二模型的输出向量输入卷积神经网络的一维卷积层,得到至少一个第一向量;

对至少一个第一向量中的每个第一向量进行最大池化,并将最大池化后的每个第一向量进行拼接,得到第二向量;

将第二向量输入卷积神经网络的全连接层,得到第一矩阵;

通过回归模型对第一矩阵进行分类,并根据分类结果对第二模型进行优化调整,得到第三模型。

在本发明的实施方式中,在对第三模型进行白化处理方面,训练模块1202,具体用于:

根据第三模型的输出向量x

其中,N为第三模型的输出向量x

确定第三模型的输出向量x

对第三模型的输出向量的协方差矩阵A进行奇异值分解,得到第一特征矩阵B和第二特征矩阵C,其中,第三模型的输出向量的协方差矩阵A、第一特征矩阵B和第二特征矩阵C满足公式⑥:

A=BCB

其中,B

根据第一特征矩阵B和第二特征矩阵C,确定第二参数W,其中,第二参数W、第一特征矩阵B和第二特征矩阵C满足公式⑦:

根据第一参数u和第二参数W,对第三模型的输出向量x

其中,白化向量

在本发明的实施方式中,在根据至少一个训练语料中的每个训练语料进行实体生成,得到至少一个实体方面,实体生成模块1204,具体用于:

根据每个训练语料的业务类型,获取实体模板;

根据实体模型的数据结构,对每个训练语料进行数据采集,得到至少一个实体数据;

将至少一个实体数据中的每个实体数据填入实体模板中对应的位置,得到至少一个实体。

在本发明的实施方式中,在将至少一个实体和至少一个语料语义向量存入分布式搜索服务器方面,实体生成模块1204,具体用于:

根据至少一个实体中每个实体的业务类型,获取索引名称;

通过结构数据序列化工具将每个实体进行序列化,得到至少一个实体序列,其中,至少一个实体序列和至少一个实体一一对应;

根据索引名称在分布式搜索服务器中确定至少一个实体序列和至少一个语料语义向量的存储位置;

根据至少一个实体序列和至少一个语料语义向量之间的对应关系,将至少一个实体序列和至少一个语料语义向量一一对应,得到至少一个组实体对;

将至少一组实体对传入存储位置进行存储。

在本发明的实施方式中,在将检索语义向量传入分布式搜索服务器进行语义检索,得到检索结果方面,检索模块1206,具体用于:

通过向量索引算法,对检索语义向量进行语义检索,得到检索结果序列,其中,检索结果序列中包括至少一个候选结果,且至少一个候选结果在检索结果序列中,按照每个候选结果与检索语义向量之间的相似度从大到小的顺序进行排列;

根据检索请求,确定检索数量n;

将检索结果序列中,前n个候选结果作为检索结果。

参阅图13,图13为本申请实施方式提供的一种电子设备的结构示意图。如图13所示,电子设备1300包括收发器1301、处理器1302和存储器1303。它们之间通过总线1304连接。存储器1303用于存储计算机程序和数据,并可以将存储器1303存储的数据传输给处理器1302。

处理器1302用于读取存储器1303中的计算机程序执行以下操作:

获取语料库,其中,语料库中包括至少一个训练语料,且至少一个训练语料中的每个训练语料对应的业务类型相同;

将至少一个训练语料输入预先设置的组合神经网络中进行训练,得到语义提取模型,其中,组合神经网络由至少两个子神经网络组成,且至少两个子神经网络中包括至少一个模型生成神经网络和至少一个模型优化神经网络,模型优化神经网络用于优化模型生成神经网络生成的模型;

将至少一个训练语料中的每个训练语料输入语义提取模型,得到至少一个语料语义向量,其中,至少一个语料语义向量和至少一个训练语料一一对应;

根据至少一个训练语料中的每个训练语料进行实体生成,得到至少一个实体,并将至少一个实体和至少一个语料语义向量存入分布式搜索服务器,其中,至少一个实体和至少一个训练语料一一对应;

获取检索请求,检索请求包括待检索文本;

将待检索文本输入语义提取模型,得到检索语义向量;

将检索语义向量传入分布式搜索服务器进行语义检索,得到检索结果。

在本发明的实施方式中,至少两个子神经网络包括:老师神经网络、学生神经网络、卷积神经网络,基于此,在将至少一个训练语料输入预先设置的组合神经网络中进行训练,得到语义提取模型方面,处理器1302,具体用于执行以下操作:

将至少一个训练语料输入老师神经网络进行训练,得到第一模型;

根据学生神经网络,对第一模型进行蒸馏处理,得到第二模型;

将卷积神经网络与第二模型进行融合参数微调训练,得到第三模型,其中,第三模型为参数微调后的第二模型;

对第三模型进行白化处理,得到语义提取模型。

在本发明的实施方式中,在将卷积神经网络与第二模型进行融合参数微调训练,得到第三模型方面,处理器1302,具体用于执行以下操作:

将第二模型的输出向量输入卷积神经网络的一维卷积层,得到至少一个第一向量;

对至少一个第一向量中的每个第一向量进行最大池化,并将最大池化后的每个第一向量进行拼接,得到第二向量;

将第二向量输入卷积神经网络的全连接层,得到第一矩阵;

通过回归模型对第一矩阵进行分类,并根据分类结果对第二模型进行优化调整,得到第三模型。

在本发明的实施方式中,在对第三模型进行白化处理方面,处理器1302,具体用于执行以下操作:

根据第三模型的输出向量x

其中,N为第三模型的输出向量x

确定第三模型的输出向量x

对第三模型的输出向量的协方差矩阵A进行奇异值分解,得到第一特征矩阵B和第二特征矩阵C,其中,第三模型的输出向量的协方差矩阵A、第一特征矩阵B和第二特征矩阵C满足公式⑩:

A=BCB

其中,B

根据第一特征矩阵B和第二特征矩阵C,确定第二参数W,其中,第二参数W、第一特征矩阵B和第二特征矩阵C满足公式

根据第一参数u和第二参数W,对第三模型的输出向量x

其中,白化向量

在本发明的实施方式中,在根据至少一个训练语料中的每个训练语料进行实体生成,得到至少一个实体方面,处理器1302,具体用于执行以下操作:

根据每个训练语料的业务类型,获取实体模板;

根据实体模型的数据结构,对每个训练语料进行数据采集,得到至少一个实体数据;

将至少一个实体数据中的每个实体数据填入实体模板中对应的位置,得到至少一个实体。

在本发明的实施方式中,在将至少一个实体和至少一个语料语义向量存入分布式搜索服务器方面,处理器1302,具体用于执行以下操作:

根据至少一个实体中每个实体的业务类型,获取索引名称;

通过结构数据序列化工具将每个实体进行序列化,得到至少一个实体序列,其中,至少一个实体序列和至少一个实体一一对应;

根据索引名称在分布式搜索服务器中确定至少一个实体序列和至少一个语料语义向量的存储位置;

根据至少一个实体序列和至少一个语料语义向量之间的对应关系,将至少一个实体序列和至少一个语料语义向量一一对应,得到至少一个组实体对;

将至少一个组实体对传入存储位置进行存储。

在本发明的实施方式中,在将检索语义向量传入分布式搜索服务器进行语义检索,得到检索结果方面,处理器1302,具体用于执行以下操作:

通过向量索引算法,对检索语义向量进行语义检索,得到检索结果序列,其中,检索结果序列中包括至少一个候选结果,且至少一个候选结果在检索结果序列中,按照每个候选结果与检索语义向量之间的相似度从大到小的顺序进行排列;

根据检索请求,确定检索数量n;

将检索结果序列中,前n个候选结果作为检索结果。

应理解,本申请中的基于神经网络的语义搜索装置可以包括智能手机(如Android手机、iOS手机、Windows Phone手机等)、平板电脑、掌上电脑、笔记本电脑、移动互联网设备MID(Mobile Internet Devices,简称:MID)、机器人或穿戴式设备等。上述基于神经网络的语义搜索装置仅是举例,而非穷举,包含但不限于上述基于神经网络的语义搜索装置。在实际应用中,上述基于神经网络的语义搜索装置还可以包括:智能车载终端、计算机设备等等。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件结合硬件平台的方式来实现。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施方式或者实施方式的某些部分所述的方法。

因此,本申请实施方式还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现如上述方法实施方式中记载的任何一种基于神经网络的语义搜索方法的部分或全部步骤。例如,所述存储介质可以包括硬盘、软盘、光盘、磁带、磁盘、优盘、闪存等。

本申请实施方式还提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行如上述方法实施方式中记载的任何一种基于神经网络的语义搜索方法的部分或全部步骤。

需要说明的是,对于前述的各方法实施方式,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施方式均属于可选的实施方式,所涉及的动作和模块并不一定是本申请所必须的。

在上述实施方式中,对各个实施方式的描述都各有侧重,某个实施方式中没有详述的部分,可以参见其他实施方式的相关描述。

在本申请所提供的几个实施方式中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。

另外,在本申请各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。

所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

本领域普通技术人员可以理解上述实施方式的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。

以上对本申请实施方式进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施方式的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号