2018 年 8 月,美图宣布了“美和社交”的新战略,这一年多来,伴随着社交化转型的推进而激增的海量内容对美图原有的技术体系带来了巨大挑战:每天的 UGC 内容量激增、内容推荐池也随之迅猛增长。但是在增长的过程中,UGC 内容质量良莠不齐的问题也日益凸显,而原先的推荐模型、内容挖掘算法已很难满足性能上的要求。为了有效解决这些问题,美图智能化内容挖掘平台 K2 应运而生。
K2 平台集成了大量 NLP、CV 技术,能够更全面地理解内容,理解用户,极大的提升推荐、搜索的效果,同时还能辅助人工审核,提升公司内部运营效率,减少推荐系统、搜索、用户画像、数据分析等系统对各产品业务数据库的依赖。
在 QCon 全球软件开发大会(上海站)2019现场, InfoQ 有幸采访到了美图数据智能部内容挖掘平台负责人刘挺,刘挺介绍了美图在搭建内容挖掘平台 K2,以及在利用 AI 技术做好内容理解、提高搜索推荐效果、内部运营效率等方面的实践与思考。
以下为 InfoQ 与刘挺对话全文:
InfoQ:很高兴您今天接受我的采访,首先请您做一下自我介绍,您基于何契机加入美图,目前主要负责哪些工作内容?
刘挺:我加入美图的主要契机来源于美图提出了“美和社交”的战略,社交和内容社区得到了公司重点支持。这个领域涉及到内容的个性化推荐,而我此前做过比较长时间的内容理解工作。美图亿级别的用户体量来聚焦社交是个不错的机会,从图片处理工具转型图片社区也比较自然,基于这个背景下也就很顺理成章的加入了美图。
目前我在美图主要负责内容理解、推荐引擎、搜索、爬虫、反作弊等研发工作,工作内容主要是推动自然语言处理、计算机视觉等 AI 算法在内容理解中的应用,提升社区个性化推荐、搜索的效果和内部运营的效率。
InfoQ:从去年开始,美图开始了社交化转型战略,由此激增的 UGC 内容对美图原有的推荐算法、内容挖掘等技术体系带来了哪些挑战?内部有提出哪些解决方案?
刘挺:美图开始社交化转型之后,内容激增对我们的推荐算法和内容挖掘技术都带来了较大的挑战。
从推荐算法来说,每天的内容推荐池上涨了一个数量级,内容的长尾效应更加明显。如何给这些长尾内容提供曝光的机会?我们建立了 3 级滚雪球分发机制,通过不同等级的曝光次数来逐级筛选出高质量内容供用户消费;另外,很多工具用户转为社区用户后,用户行为日志上也涨了很多倍,我们的推荐模型需要更短的更新周期。而随着用户行为序列特征的加入,此前的 NFM 模型的计算量越来越大,越来越不能满足线上的性能要求,因此我们推出了 NFwFM,将 FwFM 引入到深度模型里面。
从内容挖掘来看,海量的内容每天发布在美图秀秀和美拍等社区产品上,这就要求我们的内容挖掘算法能够即时分析完这些内容,这对性能上提出了更高的要求,我们通过算法上的优化以及支持并行分析的内容挖掘平台统一实现了内容挖掘的实时计算,每天内容理解的数量最大可以支持亿级别。另外,内容量的上涨同时也带来了低质内容的增多,如何识别这些低质内容并将其在推荐候选集中过滤成为了当时内容理解需要重点解决的问题。
InfoQ:当时美图内容挖掘平台 K2 诞生的背景是怎样的?
刘挺:美图社交转型后,公司多款 APP 都有内容发布的入口,每天 UGC 内容量增长了几个数量级。此前在内容理解方面,我们的分类算法较少同时较为零散,主要通过封装成服务接口供使用方调用。如何更高效更主动去支持公司多款内容类的产品?如何减少推荐系统、搜索、用户画像、数据分析等系统对各产品业务数据库的依赖?针对这些问题,我们团队也进行积极的探索,在这个前提背景下内容挖掘平台 K2 应运而生。
InfoQ:在设计搭建 K2 过程中最大的技术难点是什么?
刘挺:在设计搭建过程中,虽然内容理解的底层算法是通用的,但是数据集和模型都是和业务紧密相关的。不同的产品内容侧重点不一样,各运营团队有各自的运营标签体系,如何复用底层算法同时又能适配运营需求是我们面临的最大技术难点。
InfoQ:内容挖掘平台 K2 的整体架构是什么样子的,主要包括哪些模块?
刘挺:内容挖掘平台 K2 的整体架构主要包括了算法服务平台、实时计算平台、离线计算平台、存储服务、特征查询以及监控和统计分析等几个子系统。
算法服务子系统由两部分组成,分别是离线部分和在线部分。离线部分主要负责模型的训练,通过爬虫、数据库、Hive 查询等方式获取训练数据集,在标注系统中人工做完标注后进入模型训练环节。收敛后的模型在线上真实数据集上预测后,输出到批量评估平台,由产品运营人员做效果评估。对于真实数据效果不佳的,需要重新调整标注数据集或者模型参数,做算法迭代训练。
算法服务子系统的在线部分的基础环境基于美图自研的 Matrix 容器平台,所有的 CPU 和 GPU 资源实现了 K8S+Docker 的全量容器化管理调度,支持 Mxnet、Tensorflow、Pytorch 等多种深度学习算法框架。算法服务容器化的好处是有效利用计算资源,算法工程师只需要关注模型效果,任何框架实现的算法都可以很灵活的集成到算法服务平台,同时也很容易实现服务的自动扩容和缩容。
服务层以上是美图 Matrix 容器平台实现的服务发现、负载均衡等功能,上层的网关层则负责服务的接口管理、权限控制以及服务治理等任务。
InfoQ:在处理每天产生的海量内容上,内容挖掘平台主要会做哪些工作,起到什么作用?
刘挺:实时计算子系统负责内容挖掘平台的整体处理流程,从消息总线中消费各产品的增删改数据,预处理后,并发调用 NLP 和 CV 的算法服务提取特征,在所有算法返回结果之后,再进行特征融合操作,将多种算法结果合并成统一的对外输出特征。最后所有算法挖掘特征和原始特征一起分发到 Kafka 消息队列、 MongoDB 数据库和 ES 特征索引。每天的增量数据会定时合并到全量的 Hive 表,供下游系统读取和分析。
离线计算平台作用主要是在新模型上线和线上模型优化迭代时,需要重新对历史内容做回溯分析。首先从 Hive 表中拉取需要的特定时间区间的数据并批量写入 Kafka 队列,通过配置文件指定需要重跑的算法模型,分析完成后,采用和实时计算平台类似的方式更新数据库。
内容挖掘平台输出的特征提供给推荐系统,搜索,用户画像和运营后台使用。在推荐场景下,基于标签和内容相似可以做相关推荐。内容挖掘平台识别的低质内容,可以直接在推荐候选池过滤掉。同时,内容特征可以输入给推荐排序模型,排序模型自动学习出各内容特征对最后推荐结果的影响权重。
另外,推荐算法可以根据内容分类,标签,聚类等特征,对最后的信息流做内容打散,保证推荐结果的多样性等等。
搜索场景下和推荐场景类似。内容挖掘也是用户画像的基础,画像系统根据内容的分类和标签特征,为浏览、评论和收藏这篇内容的用户打上对应的标签兴趣。根据标签做用户聚合,商业化部门可以用这些标签做精准广告投放。最后,内容挖掘平台可以辅助人工审核,协助内容运营人员做内容聚合、话题策划等等。
InfoQ:针对美图社区的图文、视频等 UGC 内容理解层面,主要采用了哪些理解维度?主要运用了哪些 NLP、CV 技术?
刘挺:我们的内容理解分为两个方向,首先是质量的维度,另外是内容符号化的标签特征和语义向量特征。其中标签是多维度的,包括了基础的一二三级分类和底层的实体标签,其它维度的属性标签则包含了像场景、时效性、性别、年龄、颜值等美图社区特色内容的标签体系。
技术方面,我们大量使用了 NLP 和 CV 各领域的算法:
l 内容质量维度,我们基于图像 Hash 方法做重复内容识别,使用 SSD 目标检测网络来实现水印的检测,基于 RankIQA,NIMA 来判断图像的画质和美学质量;
l 文本上我们则使用 LSTM+CNN 来识别文本垃圾广告,同时用 OCR 来识别图像和视频中的文字,并以此来判断是否是垃圾广告图片。基于各类单独的质量特征,我们用 Xgboost 训练了一个融合的优质内容分类模型;
l 内容特征维度,我们基于 TSM 网络来对视频做分类,使用常用的 Inceptionv3 以及轻量化的 Mobilenet 来作为主干网络,来实现各种分类任务;另外基于 SSH,MTCNN,Arcface 等网络来实现人脸检测和明星人脸识别;文本上则基于 Bert 模型实现了分类、NER 和文本生成等多个方面的任务;
l 无监督的聚类算法也在我们的质量和视觉相似相关的任务中应用。
InfoQ:目前在实操过程中,在用 NLP、CV 技术分析文本、图像时还有哪些难点?
刘挺:在实操过程中,我们发现 UGC 社区的实际内容和公开数据集差别很大,不少模型在公开数据集上表现很好,但是在实际数据集下效果不理想。主要原因在于 UGC 内容信息量少,很多都没有文本描述或者图文相关性很弱,或者过于随意,主题不明确,甚至存在有些人工都不知道该打什么样的标签的情况。
InfoQ:从技术的角度,如何判断内容的质量?
刘挺:内容的质量有一定的主观性,尤其是优质内容,每个人对优质的标准可能是不一样的。从技术上说来,我们基于运营人工标注的优质内容来训练分类模型,融合了原始特征和挖掘特征。而低质方面,我们通过多维度的低质特征来组合判断内容是否是低质的,包括了违规的过滤特征:重复和高相似内容,广告营销文本,广告图片,含水印内容,证件照片,App 截图,过于性感的图片,引起人感官不适的图片。另外也包含了低画质、美学模型得分、融合的质量模型等等。
InfoQ:在推荐系统方面,美图内容挖掘平台的推荐流程是怎样的,针对排序环节,在模型、算法上有何创新之处,怎样保证推荐效果及实现长期留存用户的目标?
刘挺:美图内容挖掘平台主要负责将内容原始特征和挖掘特征输出给个性化推荐引擎。
整个推荐过程分为 召回和排序两个阶段,召回算法有 DNN、ItemCF、聚类召回、关注召回、搜索召回、地域召回等,排序算法经历了 LR、NFM、NFwFM 到目前的 Multi task NFwFM。
推荐效果上,针对于新用户,我们会利用机型、地域、注册引导用户兴趣选择、推关注等召回尽量提供符合用户感知的内容,并且根据用户的点击和跳过等行为,推荐算法实时响应影响下一次刷新的内容。针对老用户,根据用户历史点击、收藏、评论等行为及用户画像推荐符合用户兴趣的内容,并且会做一些兴趣探索的工作,给用户以惊喜感。
留存方面影响的因素比较多,就算法来说首先提供给用户感兴趣的内容,及时捕捉用户的短期兴趣,除此之外,也要不断探测用户的新兴趣,避免过度推荐。另外保证内容的多样性,长期来看这些措施对用户的长期留存是有有益的。
InfoQ:个性化推荐是目前社交产品发展的趋势,实现千人千面精准推荐,做好内容理解非常关键,您认为未来在内容理解上,哪些技术比较有发展潜力?
刘挺:应当说个性化推荐已经不是社交产品发展的趋势了,而是成为了标配。在内容理解方面,主要是依赖于 NLP 和 CV 领域的算法技术。从 NLP 来说,预训练的语言模型应用会更加普遍。从 ELMO,GPT,Bert 到 XLnet,做 NLP 不再像以前那样为数据集发愁,通过这些深度的预训练模型,可以更高效的在不同的场景下做迁移学习。另外,知识图谱也是极具潜力的方向,它包含了实体之间丰富的语义关联,可以提升推荐的精准性、多样性和可解释性。从 CV 来说,5G 的普及会带来更清晰更丰富的视频内容,且能保证传输的低延迟,精细化的视频内容理解是未来的重要方向,另外结合了文本、图像、视频和音频等多模态的深度学习算法未来在内容理解领域发挥更重要的作用。
InfoQ:多模态技术在美图的运用实践情况如何?
刘挺:多模态技术在美图内容理解已有简单的应用,我们根据文本和图像等各独立的模型的输出结果做基于决策和模型的融合。这种后融合方式与前面的各模态的表征模型是独立的,能达到的效果有限。我们现在正在尝试将多模态内容联合起来一起做训练,这个会尽快在我们的内容挖掘平台中落地。
InfoQ:接下来,您所在的部门和团队还将有哪些重点发展的规划?
刘挺:我所在的部门是美图数据智能部,主要负责美图大数据和 AI,通过用户画像、推荐算法、内容理解、大数据等,对公司的产品、技术、运营、商业化等赋能。目前我们部门会重点发力于数据中台和推荐中台的建设,整合内部的所有数据和算法资源,为公司的“美和社交”战略的实施提供强有力的技术保证。
嘉宾介绍:
刘挺,美图数据智能部内容挖掘平台负责人,目前主要负责美图社区内容挖掘、推荐引擎、搜索、爬虫和反作弊等研发工作。致力于 NLP、CV 等 AI 算法在内容理解的应用,提升社区个性化推荐、搜索的效果和内部运营的效率。刘挺在内容理解和推荐领域有丰富的算法和工程积累以及团队管理经验。
评论