文 / 杨照璐,花椒直播智能工程部算法工程师
郑世强,花椒直播智能工程部总监一、背景
随着花椒用户和主播用户的数量不断增加,一些非法用户(垃圾虫)利用花椒平台数据流量大、信息传播范围广的优势,通过各种多媒体手段(文本、图片、语音、短视频等)在用户个人资料信息(昵称,签名,头像等)及直播间聊天等场景散播垃圾信息,这些信息严重影响了用户的观看体验,甚至会导致用户流失、活跃度下降,此外一些情节严重的违法违规内容会给平台带来运营风险和负面的社会影响。
二、问题分析
本文主要以文本为对象,简要地介绍花椒平台在文本反垃圾方面所采用的文本垃圾拦截技术。目前平台上所接触到的文本垃圾信息基本上可以概括为以下几个类别:
垃圾广告:各类商品广告、诈骗广告等
色情内容:色情词汇、色情服务及低俗信息等
暴恐、政治敏感词: 暴恐涉政、违禁品等
竞品信息及其他信息等
对于平台初期数据量较少、垃圾信息形式单一的情况,采用人工审核的方式基本可以解决问题。但是随着平台业务的拓宽与发展,业务量迅速增加,仅依靠人工审核方式无法应对,这时需要借助一些规则策略和算法模型辅助人工审核,以减少人工审核工作量,提高审核效率。
简单的垃圾信息,可以通过设置规则进行关键词过滤和屏蔽,正则表达则可以发挥很大作用。但是发布者为了逃避拦截,通常都会对垃圾信息进行改造和伪装,比如拼音替换,同义词替换,象形字替换,嵌入表情字符,用表情代替字符,甚至是将文字顺序打乱。对于复杂的信息,其表达形式广泛、没有规律,仅仅通过规则过滤达不到效果,可借助精准的算法模型进行检测。
垃圾信息拦截是一个常见的文本二分类任务,是自然语言处理领域的一个基本任务,目的是推断出给定的文本的标签。二分类问题常见的评价指标有准确率 (Accuracy),精准率 (Precision),召回率 (Recall),F1-score 等。
三、文本分类算法介绍
1、传统文本分类方法
一般来讲传统机器学习文本分类任务过程包括文本预处理、特征提取、文本表示、训练分类器和分类性能评估。其中构建特征工程和分类建模方法是文本分类任务中最重要的两个环节。
文本的预处理包括文本分词、去除停用词(包括标点、数字和一些无意义的词)、词义消歧、统计等处理。中文与英文相比,在中文文本预处理过程中,首先要进行分词处理,而英文文本单词与单词之间通过空格即可分割,无需进行分词处理。
特征提取和文本表示目的就是将文本转化为计算机可以理解的向量形式。词袋模型 (Bag of Words) 是用于文本表示的最简单的方法, BoW把文本转换为文档中单词出现次数的矩阵,只关注文档中是否出现给定的单词和单词出现频率,而舍弃文本的结构、单词出现的顺序和位置。词频-逆向文件频率 (TF-IDF) 是一种在文本挖掘中广泛使用的特征向量化方法,主要衡量一个文档中词语在语料库中的重要程度。Word2vec 采用一系列代表文档的词语来训练 word2vec 权重矩阵,将每个词语映射到一个固定大小的向量。
分类器用的比较多的是 LR,SVM,MLP,GBDT 等,当然还有其他一些分类算法,这里不多赘述。
2、基于CNN的文本分类方法
随着互联网的普及,一些用户为求彰显个性,开始大量使用同音字、音近字、特殊符号等异形文字(火星文)。由于这种文字与日常使用的文字相比有明显的不同并且文法也相当奇异,目前平台上遇到的难以识别样本大多是数字、QQ、微信的变种、多是象形字符,不含语义、分词模型对这些符号无法处理而且文本都很简短。
2.1、Bad case 样本示例