闲鱼是怎么让二手属性抽取准确率达到95%+的?
图1 - 二手属性抽取算法效果Demo(1)
闲鱼作为一款C2X的app,站在商品发布的角度,闲鱼商品相对于淘宝商品的特点有:
二手属性抽取在NLP领域属于信息抽取(Information Extraction)问题,通常的做法是拆解为命名实体识别(NER)任务和文本分类(Text Classification)任务。
二手属性抽取任务的难点有:
方法论
在当今NLP环境,依旧是Bert家族(或Transformer衍生的各种算法)大行其道,霸榜GLUE、CLUE等各大NLP榜单,信息抽取任务也不例外,所以笔者在本方案中的某些场景也使用了Bert家族。不过笔者认为,没有一种算法在各种场景下都是全能的,只有在给定领域、指定场景下最适用的算法。此外,笔者总结了自己的一套属性抽取的方法论:
方案架构
图2 - 二手属性抽取方案架构图
图2 - 二手属性抽取方案架构图
1. 人工打标阶段 由于打标的人工成本比较高,需要设法利用集团的AliNLP进行辅助。方法是,首先利用AliNLP的电商NER模型对输入文本进行解析。然后进行拆解,对属于NER任务的二手属性,如保质期/保修期/容量/使用次数/服装风格等,可以直接定位到相关词性或实体的关键词进行BIO标注;对属于分类任务的其它二手属性,则可以在电商NER的分词结果基础上打标,提高人工标注的效率。
2. 算法训练阶段 此为方案核心,本方案训练算法主要通过3种途径:
(1)使用Albert-Tiny:建模采用主流对预训练+finetune的方案。由于该模型推断速度更快,用于对QPS和响应要求非常高的实时在线场景。对于NER任务也可以尝试在网络最后面接一层CRF或不接。 Albert:Albert意指“A lite bert”,名副其实,它的优点在训练速度快。
Albert的源码相比Bert的源码基本如出一辙,但网络结构有几点重要的区别:
1. Word Embedding层做了因式分解,在词向量上大大减少了参数量。设词表大小为V,词向量长度为H,对Bert,词向量参数量为V*H;对Albert,先把词向长度量缩减为E,再扩充为H,参数量为V*E+E*H,由于E远小于H,H远小于V,用于训练的参数量得到锐减。
1. 跨层参数共享:以albert-base为例,albert会在12层之间共享每层的attention参数或全连接层ffn的参数,默认是两者都共享。源码中通过tenorflow.variable_scope的reuse参数可以轻松实现。参数共享进一步减少了需要训练的参数量。 除此之外,Albert还有一些训练任务和训练细节上的优化,此处按下不表。
Albert依据网络深度不同分为: - Albert-Large/xLarge/xxLarge:24层 - Albert-Base:12层 - Albert-Small:6层 - Albert-Tiny:4层 一般来说,层数越多,训练和推断耗时都会越久。考虑到线上部署的实时性要求更快的推断速度,本方案选择了最小的Albert-Tiny。其中文推断速度相对bert-base提高约10倍,且精度基本保留(数据引用自[github/albert_zh](https://github.com/brightmart/albert_zh))。
(2)使用StrutBert-Base:建模采用主流对预训练+finetune的方案。经测算,在二手属性识别上,它比Albert-Tiny准确率相对提升约1%到1.5%,可用于离线T+1场景。对于NER任务也可以尝试在网络最后面接一层CRF或不接。 **StructBert**:为阿里自研算法,优点在精度高,[GLUE榜单](https://gluebenchmark.com/leaderboard)上已经排到第3名。
Word Structural Objective:StrutBert在Bert的MLM任务基础上,加上了打乱词序并迫使其重构正确词序的任务:论文中是随机抽取一个三元词组(trigram)进行打乱,然后加上了如下公式作为MLM损失函数的约束。StrutBert的这个灵感也许来自于网上的一个段子:“研表究明,汉字序顺并不定一影阅响读,事证实明了当你看这完句话之后才发字现都乱是的”。
本方案之所以选择StrutBert,是因为集团内有该算法在电商领域专属的预训练模型(接口),它依据网络深度不同分为:
在离线T+1场景下,追求精度更高而对实时性无太大要求,因此本方案选择了StrutBert-Base。
本方案之所以选择StrutBert,是因为集团内有该算法在电商领域专属的预训练模型(接口),它依据网络深度不同分为:
在离线T+1场景下,追求精度更高而对实时性无太大要求,因此本方案选择了StrutBert-Base。
(3)使用正则表达式:优点:速度最快,比Albert-Tiny还快10-100倍以上;且在许多句式和关键词相对固定的二手属性上,准确率比上面两种算法更高;且易于维护。缺点:非常依赖业务知识、行业经验和数据分析对大量正则模式进行梳理。
对每个类目的每个二手属性,制定好评测的标准,然后抽样一定量级的数据,交由外包进行人工评估。评估工作通过对比人工识别的结果和算法识别的结果是否一致,给出准确率、精确率、召回率等。
本方案识别结果经过人工评估,每个类目无论是准确率、精召率都达到了非常高的水平,且误差值均远小于上线限制,并已经上线应用在闲鱼主要类目的商品上。
二手属性抽取的结果目前已应用的场景包括:
作者:渐漓
原文链接
本文为阿里云原创内容,未经允许不得转载