知识搜索,对于一个企业而言,目前无论是在对内管理还是对外服务的业务上,都有着大量的需求,并表现出急迫性的特征。

例如,很多企业都积累了大量的企业知识资产,并且规模以每年200%的速度增长,其中80%以上的数据是以文件、邮件、图片等非结构化数据的形式,存放于企业内计算机系统中的各个角落,并且这些数据的总量,远远超过了互联网信息的总量,这些数据给整理带来很大的难度。

又如,银行各个部门拥有众多IT系统,系统中存储大量数据、信息,数据结构复杂,每个系统都拥有简单的“数据库检索”功能,但常常出现找不到、找不准、找不全,速度慢等问题。

因此,如何让不同领域的企业根据自身业务的需求,选择相应的搜索模式,提升搜索效率,显得尤为迫切。本期围绕“领域情报搜索”这一主题,分析现有的搜索场景,并结合当前我们的工作,从领域知识搜索的场景、知识搜索相关技术、知识搜索实践中积累的思考等方面进行相关内容的介绍。

一、 领域知识搜索的场景

不同的领域对知识的搜索需求不同,但最终的目的都是做知识的整合、梳理、索引和管理,并在此基础上提升客户应答效率。下面从常见的搜索领域和搜索功能两个方面介绍:

1、 常见搜索领域
1) 银行保险等金融领域搜索
针对银行业务、理财产品、保险的售前、售中以及售后环节提供垂直智能化服务支撑方案,面向客户、服务人员以及代理人提供系统化智能服务方案,为企业有效降低服务成本、强化组织管理、提升服务体验。

2) 电子政务与法律领域
针对政府机构,对便民服务、市长热线、来电办理、问题督办等场景在线智能处理,提供民众自主办理、快速响应。

3) 游戏娱乐等消费领域
针对游戏行业在注册、宣传、账号管理等核心场景,提供专属智能服务解决方案,面向广大游戏爱好者提供针对的方案,提供更好客户体验,有效提升客户价值。

4) 教育培训与医疗领域
将AI技术与教育行业深度集合,以师生服务、招生、教学保障为核心场景,通过手机APP、互联网等沟通渠道,为教育企业有效降低服务和教学成本,提升教学质量并能更高效挖掘潜在数据价值。

2、 常见搜索场景
1)知识定位搜索
知识定位搜索,指的是针对用户文档中的信息进行查找和定位的一类搜索模式。例如,对于答案在文中有明确结果的,返回确切值;对于答案隐藏在段落中的,返回文章中的细节段落;对于答案在文章表格中的,返回经过事先解析好的文章表格内容和具体位置等信息。

从定位的数据类型来看,大致可将搜索分为句子/段落/全文型、表格型和图片型三种,图片型是其中值得关注的一类。例如,金融领域许多研究报告、公告当中包含着大量记录和反映数据指标的图表,该图表作为检索的对象,既可以方便写作素材调取,也可以作为文本聚合的重要参考依据。

图1-基于报告的图片搜索示意图
2) 知识实证搜索

“实证搜索”是当前一种可信的搜索模式,与直接给出问题答案不同,要求在给定具体结果的同时,将答案的来源给出,这样能够提升用户对知识的把控和鉴别能力。例如,“学迹”中的“学习来源”,就是对结构化答案的实证实践。

图2-基于实证的知识搜索示意图
3) 知识结构化搜索

结构化搜索,又称图谱搜索,即一类以非大段文本和知识卡片形式进行知识问答的搜索模式,其特点是简洁、明了和结构化,在谷歌上线知识图谱问答以来,成为了一个很火热的方向。例如,下图中以“生产口罩的公司”为例,可以得到以下结构化数据:

图3-结构化知识搜索示意图

3、 知识搜索模式变迁

目前知识搜索先后经历了传统全文检索模式、FAQ模式以及泛QA模式三种模式的变迁,三种方式对技术的要求也不断增加,下图中列举了对应的优势和劣势。

图4-知识搜索模式变迁示意图

在实际的业务实施过程当中,我们常需要根据具体的问题,选择相应特定的应答策略,这通常表现成一个多问题类型集成的泛QA模式,需要充分考虑搜索引擎、业务系统对接、搜索系统管理以及其他能力调用等模块之间的协作。

图5-泛QA知识搜索模式架构示意图

二、 全文检索范式下的场景搜索

全文检索是当前我们所能看见最多的一类搜索方式,百度、谷歌、必应等搜索引擎,绝大多数服务都基于全文检索实现。

1、关键技术

全文检索通过在服务端预先对待搜索字段(如标题、正文等)进行分词、倒排索引,在搜索端通过捕获用户搜索内容,利用搜索引擎(如solr, es)中内置的匹配排序算法(如BM25,TFIDF)进行排序,最终将结果返回给用户,下图展示了一个典型的全文检索功能架构。

图6-全文搜索架构示意图

全文索引、搜索字符串扩展和搜索评分模型是全文检索中三个核心模块。
首先,全文索引的前提是整篇文档都已经是纯文本形式或处于可索引的状态,因此,这就需要针对不同的文本如PDF、DOCX等文档进行解析和转换。

图7-全文搜索文档转换与解析路线图

在某些情况下,还涉及到表格的解析、段落的记录以及图片的分离等操作,如通过对表格进行纵横两个方向的扫描组合方式,将表格中的数据转换成可检索和标引的数据类型。

图8-全文搜索表格解析示意图

其次,使用用户原始字符串(或经过停用词等处理)进行匹配,无法直接解决“同义不同形”的问题,即“召回率低”。构造同义词库配置、保留专有词汇、可插拔的相似度算法,先全文候选后相似度二次计算是其中的两个重要解决方式。

图9-全文搜索内置引擎示意图
最后,在搜索评分模式上,可以根据采用的搜索引擎框架,干预其评分模型,如ES中提供了更改评分函数的接口,可以根据实际的业务搜索需求,将其他评分因素加权到原有评分函数当中。

2、项目案例

金融领域的底稿管理是全文检索方式的一个用武之地,例如,项目现场底稿数量繁多,撰写材料所需数据分散,数据查找繁琐,易遗漏,整理归档、材料查询费时费力。为此,进行纸质底稿电子化,方便数据整理、版本管理,可以让数据查找更方便、更全面,节省用户时间,下图是该项目的实际搜索效果:

图10-全文搜索项目上线运行截图

三、 FAQ范式下的搜索

FAQ是英文Frequently Asked Questions的缩写,中文意思就是“经常问到的问题”,或者更通俗地叫做“常见问题解答”,是较全文检索信息进一步聚合、回复进一步精确的搜索方式。
1、关键技术
FAQ实施的过程包括两个核心点,即:问答对数据的构建和问题匹配评分模型。
其中,问答对的规模取决于具体的业务积累,在前期冷启动环节中常需借助业务专家标注,设定一些相关的标准问答对。

问题匹配负责将用户的自然问句和问答库中的问题进行匹配,找出最佳标准问,常见的方式包括基于es相似度,编辑距离等传统方式,siamese孪生网络、BERT-finetune等深度方式。此外,针对问题较为复杂的场景,还常有问题分类这一前置任务。

问句压缩,是FAQ模式的一个重要技术,由于FAQ的问题通常较短,用户在提问的过程当中,往往会夹带着一些主观噪声(即我们常说的口水句,如下图),这会对实际的标准问匹配造成困扰。

图11-FAQ口水句压缩效果示意图
针对这类问题,解决的方案包括基于语法树分析与关键词的规则方法以及基于文本摘要和句子压缩的方法。前者通过标点或空格将长句分割成若干个短句,对短句进行口水句分类,然后基于概率和句法分析进行句子压缩,尽可能剔除非必要成分,只留下关键词、主谓宾等核心成分。后者的可用模型较多,从传统的textrank到采用RNN、CNN等的深度学习模型,均可以生成相应的摘要效果。

此外,问题纠错也是FQA(不限于FAQ,KBQA以及全文搜索范式都需要用到)的预处理流程之一。常见的解决方法包括字典+规则的纠错以及基于神经网络模型的纠错两种。


图12-问题就错技术路线示意图
2、项目案例
针对该类的搜索,我们针对法律领域,完成了基于20W法务问答对的13类问题分类与法律资讯问答搜索系统,在问题分类步骤,达到了96%的准确率。

图13-FAQ项目上线效果示意图

四、 KBQA范式下的搜索

KBQA是针对结构化数据的一种直截了当的问答方式,可以根据设定的问题类型,通过问句解析的方式,形成若干三元组及相关的操作条件,并转换成特定的查询语句,直接返回相应结果,是当前一种较为流行和新颖的搜索方式,但技术还较为早期。
1、 关键技术
1) 意图分析

意图分析是KBQA范式下的第一步,其任务在于对用户所提出的问题进行问题分类,因此又称为意图分类。由于不同的问题所涉及的问题要素不一,后续所需进行的标签识别、条件体与目标体识别也不同,意图分类的准确性会影响整个后续环节的性能。
问题分类的方法主要包括基于学习和基于规则两种方式。例如,在本文提及的FAQ法律问答当中,我们针对13类问题语料进行训练,得到了基于学习型方法的问题分类,在缺少训练语料时,基于关键词和规则的问题方式往往成为首选,下图针对医疗知识问答中提出的几类问题,给出了规则示例:

图14-意图分类中关键词与规则示意图
多意图分类是问题解析中的一个难点,用户往往会在一个问题中表达多种意图,这时候,需要采用多分类模型对其中所涉及到意图进行捕获。

2) 标签(实体、操作符)识别
标签识别,是指识别出与目标数据库中相关联的实体、属性、关系或操作符集合,也有人称为槽位识别。实体识别包括常见的机构、日期、金额、地点、人物等实体,职位、指标名称等属性关系。

包含操作符的回答是处理难度较大的一类,如我们会经常涉及到一些最高、最低、平均、总和、相差多少等问法,这种问题比确定性问题的解决方法要复杂一些,下图列举了一些常见的操作符示例。

图15-标签识别中的操作符示意图
3) 条件体与目标体识别

在识别完特定的标签之后,还需要在此基础上形成可供查询转换的条件部分和目标部分。条件体,即在进行答案搜索过程中需要进行匹配的条件,如某个实体或标签应该满足的属性值或关系类型(也常称为意图槽填充)。目标体指具体需要返回的数据,通常包括某个实体或标签、某个实体或标签的属性或关系、符合条件体的布尔型数据(是否存在这样的数据)。

用于条件体和目标体识别的常用的方法包括基于问题模板和基于标签依存两种。
例如,在进行电影知识图谱进行问答时,在识别出电影名称、人物、角色等标签后,可针对某一类问题,自定义识别模板。下图给出了“演员导演作品”、“作品导演”、“导演自导自演的作品”三类问题的模板示例。

图16-条件体与目标体识别模板示意图
自定义模板映射的方式具有准确率较高,易维护和扩展的优点,但人工成本要求较多,同一个问题通常会有多种不同问法,在短时间内无法穷举所有可能。

依存关系的引入,在一定程度上解决了这一难题,构建起所识别的标签之间的父子关系,可对条件体和查询体进行准确定位。我们为此设计了一种标签依存的识别方法:将实现识别好的标签组成一张图,并通过计算标签与标签之间的可能关联,利用动态规划的方法,找出标签之间概率最大化的依存路径。


图17-数地工场问句标签依存解析效果图
上图以“比亚迪的老总和董秘是谁”这一问题出发,通过识别出比亚迪(公司实体)、老总(职位关系)、董秘(职位关系)并进行统一标准化后,进一步形成 <Root,比亚迪>、<比亚迪,董事长>、<比亚迪,董事会秘书>两个父子依存关联,这种关联关系在图中清晰的展示,该接口已经上线到数地工场中,欢迎大家测试和使用。网址:https://nlp.datahorizon.cn

2)查询语句生成
查询语句生成是整个KBQA过程中的最后一步,通过问题意图分析之后,得到了查询体中的条件体和目标体,即可以通过模板转换的方式,进行语句的映射和转换。
当然,查询语句的转换要和目标数据库相对齐,如下图分别展示了以ES、Cypher、SPARQL三种目标数据查询语句的生成方式。

图18-面向ES,Neo4j,RDF的查询语句生成过程图
2、项目案例

1)KBQA-Neo4j组合的医疗知识问答
Neo4j是目前使用规模较大的一类图数据库,其具有多层关系存储、路径搜索推理等多项应用场景,并提供了人性化和语义化的查询语句cypher。

本项目立足医药领域,以垂直型医药网站为数据来源,以疾病为核心,构建起一个包含7类规模为4.4万的知识实体,11类规模约30万实体关系的知识图谱。

该知识图谱中记录了关于诊断检查项目、医疗科目、疾病、药品、食物、在售药品、疾病症状等多项医疗实体,疾病常用药品、宜吃食物、所需检查、忌吃食物、推荐药品、推荐食谱等实体属性信息项,疾病名称、简介、病因、预防措施、治疗周期、治疗方式、治愈概率等关系信息,可以支撑关于这些信息项的问答服务。

该项目利用基于关键词的方式完成问题分类,基于规则完成了问句解析和查询语句转换,以一种较为简易的方式提供了预设的问题回答服务,初步取得了一定的效果。

图19-医疗知识图谱问答过程与效果图
3、KBQA-Mongo组合的军事武器装备知识图谱问答
Mongo作为一个文档型数据库,也是知识图谱的一类重要存储方式,基于构建好的mongo结构化数据,采用相同的前置问答解析方式,转换成mongo的查询语句,即可输出相关结果。

我们通过对开源的军事武器装备数据进行整合、清洗和融合,建成了规模达到十万的军事武器信息三元组,共包括8大类、148小类的武器装备。基于该武器装备知识图谱,提供一个基于模式和打标签方式的问答系统。

值得注意的是,在该项目中,我们巧妙的借助了jieba的词性标注功能,快速地进行了相关实体的识别与解析,提供了用户模板的配置接口,基于查询模板完成多类问题的查询,并展示了这一问答过程。

图20-军事知识图谱问答过程与效果图
4、KBQA-MySql组合的钢铁领域知识问答
同样的,Mysql也是KBQA范式中常用的一个数据库选型,传统的mysql关系型数据库广泛适用于银行、学校等信息系统当中。因此,在实施的环节中,只需要根据sql查询语句,在sql生成的阶段作相应的调整。

在项目上,我们研制了面向钢铁领域的一套自动问答系统,并构建了涵盖多个交易所期货的资讯数据、情绪数据和关联指标数据库,提供资讯类问答、情绪类问答、数据指标类问答三个方面的服务。

例如,对于问题“今天螺纹钢有哪些利好资讯”,可通过对“螺纹钢”进行期货名称识别、时间项识别与情绪项识别,形成搜索条件,完成搜索并以结果列表页的方式进行返回;在问及某一期货的情绪和关联的指标时,可结合图标可视化的方式加以表达。
该项目引入了对结果的可视化组织方式,以一种更为鲜明、友好的方式加强用户的搜索体验。


图21-钢铁领域知识问答过程与效果图

五、 知识搜索的几点思考

利用现有的知识抽取和知识搜索技术,的确可以在一定程度上满足一些搜索场景的需求,但在具体搜索项目课题立项以及项目实施的过程中,依旧存在多个需要考虑的关键点、误区和风险点。
1、实施关键点
1)明确搜索的对象:受众,面向个人or面向统一平台的,DIY式的搜索和大众搜索所带来的维护成本、开发成本时截然不同;
2)确定问题的边界:有所问,有所不问。这个尤其重要,需要将用户问题约束住,切勿脱离数据而设定问题,脱离现实技术而设定问题,以免预期落空;
3)根据问题找数据:需要根据预先调研和确定好的问题来构建相关的数据库。如前面所提到的,若是走问答对的形式,则走问答对构建以及问句类型设计的路线;
若走全文检索的路线,则需要根据所需检索的字段确定搜索的单元,如针对文档内部的搜索,常常需要将文档的层级结构信息,段落、子段落、常句、表格、标题等进行有效索引;
若实施KBQA,则需要构建相应的结构化数据,并考虑多个不同结构化数据库的存储、通信、后续数据的接入问题。
4)关注搜索架构的鲁棒性:一个成功的搜索系统,需要从搜索性能、搜索变更能力、搜索维护压力、数据的标准化、外围数据接入与通信方式等多个方面进行考虑,尤其是在系统升级的过程中,能够做到快速、平稳的切换。
5)关注数据的安全性与更新机制:一个搜索系统,在上线运行之后,通常会处于一个不断积累数据和功能扩充的状态,涉及到数据的安全性问题,这个在银行、涉密等多个环境下尤为重要。
2、误区与风险点
1)认识要冷静:AI搜索助手没不会那么”AI”,大多时候会觉得它很“智障”,尤其是现在“神化知识图谱”或“神化KBQA”的风气不减的当下,更是要保持冷静。
2)预期要实际:“深度学习”有所为有所不能为,需要大量的人工、规则、模板,动辄的“模型迭代”和“自我学习”在工业级场景大多很难实施,受到人力、算力、客户忍耐度、维护等多方因素的制约,警惕将学术论文评测的做法引入到工业级落地当中。
3)人机结合是正道:选择平稳、可靠的AI助手的最佳方式:灵活可配置的人工参与接口,可迭代升级,尽可能减少后期维护成本额,这样才能省心、省人力。在整个项目实施上,可以小步快跑,步步迭代,切勿超之过急,先做好每个细分功能点
4)数据整合占大块:功能的设计、业务的梳理、数据的整理,占据整个项目超过70%的时间。针对不同数据库之间的搜索,需要花费大量的人工进行数据梳理;针对结构化查询,需要准备大量的外部知识库(业务词典、同义词词典等)。
5)项目设立要慎重:在确定是否需要建设一个搜索系统之前,需要考虑当前的数据类型是否适合于搜索,自己当前的资源是否能够支撑搜索代价,预设的数据架构是否能够涵盖后续的数据类型,不慎的话会影响后期维护和扩展。

六、 总结
不同的领域对知识的搜索需求不同,但最终的目的都是做的知识的整合、梳理、索引和管理,并在此基础上提升客户应答效率。本文结合我们团队的工作,对知识搜索这一内容进行了相关的分析。
知识搜索,在银行保险等金融领域、电子政务与法律领域、游戏娱乐等消费领域、教育培训与医疗领域上有大量搜索需求。
知识定位搜索、知识实证搜索以及知识结构化搜索是先有搜索服务的三种常见搜索场景,为了支撑该搜索,常用的搜索范式包括基于全文检索的、基于FAQ的,基于KBQA三种路线。
文本预处理以及全文匹配搜索评分是全文检索的两个核心点,我们在金融领域的底稿管理这一项目中进行了实践,提升了底稿业务的效率;
问答对数据的构建、问题匹配评分模型、问题的压缩、问题的纠错是FAQ搜索范式的几个关键点,我们以法律咨询问答项目中对该技术进行了验证和实践,可快速地针对用户问提给出准确答案;
KBQA搜索是面向结构化数据搜索的重要搜索范式,我们分别从医疗知识图谱问答、军事武器问答、钢铁领域知识问答三个项目出发,探索了图数据库、文档数据库、关系型数据库的对接策略,提出了基于模版可灵活配置模式的标签识别、标签依存关系识别的方法,具有鲁棒性的优点。
在具体搜索项目课题立项以及项目实施的过程中,存在着多个风险点和关键点,我们需要明确搜索的对象、确定问题的边界、根据问题找策略、关注搜索架构的鲁棒性、数据的安全性与更新机制,此外,还要充分保持冷静、预期实际、承认人机结合的科学道路,并认识到前期数据整理和设计需要花费的代价。

参考链接
[1]https://xueji.zhiwenben.com
[2]https://nlp.zhiwenben.com
[3]https://liuhuanyong.github.io
[4]https://www.iwencai.com
[5]http://www.iwencai.com
[6]https://ask.shannonai.com
[7]https://www.bilibili.com/video/BV1Ub411H73G

领域情报搜索实践:真实场景下的问答实施策略与风险分析相关推荐

  1. 搜索推荐业务场景下的特征系统搭建

    转载:https://zhuanlan.zhihu.com/p/79874983?utm_source=wechat_session 前提:前阵子受朋友的邀约,结合自己在推荐搜索系统下的经验,对企业级 ...

  2. 面向削峰填谷的电动汽车多目标优化调度策略 代码主要实现了考虑电动汽车参与削峰填谷的场景下,电动汽车充放电策略的优化,是一个多目标优化

    MATLAB代码:面向削峰填谷的电动汽车多目标优化调度策略 关键词:电动汽车 削峰填谷 多目标 充放电优化 仿真平台:MATLAB YALMIP+CPLEX 主要内容:代码主要实现了考虑电动汽车参与削 ...

  3. 深度学习核心技术精讲100篇(三十四)-智能化搜索,旅行场景下的个性化营销平台揭秘

    前言 个性化投放的"无人驾驶"平台何以自动化支持上千个场景的千人千面投放?商家.运营.小二,我们如何做到极致赋能和提效?面对旅行场景下用户需求低频.行为稀疏,特别是在营销活动大促期 ...

  4. 业务场景下数据采集机制和策略

    一.场景描述 做面向C端用户的产品,十分依赖用户数据的收集,下面都见过这样一张数据分析图,通过链路上各个环节的数据采集,分析对比出曝光产品的交易量: 通过对商品的浏览-点击-交易页面-支付购买等,分析 ...

  5. 高并发场景下的限流策略

    点击上方"方志朋",选择"置顶公众号" 技术文章第一时间送达! 在高并发的场景下,我们的优化和保护系统的方式通常有:多级缓存.资源隔离.熔断降级.限流等等. 今 ...

  6. 真实场景下的安全专家各项技能详解

    中国白帽人才基本情况 在实战化白帽子能力调研过程中,课题组同时也对白帽子的一些基本状况进行了调研, 包括行业分布.年龄与学历.从业时间.以及技能证书等几个方面. 一. 行业分布 从行业分布来看,36. ...

  7. 数据湖在大数据场景下应用和实施方案调研笔记(增强版)

    点击上方蓝色字体,选择"设为星标" 回复"面试"获取更多惊喜 在读本文前你应该看过这些: <我看好数据湖的未来,但不看好数据湖的现在> <数据 ...

  8. 腾讯优图:带噪学习和协作学习,不完美场景下的神经网络优化策略

    神经网络的成功建立在大量的干净数据和很深的网络模型基础上.但是在现实场景中数据和模型往往不会特别理想,比如数据层面有误标记的情况,像小狗被标注成狼,而且实际的业务场景讲究时效性,神经网络的层数不能特别 ...

  9. 叶杰平:主流强化学习过分简化假设,与真实场景差距较大

    智源导读:决策智能是国家新一代人工智能的重要发展方向,强化学习是实现决策智能的核心技术之一.在强化学习中,智能体与环境进行不断的交互,基于环境的反馈学习如何选择一系列动作,以使长期累积的奖励和最大. ...

最新文章

  1. 计算机网络测试两个主机连通性,计算机网络试卷A
  2. 「offer来了」保姆级巩固你的js知识体系(4.0w字)
  3. 远控免杀4---Evasion免杀
  4. 20个最佳WordPress SEO插件
  5. 2016年下半年信息安全工程师考试真题含答案(下午题)
  6. c语言链表错误,C语言创建链表错误之通过指针参数申请动态内存实例分析
  7. 【ESP8266】发送HTTP请求
  8. Android自己写的三款实用开关控件
  9. 已安装jre1.7的情况下安装jdk1.6
  10. 现代软件工程_团队项目_阿尔法阶段_第二次会议记录_2017.11.13
  11. Linux下载安装JDK
  12. opencv实现摄像头的实时人脸识别
  13. Quiz-Style Question Generation for News Stories
  14. 宝宝痰湿体质——家长该如何调理
  15. Luogu5149会议座位
  16. 【软考软件评测师】2019综合知识历年真题
  17. 订单和订单详情的一对一 ,一对多映射
  18. ios第三方数据请求 UI_15
  19. ubuntu12.04 禁用访客
  20. 2022-6-2寻宝大冒险(不用前缀和与map,c/c++实测满分)

热门文章

  1. 华为海选开发者状元?还送14件豪礼?
  2. 给楠哥准备的入门单片机
  3. Secure CRT 自动记录日志
  4. Android wakelock 自上而下浅析
  5. 初学者选黑卡还是微单_零基础,一篇读懂单反和微单
  6. 报错 ValueError: too many values to unpack (expected 2)
  7. pip install时发生raise ReadTimeoutError(self._pool, None, 'Read timed out.')的解决方案
  8. LeetCode 679. 24 点游戏(回溯)
  9. LeetCode MySQL 612. 平面上的最近距离
  10. LeetCode 435. 无重叠区间(贪心/动态规划)