多模态智能信息检索技术设计及分类模型设计

Posted demo-deng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多模态智能信息检索技术设计及分类模型设计相关的知识,希望对你有一定的参考价值。

一、多模态智能信息检索技术设计
1.设计检索的框架流程,设计检索评估方法
完成的任务:用户搜索“苹果”,在限定性语境中,如何做到用户是需要找“苹果手机”,而不是水果“苹果”
系统输入:一个关键词
输出:同输入词相关的若干词汇(可能是用户需要的敏感词汇)
预计出现的问题:
1)输出相似或相关词汇由于模型的误判并不是用户需要的,精度过低这种情况肯定存在,一定要分析产生的原因,在实际情况中如何解决
2)待搜索数据源是否固定。
a.数据固定在本地,可以构建本地关键词数据特征中心(或者构建三元组数据库),在检索是可以用spark streaming等大数据处理方式解决实时性问题
b.待检测数据随任务变化而变化,文本特征需要在搜索时构建,如何解决实时检索效率
3)返回的结果是否具有联想能力,如何提升联想能力,比如输入“苹果”,输出“苹果公司”、“乔布斯”、“上市公司”、“跨国企业”、“IPhone”等
技术方法:
1)文本转化为词汇单元:分词技术,利用现有模块能初步实现分词,如果要求实时处理数据,则效果一般,根据以往经验来看性能不会有多快
实体识别技术,能够很好地识别出实体并可转化为关键词,精度较高效果较好,但实时处理性能非常慢
构建关键词词库,缩小数据范围,结合业务领域收集聚焦关键词,而不是通用领域数据(如公安案件领域、安全领域等),是的词库不会那么大,应用也成为可能
可以用NER技术离线处理领域数据,可以通过人工挑选或自动分类方法,扩充关键词词库
最终构建的关键词词库(不一定只是关键词)也可能会很大,如果影响单机存储,还需要考虑较优的序列化技术,占用空间不至于过大(如转化为二进制),也要能快速IO操作,这应该是影响性能操作的第一个部分
2)词表征技术:让上部分构建的词汇含有语义信息,就必须利用词嵌入表征技术,如word2vec,能够很好的反映词与词之间的关系或者是相关性,通过夹角余弦、欧氏距离等指标衡量
知识图谱技术也能够通过构建SPO形成语义信息,通过语义网络表征词于词之间的关系,对一个实体的一跳或多跳查询方式获得目标实体,但实际使用起来难度较大,RQL的查询方式可能并不适合本任务(S,P,?)
同时,KG的弊端也逐渐显现,描述客观事物的能力同现今的BERT、GPT等超级模型有很大差距,劲头有减弱趋势。但是在限定性领域的数据表征还是可以使用的,准确率还是很高的
鉴于此,采用词嵌入表征方式,初步的步骤:
a.在通用领域或者限定性领域预训练出一个词向量数据集
对通用域和者限定域得出的词向量进行评估,结合现有的评估方法确定哪一个更适用于实际任务解决问题
根据以往经验来看,通用域即现有的公开词向量数据更平滑,表征能力也有优势,但存在的问题是维度已经固定,实际任务中会由于过长并不适用,而且多数情况下不包含实际任务中的关键词,需要想办法改进
限定性即根据预料自己训练的词向量,关键词及维度可控,但存在模型过拟合及调参不充分导致得到的词向量有偏,在构建的时候需要严格把控
最后,希望是能够使用一种方法兼顾两者的优势,或者使用公开集数据全力指导限定域词向量的构建
b.在词向量已获得的情况下,完成关键词表征,形成{关键词:词向量}的映射
词向量此表长度远远大于词库长度
针对词向量中的词相似度查询耗时较长,而且大多数词是通用词,并不是重点分析和需要的,也就没有必要进行检索和计算,构建词表的时候要考虑充分
关键词库或者说白名单库就显得非常重要了,此库直接影响检索返回的效果
c.数据固化存储
3)匹配技术:关键词匹配上一般包括精确匹配、模糊匹配、短语匹配,现在更多的是一种语义匹配
query:词汇-->word2vec(映射),转换成数值
search engine: 依据词汇相似度匹配、排序
a.遍历待分析数据,构建词汇单元(分词或者查找词库等方式,怎么快速怎么来),将词汇单元映射到向量
b.将query向量和已构建的词汇单元向量一一相似度匹配
c.匹配度算法选取
欧式距离:针对向量计算出的结果数值无法,不适用
夹角余弦:有方向性,可以归一化到[-1,1],可以用。此时要分析性能,针对文档的检索效率怎样,实际任务是否受影响
ohter:采用哈希分桶策略,最大的有点事效率非常高,原理:高相似性的数据更容易碰撞到一个桶里
具体的实施方法有待验证
如果是单机部署,也可以使用现有的开源搜索模块配合夹角余弦相似度匹配完成任务,毕竟有些查询引擎优化的都不错
d.排序操作
response: 词汇1,词汇2,...,词汇N
4)检索结果评估:检索结果和用户查询的相关度,或者理解为用户查询的满意度如何
p-r曲线:兼顾精度和召回
在返回的N个结果中做评估计算
还得根据实际情况设定

二、广告在群聊文本内的检测方法研究
1)单纯检测文本中的广告和非广告,采用一个二分类算法就能实现,如果是发文章或者专利,需要在算法和模型上有一定的创新性,还得要蹭一下当前的热度
2)主线思路就是想在前人基础上(bert)根据实际任务中加入改进方法,如:如何在原有模型上引入知识,一个很好的例子就是ERNIE,这样的得重新预训练,实际过程中压根不可能完成,放弃
那就在fine-tune在encoder输出层不直接分类,而是引入一个或多个结构,提高最终的分类性能,这是一个可行的办法
同时,本次参赛模型设计我是主张采用bert + other tricks(MT, AD, KD)方式去做,毕竟大力出奇迹,新技术用不用的好就是另外一回事了
今天快速浏览了一篇文章《A Simple but Effective Method to Incorporate Multi-turn Context with BERT for Conversational Machine Comprehension》,对我本次广告模型的设计和这次比赛都有借鉴意义
这篇文章是机器阅读理解,通过query和context history,给出一个正确答案和类型,这个答案是在context存在的,也就是做截取span of garagraph,重要的操作:
a.在模型结构上,对bert输出的features做concate形成全局特征G
b.使用BiGRU对G又做了一次特征抽取得到M1,G + M1 预测span开始索引
c.同样用BiGRU对M1又做一次得到M2,G + M2 预测span结束索引,同时预测答案类型
d.loss: 索引部分极大似然估计,类别是互熵损失;推理的时候预测(s, e)用的动态规划,这块的细节还不太明白
通过以上的例子,后期的结构设计就清晰多了

以上是关于多模态智能信息检索技术设计及分类模型设计的主要内容,如果未能解决你的问题,请参考以下文章

论文笔记基于知识图谱的智能问答系统研究与设计

成果互联网图像视频识别与检索系统

智能视频检索算法

大数据技术中自然语言识别与检索

深度丨人大宋睿华:自然语言理解的重大突破为何是多模态?

智能展示技术在淘宝封面图的应用