首页 > 其他 > 详细

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

时间:2020-02-14 18:15:18      阅读:78      评论:0      收藏:0      [点我收藏+]

一、多模态智能信息检索技术设计
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)用的动态规划,这块的细节还不太明白
通过以上的例子,后期的结构设计就清晰多了

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

原文:https://www.cnblogs.com/demo-deng/p/12308199.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!