用AI说再见!“辣眼睛”的买家秀

阿里妹导读:提起买家秀和卖家秀,相信大家脑中会立刻浮现出诸多画面。同一件衣服在不同人、光线、角度下,会呈现完全不同的状态。运营小二需从大量的买家秀中挑选出高质量的图片。如果单纯靠人工来完成,工作量过于巨大。下面,我们看看如何使用算法,从海量图片里找出高质量内容。

说到淘宝优质买家秀内容挖掘,必须从买家秀和卖家秀说起。我们总是能在卖家秀和买家秀中找到强烈反差,比如这样:

这样:

又或者这样:

买家秀和卖家秀对比这么一言难尽,那还怎么让运营小二们愉快地玩耍?出于运营社区的需要,运营的小二们得从当前的买家秀中抽取出一批高质量的内容,作为社区的启动数据。

找到高质量的买家秀有那么难吗?就是这么难!这不,运营的小二们碰到了以下几个问题:

买家秀质量良莠不齐

淘宝海量的买家秀无疑都很难入得了运营小二们的法眼,以业务维度进行筛选的买家秀,审核通过率普遍不足三成。这意味着,在海量的买家秀中,能被运营小二们看对眼的,无疑是凤毛麟角。

审核标准严苛

咨询了运营小二,他们要求图片视频必须要美观,有调性,背景不凌乱,不得挡脸,光线充足,构图和谐,不得带有明显的广告意图,以及等等等等……

这么多要求,难怪挑不着!

审核工作量巨大

由于运营小二们审核的买家秀中优质买家秀很少,不得不将大量的时间和精力花费在了审核低质量买家秀上。

有鉴于此,用机器帮助挖掘优质内容刻不容缓。

优质内容挖掘方案

优质内容挖掘的整体方案如下:

全量UGC(User Generated Content)是指所有含图或含视频的买家秀。过审UGC是指最终审核通过的高质量买家秀,加精UGC是指商家认可的买家秀,普通UGC则是上述两种情况以外的其他买家秀。

我们的核心目标就是要挖掘出丰富而多样的优质UGC。

UGC质量评估模型

运营人员在审核买家秀时,通过综合判断买家秀的图片质量和文本内容等方面的因素,来决定是否审核通过。这促使我们直观地将将问题转化为一个分类问题。

1、特征的选择

我们首先采用了UGC的用户特征、商品特征和反馈特征等统计特征(详见下表),通过GBDT模型来预估UGC的内容质量,并初步验证了将UGC质量评估任务转化为分类问题是可行的。

2、分类问题的转化

一个非常直观地感受是,将审核通过的数据标记为1,审核未通过的数据标记为0,将问题转化为二分类问题。但在实际训练中,我们发现,将审核通过的数据标记为2,将运营审核未通过(商家已加精)的数据标记为1,将商家未加精的数据标记为0,把问题转为三分类问题比把问题转化为二分类问题得到了更好的效果。原因在于,审核人员在原来的链路中只审核了商家加精的数据,在此基础上审核通过与否;而为数众多的商家未加精的数据没有审核到,因此三分类更贴近于真实场景,因此表现更佳。

通过GBDT模型的训练,在全量UGC数据中进行预测,挖掘出了约400万优质UGC。自查后发现,这一批数据能挖掘出部分优质UGC,准确率在50%左右,缺点在于图片质量往往不够美观(即使较为贴近用户的生活场景)。

3、图片语义特征的引入

在与业务同学的交流过程中,我们发现,业务同学需要极高质量的UGC内容,以便营造出良好的社区氛围,让用户在洋葱圈中找到对于美好生活的向往,其核心标准就是宁缺毋滥。在充分理解了业务同学的要求,拿到图片数据后,对于图片质量的评估势在必行。

一个较为直观的方案就是,通过CNN模型训练,进行图片质量的评估。

增加图像特征后,通过对ImageNet预训练的ResNet50进行fine-tuning,模型表现有了极大提升,与原有链路相比,审核通过率提升了100%以上。

其中含小姐姐的UGC业务同学的认可程度较高(小姐姐们更乐意晒单,更乐意发买家秀,质量也更高),而针对不含小姐姐的长尾类目,业务同学认为主要存在图片无美感和图片不相关两类问题。

图片无美感的问题主要是由于,CNN更擅长捕捉图片的语义信息,而对于美学信息不敏感。

4、美学特征的引入

在图片美感方面,目前有一份较为优秀的数据集——AVA Database(A Large-Scale Databasefor Aesthetic Visual Analysis, 参见 Perronnin F ,Marchesotti L , Murray N . AVA: A large-scale database for aesthetic visualanalysis[C]// 2012 IEEE Conference on Computer Vision and Pattern Recognition.IEEE Computer Society, 2012.)。

AVA Database是一个美学相关的数据库,包含25万余张图片,每张图片包含语义标注(如自然风光、天空等)、图片风格标注(如互补色、双色调等)和图片美感评分(由数十到数百人评出1-10分)。

在 Zhangyang Wang, Shiyu Chang, Florin Dolcos, Diane Beck, DingLiu, and Thomas S. Huang. 2016. Brain-Inspired Deep Networks for ImageAesthetics Assessment. Michigan Law Review 52, 1 (2016) 一文中提出了Brain-inspired Deep Network,其网络结构如下:

其核心思想是,通过AVA数据集提供的图片风格标签,学习图片风格的隐藏层特征,将图片风格的隐藏层特征和图片经过HSV变换后的特征结合起来,以AVA数据集提供的图片美感分为监督,学习图片的美感特征。

在此基础上,最终在UGC质量审核模型中采用下述结构评判UGC的质量:

以AVA数据集提供的图片风格标签和美感评分进行预训练,通过Brain-inspiredDeep Network提取图片的美感特征;通过ResNet提取图片的语义特征;通过深度模型刻画统计特征;最后将三种特征拼接起来综合预测UGC的质量。

引入美学特征后,验证集上模型的准确率、召回率和F1值均得到了提升,ABTest显示,与原有模型相比,审核通过率提升6%以上。

脏数据处理

除了业务同学提出的问题,在自查过程中,发现目前挖掘出来的UGC内容中仍有以下脏数据:

1、评论倾向判定

针对差评UGC,利用现有的组件进行情感分析,发现并不能很好地挖掘出差评评论,容易误伤。基于此,取过审UGC的评论和UGC中的差评进行训练,在验证集上F1值高于0.9,但由于实际预测的数据不同(忽视了中评等),导致容易误判(如将商品名称等判断为差评)。在此基础上取过审UGC的评论、UGC好评、中评、差评分为四档进行训练,在验证集上F1值稍低,但由于训练数据更贴近于真实场景,在实际预测中效果更好;目前基本解决了差评UGC的问题,实际自查过程中,没有再看见差评UGC。

在实际的模型选择上,Attn-BiLSTM(带attention的双向LSTM)效果好于TextCNN(F1score约相差3%),分析原因在于:TextCNN的优势主要在于捕捉局部特征,而很多文本虽然含有吐槽性段落(如批评物流慢等),但整体仍然是对卖家商品的肯定。

2、N-Gram过滤

针对套路评价UGC,通过全局比较UGC的文本内容,将被多名用户重复使用的模板UGC过滤掉。

针对重复评价UGC,通过判断UGC文本内容中重复的2-gram、3-gram、4-gram,结合文本长度和文本信息熵进行过滤。

3、OCR及图像Hash过滤

针对牛皮藓图片,一部分采用了OCR识别和牛皮藓识别进行过滤。

针对盗图、网图UGC,将图片表示为哈希值,通过全局判断哈希值在不同买家、不同卖家间的重复次数,进行过滤。在过滤此项的过程中,我们也发现,买家秀中盗图、网络图的现象较为普遍,很多肉眼看似原创的内容也涉及盗图和网图;此项过滤掉了大多数的UGC。

无关图识别

解决了上述问题后,仍然较为显著的问题是无关图的问题。

无关图的出现原因较为复杂,表现类型也非常多样;既有上述提到的盗图和网络图,也有用户随手拍的风景图,还包括动漫截图等各式各样和商品无关的图片。

一方面,无关图以盗图、表情包、网络图等为主,通过哈希值过滤,能够过滤掉一批无关图;另一方面,即使过滤以后,预估仍然存在10%-15%左右的无关图。这部分无关图的解决较为复杂。

目前所采用的方案是,将盗图、表情包、网络图等重复图片作为负样本,将过审UGC图片作为正样本,通过ResNet提取图片特征,将类目通过embedding作为类目特征,将用户行为(发表重复图的数量和比例)作为用户特征,判断该UGC的图片是否是无关图。

就这样,大家终于又能愉快地欣赏美美的买家秀了~~

划重点

在此分享一些心得体会,希望能对大家有帮助:

数据强于特征,特征强于模型;贴近真实场景的数据对提升任务表现贡献巨大;

如果确实缺乏数据,不妨尝试快速标注数千条数据,可能取得超出预期的效果;

对ImageNet等数据集预训练的模型进行fine-tuning可以在小数据集往往能取得更好的问题;

通过图像翻转、旋转、随机裁剪等方法进行数据增强,可以提升模型泛化能力。


原文链接
本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/519729.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql相关

查询指定时间相近的记录SELECT * abs(UNIX_TIMESTAMP(t.create_time)-UNIX_TIMESTAMP(2020-06-04 10:10:39)) as min from t_video_history t WHERE t.ip 10.0.5.124 GROUP BY min asc limit 1查询一个月之前的数据 select * from t_video_history t where date_format(t.cr…

云+X案例展 | 电商零售类:WakeData助力叁拾加数字化变革

本案例由WakeData投递并参与评选,CSDN云计算独家全网首发;更多关于【云X 案例征集】的相关信息,点击了解详情丨挖掘展现更多优秀案例,为不同行业领域带来启迪,进而推动整个“云行业”的健康发展。在新零售时代下&#…

linux环境安装Kafka最新版本 jdk1.8

文章目录一、环境分布二、实战1. kafka下载2. 解压3. 配置4. 编写启动脚本5. 编写关闭脚本6. 赋予脚本可执行权限7. 脚本使用案例一、环境分布 软件版本jdk1.8kafkakafka_2.13-2.5.0 二、实战 kafka官网地址: http://kafka.apache.org/downloads 1. kafka下载 …

BeanUtils对象之间的复制

1、maven依赖<dependency><groupId>commons-beanutils</groupId><artifactId>commons-beanutils</artifactId><version>1.9.4</version> </dependency>2、常用API // 把orig对象copy到dest对象中. public void copyProperties…

基于泛型编程的序列化实现方法

写在前面 序列化是一个转储-恢复的操作过程&#xff0c;即支持将一个对象转储到临时缓冲或者永久文件中和恢复临时缓冲或者永久文件中的内容到一个对象中等操作&#xff0c;其目的是可以在不同的应用程序之间共享和传输数据&#xff0c;以达到跨应用程序、跨语言和跨平台的解耦…

两大硬件设计被OCP官方接受,腾讯成国内互联网公司第一家

刚刚获悉&#xff0c;腾讯在光网络设备和数据中心领域的两大硬件自研设计“OPC-4”和“TMDC”顺利通过OCP&#xff08;Open Compute Project&#xff09;审核并正式接受为官方开源贡献。这是腾讯在硬件领域的开源设计首次被OCP官方正式认可&#xff0c;同时&#xff0c;腾讯也成…

java 集成kafka单机版 适配jdk1.8

文章目录一、环境分布1. 版本声明2. 依赖2. case测试2. case2测试一、环境分布 1. 版本声明 linux服务器软件版本jdk1.8kafkakafka_2.13-2.4.0注&#xff1a;建议版本和应用依赖的客户端版本依赖保持一致&#xff0c;如果需要更高版本&#xff0c;可以尝试 但是有一点&#x…

微服务架构下,解决数据一致性问题的实践

随着业务的快速发展&#xff0c;应用单体架构暴露出代码可维护性差、容错率低、测试难度大和敏捷交付能力差等诸多问题&#xff0c;微服务应运而生。微服务的诞生一方面解决了上述问题&#xff0c;但是另一方面却引入新的问题&#xff0c;其中主要问题之一就是&#xff1a;如何…

2019阿里云开年Hi购季满返活动火热报名中!

2019阿里云云上采购季活动已经于2月25日正式开启&#xff0c;从已开放的活动页面来看&#xff0c;活动分为三个阶段&#xff1a; 2月25日-3月04日的活动报名阶段、3月04日-3月16日的新购满返5折抢购阶段、3月16日-3月31日的续费抽豪礼5折抢购阶段。 整个大促活动包含1个主会场…

mybatis中resultType取出数据顺序不一致解决方法

原来我的查询返回resultType “map” &#xff0c; 也就是这个map&#xff0c;打乱了顺序。因为map并不能保证存入取出数据一致。 解决方法&#xff1a;resultType "map" 改为 resultType"java.util.LinkedHashMap"

2019云计算高光时刻:乱云飞渡 传统IT大溃败

前言&#xff1a;2019年&#xff0c;物理机最后一张王牌也败给了云计算&#xff0c;无论从成本还是性能的角度&#xff0c;都没有不选云计算的理由&#xff0c;这是一个时代的终结。 2019的云计算市场格局&#xff0c;依旧是马太效应凸显、大者恒大的趋势继续&#xff0c;但在…

java 集成 kafka 0.8.2.1 适配jdk1.6

文章目录一、版本说明二、实战2.1. 依赖2.2. 生产者代码2.3. 消费端代码2.4. 测试三、小伙伴疑难解答3.1. 首先新建一个maven项目3.2. 把我的依赖和代码复制过去3.3. 把我写的case调试通3.4. 找到左边External Libraries3.5. jar处理3.6. 打开非maven项目&#xff0c;添加jar3.…

阿里云MWC 2019发布7款重磅产品,助力全球企业迈向智能化

当地时间2月25日&#xff0c;在巴塞罗那举行的MWC 2019上&#xff0c;阿里云面向全球发布了7款重磅产品&#xff0c;涵盖无服务器计算、高性能存储、全球网络、企业级数据库、大数据计算等主要云产品&#xff0c;可满足电子商务、物流、金融科技以及制造等各行业企业的数字化转…

Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel

自 Spring Cloud 官方宣布 Spring Cloud Netflix 进入维护状态后&#xff0c;我们开始制作《Spring Cloud Alibaba迁移指南》系列文章&#xff0c;向开发者提供更多的技术选型方案&#xff0c;并降低迁移过程中的技术难度。 第一篇&#xff0c;我们对Hystrix、Resilience4j 和…

util中注入service

Autowiredprivate GovCustomerService service;private static GovCustomerService govCustomerService;PostConstruct //完成对service的注入public void init() {govCustomerService service;}

linux环境安装 kafka 0.8.2.1 jdk1.6

文章目录一、环境分布二、实战1. kafka下载2. 解压3. 配置4. 编写启动脚本5. 编写关闭脚本6. 赋予脚本可执行权限7. 脚本使用案例三、Config配置四、Consumer配置五、Producer配置很多小伙伴问我&#xff0c;为什么不用最新版本的kafka呢&#xff1f;关于这个问题&#xff0c;都…

元旦限时特惠,耳机、书籍等大降价

戳蓝字“CSDN云计算”关注我们哦&#xff01;今天是12月31日离2020年仅有不到一天的时间你们的2019年目标都实现了吗&#xff1f;在这一年你写了多少行代码改了多少个bug呢&#xff1f;2020年的愿望是否也是希望自己写的代码bug能少一些&#xff1f;小编的2020年希望能买到更多…

深入解读MySQL8.0 新特性 :Crash Safe DDL

前言 在MySQL8.0之前的版本中&#xff0c;由于架构的原因&#xff0c;mysql在server层使用统一的frm文件来存储表元数据信息&#xff0c;这个信息能够被不同的存储引擎识别。而实际上innodb本身也存储有元数据信息。这给ddl带来了一定的挑战&#xff0c;因为这种架构无法做到d…

mysql查询包含字符串(模糊查询)

mysql查询包含字符串更高效率的方法一、LOCATE语句SELECT column from table where locate(‘keyword’, condition)>0二、或是 locate 的別名 positionSELECT column from table where position(‘keyword’ IN condition)三、INSTR语句SELECT column from table where ins…

ant编译web项目

文章目录1.下载ant2. 解压ant3. 配置an环境变量4. 验证二、编译项目2.1. 新建一个build.xml2.2. 编译项目测试1.下载ant 官网链接&#xff1a; https://ant.apache.org/srcdownload.cgi 2. 解压ant 3. 配置an环境变量 4. 验证 ant -v二、编译项目 2.1. 新建一个build.xml…