关于SegmentFault:闲鱼是怎么让二手属性抽取准确率达到95的

52次阅读

共计 3784 个字符,预计需要花费 10 分钟才能阅读完成。

闲鱼是怎么让二手属性抽取准确率达到 95%+ 的?

先上成果

图 1 – 二手属性抽取算法成果 Demo(1)

背景

闲鱼作为一款 C2X 的 app,站在商品公布的角度,闲鱼商品绝对于淘宝商品的特点有:

  1. 轻公布导致商品信息有余 闲鱼采纳图文形容的轻公布模式,投合了用户疾速公布的体验,但也导致了商品结构化信息有余的问题。如果平台心愿更了解商品到底是什么,就须要算法去辨认用户形容的图片和文本。
  2. 商品具备独特的二手属性 不同于淘宝新品的一手属性(例如品牌、型号、规格参数等),二手属性指的是在商品动手一段时间后,可能反映商品折损 / 保值状况的属性,比方商品的【应用次数】、【购买渠道】、【包装 / 配件是否残缺】等。不同类目有该类目独特的二手属性,比方个护美妆有【保质期】,手机有【屏幕外观】、【拆修状况】,服装类有【是否下过水】等。

问题和难点

二手属性抽取在 NLP 畛域属于信息抽取(Information Extraction)问题,通常的做法是拆解为命名实体辨认(NER)工作和文本分类(Text Classification)工作。

二手属性抽取工作的难点有:

  1. 不同的类目、不同的二手属性 / 属性簇,须要构建不同的模型。
  2. 如果应用有监督学习(Bert 家族),打标工作会十分的沉重,开发周期会变得很长。

解决方案

方法论

在当今 NLP 环境,仍旧是 Bert 家族(或 Transformer 衍生的各种算法)大行其道,霸榜 GLUE、CLUE 等各大 NLP 榜单,信息抽取工作也不例外,所以笔者在本计划中的某些场景也应用了 Bert 家族。不过笔者认为,没有一种算法在各种场景下都是全能的,只有在给定畛域、指定场景下最实用的算法。此外,笔者总结了本人的一套属性抽取的方法论:

  1. 句式绝对固定,或者句式受模板限度,如文本形容模板是典型的工夫 + 地点 + 人物 + 事件(某事某地某人做了啥事),用 NER,倡议办法:CRF、BiLSTM+CRF、Bert 家族、Bert 家族 +CRF 等。
  2. 句式不固定,但畛域 / 场景关键词绝对固定,或者有一些关键词模板、俗称、行话等,用文本分类:
  3. 近义词、近义表述不是特地多的状况(≤几十种到上百种),关键词呈对数正态分布 / 指数分布(即有很多高频且集中的关键词),倡议办法:正则表达式 + 规定。
  4. 近义词、近义表述十分多的状况(≥几百种到上千种),典型的如地名辨认,倡议办法:用 Bert 家族
  5. 句式和词语都不固定,典型的如社交评论 / 聊天的情感剖析,倡议办法:用 Bert 家族。

计划架构

图 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 或不接。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,用于训练的参数量失去锐减。
  2. 跨层参数共享:以 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)。

(2)应用 StrutBert-Base:建模采纳支流对预训练 +finetune 的计划。经测算,在二手属性辨认上,它比 Albert-Tiny 准确率绝对晋升约 1% 到 1.5%,可用于离线 T + 1 场景。对于 NER 工作也能够尝试在网络最初面接一层 CRF 或不接。StructBert:为阿里自研算法,长处在精度高,GLUE 榜单上曾经排到第 3 名。

Word Structural Objective:StrutBert 在 Bert 的 MLM 工作根底上,加上了打乱词序并迫使其重构正确词序的工作:论文中是随机抽取一个三元词组 (trigram) 进行打乱,而后加上了如下公式作为 MLM 损失函数的束缚。StrutBert 的这个灵感兴许来自于网上的一个段子:“研表究明, 汉字序顺并不定一影阅响读,事证实明了当你看这完句话之后才发字现都乱是的”。

图 4 – Word Structural 的指标函数(援用自 StrutBert 论文)

本计划之所以抉择 StrutBert,是因为团体内有该算法在电商畛域专属的预训练模型(接口),它根据网络深度不同分为:

  • StrutBert-Base:12 层
  • StrutBert-Lite:6 层
  • StrutBert-Tiny:4 层

在离线 T + 1 场景下,谋求精度更高而对实时性无太大要求,因而本计划抉择了 StrutBert-Base。

本计划之所以抉择 StrutBert,是因为团体内有该算法在电商畛域专属的预训练模型(接口),它根据网络深度不同分为:

  • StrutBert-Base:12 层
  • StrutBert-Lite:6 层
  • StrutBert-Tiny:4 层

在离线 T + 1 场景下,谋求精度更高而对实时性无太大要求,因而本计划抉择了 StrutBert-Base。

(3)应用正则表达式:长处:速度最快,比 Albert-Tiny 还快 10-100 倍以上;且在许多句式和关键词绝对固定的二手属性上,准确率比下面两种算法更高;且易于保护。毛病:十分依赖业务知识、行业教训和数据分析对大量正则模式进行梳理。

  1. 规定修改阶段

==========

  1. 辨认后果归一化:对于 NER 工作,许多辨认进去的后果不能间接应用,须要做“归一化”,例如某件男装衣服的尺码辨认进去为“175/88A”,那么应该主动映射到“L 码”。
  2. 某些二手属性之间可能会存在抵触或依赖,因而在算法辨认之后,须要对辨认后果根据业务规定进行肯定修改。比方某商品卖家宣称是“全新”,然而同时又表明“仅用过 3 次”,那么“全新”会主动降级为“非全新”(99 新或 95 新,不同类目分级略有不同)。

算法部署

  • 离线 T + 1 场景:通过 ODPS(现名 MaxCompute)+UDF 的形式进行部署,即算法会通过 Python 写成 UDF 脚本,模型文件则作为资源上传到 ODPS 上。
  • 在线实时场景:模型通过 PAI-EAS 进行分布式部署,数据交互通过 iGraph(一种实时图数据库)和 TPP 实现。

算法评估

对每个类目标每个二手属性,制订好评测的规范,而后抽样一定量级的数据,交由外包进行人工评估。评估工作通过比照人工辨认的后果和算法辨认的后果是否统一,给出准确率、准确率、召回率等。

最终成果

准确率

本计划辨认后果通过人工评估,每个类目无论是准确率、精召率都达到了十分高的程度,且误差值均远小于上线限度,并曾经上线利用在闲鱼次要类目标商品上。

成果展现

图 5 – 二手属性抽取算法成果 Demo(2)

利用场景 & 后续瞻望

二手属性抽取的后果目前已利用的场景包含:

  1. 定价场景
  2. 聊天场景
  3. 优质商品池开掘
  4. 搜寻导购
  5. 个性化商品举荐

后续瞻望:

  1. 目前二手属性抽取总共笼罩闲鱼支流类目商品,随着开发进行,后续打算笼罩到全副类目。
  2. 目前二手属性抽取次要依赖于文本辨认,闲鱼商品是图文形容,后续能够思考在图片上下功夫,通过图像算法欠缺商品的结构化信息。
  3. 利用和剖析商品二手属性,造成优质商品规范,裁减优质商品池。

作者:渐漓
原文链接
本文为阿里云原创内容,未经容许不得转载

正文完
 0