用帝国cms做视频网站,购买网站要多少钱,wordpress主题外贸网站,天津企业seo闲鱼是怎么让二手属性抽取准确率达到95%的#xff1f; 先上效果 图1 - 二手属性抽取算法效果Demo(1) 背景
闲鱼作为一款C2X的app#xff0c;站在商品发布的角度#xff0c;闲鱼商品相对于淘宝商品的特点有#xff1a;
轻发布导致商品信息不足 闲鱼采用图文描述的轻发布模… 闲鱼是怎么让二手属性抽取准确率达到95%的 先上效果 图1 - 二手属性抽取算法效果Demo(1) 背景
闲鱼作为一款C2X的app站在商品发布的角度闲鱼商品相对于淘宝商品的特点有
轻发布导致商品信息不足 闲鱼采用图文描述的轻发布模式迎合了用户快速发布的体验但也导致了商品结构化信息不足的问题。如果平台希望更理解商品到底是什么就需要算法去识别用户描述的图片和文本。商品具有独特的二手属性 不同于淘宝新品的一手属性例如品牌、型号、规格参数等二手属性指的是在商品入手一段时间后能够反映商品折损/保值情况的属性比如商品的【使用次数】、【购买渠道】、【包装/配件是否完整】等。 不同类目有该类目独特的二手属性比如个护美妆有【保质期】手机有【屏幕外观】、【拆修情况】服装类有【是否下过水】等。
问题和难点
二手属性抽取在NLP领域属于信息抽取Information Extraction问题通常的做法是拆解为命名实体识别NER任务和文本分类Text Classification任务。
二手属性抽取任务的难点有
不同的类目、不同的二手属性/属性簇需要构建不同的模型。如果使用有监督学习Bert家族打标工作会非常的繁重开发周期会变得很长。
解决方案
方法论
在当今NLP环境依旧是Bert家族或Transformer衍生的各种算法大行其道霸榜GLUE、CLUE等各大NLP榜单信息抽取任务也不例外所以笔者在本方案中的某些场景也使用了Bert家族。不过笔者认为没有一种算法在各种场景下都是全能的只有在给定领域、指定场景下最适用的算法。此外笔者总结了自己的一套属性抽取的方法论
句式相对固定或者句式受模板限制如文本描述模板是典型的时间地点人物事件某事某地某人做了啥事用NER建议方法CRF、BiLSTMCRF、Bert家族、Bert家族CRF等。句式不固定但领域/场景关键词相对固定或者有一些关键词模板、俗称、行话等用文本分类 近义词、近义表述不是特别多的情况≤几十种到上百种关键词呈对数正态分布/指数分布即有很多高频且集中的关键词建议方法正则表达式规则。近义词、近义表述非常多的情况≥几百种到上千种典型的如地名识别建议方法用Bert家族句式和词语都不固定典型的如社交评论/聊天的情感分析建议方法用Bert家族。
方案架构 图2 - 二手属性抽取方案架构图
图2 - 二手属性抽取方案架构图
NLP任务 如前所述将不同的二手属性识别需求拆解为文本多分类、多标签分类以及NER任务。文本多分类即“n选1”问题比如根据文本判断商品是否包邮二分类。多标签分类即同时进行多个“n选1”问题比如同时判断某手机商品的屏幕外观好/中/差和机身外观好/中/差。多标签分类通常的做法是对不同标签共享网络层并将损失函数以一定权重叠加由于多个标签之间有一定程度的联系效果有时候会比做多个单独的“n选1”问题更好同时由于是多个属性属性簇一起建模在训练和推断的时候也会更省事。NER即命名实体识别。建模方法
1. 人工打标阶段 由于打标的人工成本比较高需要设法利用集团的AliNLP进行辅助。方法是首先利用AliNLP的电商NER模型对输入文本进行解析。然后进行拆解对属于NER任务的二手属性如保质期/保修期/容量/使用次数/服装风格等可以直接定位到相关词性或实体的关键词进行BIO标注对属于分类任务的其它二手属性则可以在电商NER的分词结果基础上打标提高人工标注的效率。
2. 算法训练阶段 此为方案核心本方案训练算法主要通过3种途径
1使用Albert-Tiny建模采用主流对预训练finetune的方案。由于该模型推断速度更快用于对QPS和响应要求非常高的实时在线场景。对于NER任务也可以尝试在网络最后面接一层CRF或不接。 AlbertAlbert意指“A lite bert”名副其实它的优点在训练速度快。 Albert的源码相比Bert的源码基本如出一辙但网络结构有几点重要的区别
1. Word Embedding层做了因式分解在词向量上大大减少了参数量。设词表大小为V词向量长度为H对Bert词向量参数量为V*H对Albert先把词向长度量缩减为E再扩充为H参数量为V*EE*H由于E远小于HH远小于V用于训练的参数量得到锐减。
1. 跨层参数共享以albert-base为例albert会在12层之间共享每层的attention参数或全连接层ffn的参数默认是两者都共享。源码中通过tenorflow.variable_scope的reuse参数可以轻松实现。参数共享进一步减少了需要训练的参数量。 除此之外Albert还有一些训练任务和训练细节上的优化此处按下不表。 Albert依据网络深度不同分为 - Albert-Large/xLarge/xxLarge24层 - Albert-Base12层 - Albert-Small6层 - Albert-Tiny4层 一般来说层数越多训练和推断耗时都会越久。考虑到线上部署的实时性要求更快的推断速度本方案选择了最小的Albert-Tiny。其中文推断速度相对bert-base提高约10倍且精度基本保留数据引用自[github/albert_zh](https://github.com/brightmart/albert_zh)。
2使用StrutBert-Base建模采用主流对预训练finetune的方案。经测算在二手属性识别上它比Albert-Tiny准确率相对提升约1%到1.5%可用于离线T1场景。对于NER任务也可以尝试在网络最后面接一层CRF或不接。 **StructBert**为阿里自研算法优点在精度高[GLUE榜单](https://gluebenchmark.com/leaderboard)上已经排到第3名。 Word Structural ObjectiveStrutBert在Bert的MLM任务基础上加上了打乱词序并迫使其重构正确词序的任务论文中是随机抽取一个三元词组(trigram)进行打乱然后加上了如下公式作为MLM损失函数的约束。StrutBert的这个灵感也许来自于网上的一个段子“研表究明,汉字序顺并不定一影阅响读事证实明了当你看这完句话之后才发字现都乱是的”。 本方案之所以选择StrutBert是因为集团内有该算法在电商领域专属的预训练模型接口它依据网络深度不同分为
StrutBert-Base12层StrutBert-Lite6层StrutBert-Tiny4层
在离线T1场景下追求精度更高而对实时性无太大要求因此本方案选择了StrutBert-Base。
本方案之所以选择StrutBert是因为集团内有该算法在电商领域专属的预训练模型接口它依据网络深度不同分为
StrutBert-Base12层StrutBert-Lite6层StrutBert-Tiny4层
在离线T1场景下追求精度更高而对实时性无太大要求因此本方案选择了StrutBert-Base。
3使用正则表达式优点速度最快比Albert-Tiny还快10-100倍以上且在许多句式和关键词相对固定的二手属性上准确率比上面两种算法更高且易于维护。缺点非常依赖业务知识、行业经验和数据分析对大量正则模式进行梳理。
3. 规则修正阶段
识别结果归一化对于NER任务许多识别出来的结果不能直接使用需要做“归一化”例如某件男装衣服的尺码识别出来为“175/88A”那么应该自动映射到“L码”。某些二手属性之间可能会存在冲突或依赖因此在算法识别之后需要对识别结果依据业务规则进行一定修正。比如某商品卖家声称是“全新”但是同时又表明“仅用过3次”那么“全新”会自动降级为“非全新”99新或95新不同类目分级略有不同。
算法部署
离线T1场景通过ODPS(现名MaxCompute)UDF的方式进行部署即算法会通过Python写成UDF脚本模型文件则作为资源上传到ODPS上。在线实时场景模型通过PAI-EAS进行分布式部署数据交互通过iGraph一种实时图数据库和TPP完成。
算法评估
对每个类目的每个二手属性制定好评测的标准然后抽样一定量级的数据交由外包进行人工评估。评估工作通过对比人工识别的结果和算法识别的结果是否一致给出准确率、精确率、召回率等。
最终效果
准确率
本方案识别结果经过人工评估每个类目无论是准确率、精召率都达到了非常高的水平且误差值均远小于上线限制并已经上线应用在闲鱼主要类目的商品上。
应用场景后续展望
二手属性抽取的结果目前已应用的场景包括
定价场景聊天场景优质商品池挖掘搜索导购个性化商品推荐
后续展望
目前二手属性抽取总共覆盖闲鱼主流类目商品随着开发进行后续计划覆盖到全部类目。目前二手属性抽取主要依赖于文本识别闲鱼商品是图文描述后续可以考虑在图片上下功夫通过图像算法完善商品的结构化信息。利用和分析商品二手属性形成优质商品标准扩充优质商品池。
作者渐漓
原文链接
本文为阿里云原创内容未经允许不得转载