发新帖

在项目中愉快地使用tf进行头像/留言审核、素材分类去重.etc

[复制链接]
754 0

快来加入 TensorFlowers 大家庭!

您需要 登录 才可以下载或查看,没有帐号?加入社区

x
本帖最后由 wxf 于 2018-11-15 14:26 编辑

本人所在的项目是一个游戏项目,游戏本身以休闲竞技为主,数值最好的时候日活将近2kw(自卖自夸),有一些社交类的内容产出,比如用户生活照(头像)、留言等。初期实现了一套审核后台,主要是应急给客服进行照片和留言审核,客服做的工作很简单,就是去给头像和留言一条条检查是否有涉黄涉暴涉政的内容,然后打标签调接口审核。量最高时每天200w+的图片和超过2kw的留言数,给客服造成的压力可想而知。当时还没有接触tensorflow,不过令人欣慰的是一开始客服这边花费的大量人力反而为后期深度学习的应用提供了宝贵财富(继续自卖自夸)。

所以项目内部决定引入机器学习一开始也是出于减少成本的需求,目标就是提高头像/留言审核的实时性,并保持甚至提高审核的精度

起初因为没有人用过相关的深度学习框架或产品,查了一圈资料,和传统机器学习比较下来,深度学习的精度通常会更高,但是训练达到收敛需要的数据量也更多,但是因为我们不缺数据(再次庆幸),所以采用深度学习非常适合,各个框架比较下来,决定用tf,因为:

1. python api入门门槛低,底层c++保证性能。
2. 大谷歌产品,功能和维护都有保障,stackoverflow和github讨论也较多。
3. 完善的官方文档。
4. 虽然当时是1.0版本,但是配合dashboard,能够给训练过程增加可视化,减少可视化的额外工作。
5. preview中提到融合keras,可以进一步提高框架的易用性。
6. 之后在上海参加了tensorflow summit,对eager execution和分布式训练相关进展激动不已。

于是先从官方文档上的例子入手,对比跑了几个LR和深度学习的例子,了解到基于tf使用深度学习是多么的简单易用,精度相比传统机器学习方法是多么的高自信心提高不少。同时同步学习吴恩达的机器学习课程,视频教程的内容比较适合新手,一些推导过程非常清晰明了,但是我个人觉得最有价值的反而是课后习题,比如基于yolo的对象检测算法、基于卷积神经网络做人脸识别和人脸验证、将绘画风格迁移到照片上等。

基于吴恩达机器学习课程的编程练习里人脸验证这部分功能,发现比较适用于验证美术素材是否重复,或者风格是否太相似,因为游戏内的素材以“球形”皮肤为主,随着时间推移素材量越来越多,美术在设计的时候可能没有意识到这个素材和以前的某个素材风格很相近。具体实现原理是使用Inception网络,将96x96x3的原始图片转成128维的向量保存到h5文件,当有新的素材提交时,将新素材的128维向量和库中的列表一一对比,计算L2范数,作为相似度的一个度量,当“相似度”在2以内时,则认为素材太过相近。实际使用时,可能还需要经过人工审核的过程,但一般情况下准确度能达到95%以上。为了便于操作,我们基于KODExplorer和yii2框架进行了简单的二次开发,可以更简便的上传管理素材,见截图:

TIM图片20181113184646.png

为了便于线上部署和使用,实际的模型部署在了tf-serving,使用docker进行业务托管,使用uwsgi进行接口封装,相关代码:https://github.com/allenwxf/ART-MATERIAL-CLASSFICATION

基于Inception网络和ResNet网络的尝试,使用之前客服标注的用户照片信息以及从网络爬取的一些人物比如明星照片,训练出来的模型初步召回率达到了97%以上,准确度95%以上。

留言审核部分主要涉及文字,基于神经网络的处理方式一般是先把文字分词转成词向量矩阵,再通过基本的后向迭代训练就可以得到不错的结果了。我们一开始并没有采用深度学习的方式训练模型,而是利用结巴分词得到词向量,再基于td-idf基于关键词对留言进行审核,准确度能够达到90%以上。之后利用deep&wide模型,将每条留言转化为词向量和one-hot序列,训练之后准确度达到了97%以上。最初接触deep&wide模型也是在tensorflow官方公众号上推的一篇通过红酒品酒词预测价格的文章入手的,我自己依葫芦画瓢做了一些改进,通过品酒词和价格预测葡萄品种,模型训练好之后部署到docker tf-serving,再利用微信小程序简单做了个界面(请不要介意界面风格,纯后端):

微信图片_20181114112322.jpg


最近使用python的crawler库把wine.com上的酒标和相关数据都爬下来了,打算业余时间在红酒这块做一些有意思的应用,比如用户拍一张正在喝的酒标,推荐一些“臭味相投”的酒;用户上传一段品酒词,推荐一些风格相近的酒;用户哼一段小曲儿,猜心情推荐一些红酒;输入一款酒,和一些历史名画或者音乐结合一起来,做风格迁移等等,这个脑洞比较大。

总的来说,tensorflow让我觉得在使用上得心应手,而且特别有乐趣,感谢谷歌









本楼点评(2) 收起
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

主题

帖子

52

积分
快速回复 返回顶部 返回列表