音乐领域语义理解打分模型(1)

1.抽特征

一个query属不属于音乐,这和我们对音乐的理解有很大的关系,需要进行产品上的定义。如你会唱歌吗,刘德华,换一首音乐,如何让孩子爱上学习等,既可以属于音乐也可以不属于音乐。对音乐的理解最终落到标注数据上,继而来影响我们的打分模型给出高分或者低分。

我们对query进行了很多的清理、转换、知识查询、相似度计算、拼音转换、纠错、句型辅助等工作,所以要从里面找到对query是否归属于音乐领域有影响的特征。我们目前抽取了slot数、各slot抽取情况、slot的组合、整体相似度、资源热度、歌手职业、标签数、标签强度、主干query长度、音乐日志、句型得分、意图词得分等特征,特征还在增加。

服务为了配合抽特征的需要进行了改造,针对特定的deviceid,返回中间计算过程中的各特征值。

2.离线模型训练

在上机器学习模型前,我们是用人工规则来进行的打分,针对各种情况写了复杂的if-else,是一步步的决策过程,所以选打分模型时,自然选择了决策树(GBDT)。离线模型的训练使用了python xgboost。

标注数据:我们共标注了近5万条数据,音乐近2万,其他领域数据近3万做为反例。通过服务解析,将query转换成特征集,libsvm格式(label \t id:value \t id:value)。

0	0:0.0000	1:0.0000	2:0.0000	3:0.0000	4:0.0000	5:0.0000	6:0.5000	7:0.0000	..
0	0:0.0000	1:0.0000	2:0.0000	3:0.0000	4:0.0000	5:0.0000	6:1.0000	7:0.0000	..
1	0:1.0000	1:1.0000	2:0.0000	3:0.0000	4:1.0000	5:0.0000	6:0.7000	7:0.0000	..

训练集/测试集拆分:训练集占数据集的比例一般为2/3 - 4/5,并且需要保证训练集/测试集中的类别平衡(正负比例和数据集中的一致)。我们随机抽取了1/5的数据作为测试集。

调节参数:xgboost支持对eta(学习率)、max_depth(树的最大深度)、lambda(L2正则化因子)等,使用了模拟退火对参数进行调优,给每个参数指定起取值范围、步长。训练过程中,每次随机选择一个参数对其增加或减小一个步长,训练一个模型算出其在测试集上的精度做为模型的评价值。

样本补充:测试调节过程中,会碰到一些case特征没有被学到(想让这一类case打分高,却打了低分),这时就人工补充一定量的这类数据到训练集中,再重新训练模型。我是对没有学到的case给重复增加了10条。

另外:

gbdt支持一个样本丢失部分特征,对于不存在的特征,我们进行了丢弃,以免干扰选择。

为了保证特征名和特征索引的一致,在离线训练的时候,把特征统一存在了一个文件中;在线服务抽取特征时用了枚举定义。更好的办法,可以写一个thrift定义,保证在线离线的统一。

3.在线使用

xgboost提供的java版xgboost4j需要依赖底层本地实现的支持,用的过程中windows没有编译成功。由于xgboot导出的模型有可读的文本版本,就使用了组里自实现的加载模型决策树java代码。

booster[0]:
0:[wholeSim<0.80175] yes=1,no=2,missing=1,gain=9265.91,cover=18714.5
	1:[intentScore<0.95] yes=3,no=4,missing=3,gain=972.265,cover=12050.5
		3:[tagSim<0.6795] yes=7,no=8,missing=7,gain=465.15,cover=11553.5
			7:[rank<0.97265] yes=13,no=14,missing=13,gain=389.613,cover=11183.5

在模型打分后,保留了一些规则(如slot正向/负向得分,用于修复紧急case。

4.后续

后续会继续增加特征,另外想引入语言模型,对抽取的slot用entity名代替,然后来训练出一个word embedding或者其他的语言模型。

参考:http://xgboost.readthedocs.io/en/latest/python/python_intro.html#install-xgboost

时间: 2024-11-06 15:46:20

音乐领域语义理解打分模型(1)的相关文章

百度Android语音识别SDK语义理解与解析方法

百度语义理解开放平台面向互联网开发者提供自然语言文本的解析服务,也就是可以根据文本的意图解析成相应的表示. 为了易于人阅读,同时也方便机器解析和生成,意图表示协议采用 json 语言进行描述,采用 gb18030 编码. json 语言的基本概念: 1.属性名/属性值 即键值对(key-value) 2.数组 在 json 中是"[]"括起来的内容,数据结构为 ["value1","value2",...],取值方式和所有语言中一样,使用索引获取

nlp语义理解的一点儿看法

nlp领域里,语义理解仍然是难题! 给你一篇文章或者一个句子,人们在理解这些句子时,头脑中会进行上下文的搜索和知识联想.通常情况下,人在理解语义时头脑中会搜寻与之相关的知识.知识图谱的创始人人为,构成这个世界的是实体,而不是字符串,这从根本上改变了过去搜索的体系.语义理解其实是基于知识,关联,概念.人们在解答问题时,往往会旁征博引或者讲述语义相似的人们容易理解的知识,这是语义理解的过程.这种机制完全不同于人对图像或者语音的认识.CNN在图像或者语音领域取得成果是不足为奇的,因为生物学家目前已经对

提速1000倍,预测延迟少于1ms,百度飞桨发布基于ERNIE的语义理解开发套件

11月5日,在『WAVE Summit+』2019 深度学习开发者秋季峰会上,百度对外发布基于 ERNIE 的语义理解开发套件,旨在为企业级开发者提供更领先.高效.易用的 ERNIE 应用服务,全面释放 ERNIE 的工业化价值,其中包含 ERNIE 轻量级解决方案,提速 1000倍! 今年 7 月,百度发布持续学习语义理解框架 ERNIE 2.0,在共计 16 个中英文任务上超越BERT.XLNET,取得了 SOTA 的效果. ERNIE2.0 发布以来,ERNIE 产业化应用进程不断加速,易

微信公众平台新增语义理解接口

微信公众平台语义理解接口正式对外开放.通过语义接口,接收用户发送的自然语言请求,让系统理解用户的说话内容. 微信语义理解接口提供从用户自然语言输入到结构化解析的技术实现,使用先进的自然语言处理技术给开发者提供一站式的语义解析方案.该平台覆盖多个垂直领域的语义场景,部分领域还可以支持取得最终的展示结果.开发者无需掌握语义理解及相关技术,只需根据自己的产品特点,选择相应的服务即可搭建一套智能语义服务.结合语音识别接口,通过微信语音识别得到用户的语音信息之后,经过语义分析理解,得到用户需求,及时回复用

微信公众平台语义理解接口正式对外开放

siri是个不错的,对着手机说话就可以帮你设置闹钟找酒店等,现在微信也开始实现这些类似的功能了,微信公众平台语义理解接口正式对外开放. 微信公众平台新增语义理解接口 微信公众平台语义理解接口正式对外开放.通过语义接口,接收用户发送的自然语言请求,让系统理解用户的说话内容. 微信语义理解接口提供从用户自然语言输入到结构化解析的技术实现,使用先进的自然语言处理技术给开发者提供一站式的语义解析方案.该平台覆盖多个垂直领域的语义场景,部分领域还可以支持取得最终的展示结果.开发者无需掌握语义理解及相关技术

用Kotlin开发android平台语音识别,语义理解应用(olamisdk)

用Kotlin开发android平台语音识别,语义理解应用(olamisdk) http://blog.csdn.net/ls0609/article/details/75084994

微信语义理解接口的应用-股票查询

微信语义理解接口称为智能接口,但微信只是开了一半接口,剩下一半要求用户自己去对接业务.这个语义理解类似中文分词技术,优于模糊匹配,拿查股票为例,你说"东风汽车","东风汽车股票","东风汽车价格","查一查东风汽车当前价"返回的内容是一样的,因此语义理解和微信语音识别的配合是最好的,由于口语化,识别率问题,智能接口就有一定用武之地.查询的参数包括query(语音识别结果),city(股票不影响),category(stock)

CSS 设计彻底研究(三)深入理解盒子模型

第三章 深入理解盒子模型 盒子模型是CSS控制页面的基础.需要清楚“盒子”的含义是什么,以及盒子的组成.此外,应该理解DOM的基本概念,以及DOM树是如何与一个HTML文档对应的,在此基础上充分理解“标准流”的概念. 3.1 盒子的内部结构 padding-border-margin模型是一个极其通用的描述矩形对象布局形式的方法.这些矩形对象被统称为”盒子“,英文为”Box“. 模型 就是对某种事物的本质特性的抽象. 在CSS中,一个独立的盒子模型由content(内容).border(边框).

语音识别,语义理解一站式解决之二(android,olami)

转载请注明CSDN地址:http://blog.csdn.net/ls0609/article/details/72765789 语音在线听书demo:http://blog.csdn.net/ls0609/article/details/71519203 前言 国内语音识别技术已有多家,而olami不仅在语音识别上准确率较高,更重要的是在语义理解上十分强大,本文用olami sdk做了一个记账demo(记账部分代码参考开源代码),这个demo可以语音添加不同消费记录,查询当天,当月消费情况,删