基于海量url数据识别视频类网页
2020-5-18 11:28:8 Author: mp.weixin.qq.com(查看原文) 阅读量:2 收藏

一、背景介绍

1、业务场景和现有数据

我们曾接到监管方的需求,想让我们帮他们找出归属地是深圳的公司旗下的网站中,包含明显视频播放内容的网站及网站对应的示例网页,从而方便他们对从事网络视听业务的网站进行监管。

我们通过业务积累,积累了几十亿上百亿的大量url数据,并且通过能力建设,积累了域名-公司和公司-地域的对应关系表。我们的目标是通过已有的这些数据,完成监管单位要求的对视频类网页进行识别的任务。

图1 符合要求的网页示例图

2、方案探讨

目前较少有专门针对视频类网页识别方面的研究,但是有针对网页内容进行敏感性检测等方面的研究。大部分类似网页识别方面的研究主要是有以下三种方法。


第一种方法是寻找构成页面的html或css等代码方面的规则。

第二种方法是依靠是页面本身包含的文字、图像等信息,通过关键词或其他算法完成识别。

第三种方法是解析http请求报文,通过获取报文信息达到识别的目的。

以上提到三种的技术方案虽然也是网页识别相关的研究,但是直接应用在视频类网页识别检测任务中效果并不好,主要有以下原因。

单纯的页面代码方面的规则很难同时保证较高的准确率和召回率。仅仅获取页面中的文字、图像很难结合算法对视频类网页进行有效的识别,而直接获取页面中的视频流又难以确定该视频是否占据页面主要内容且该页面是否具有完整的视频播放展示,而且直接获取视频流需要较长的等待时间,难以应用在海量数据的基础上。直接解析http请求报文同样存在无法判断所获得的是否是浏览网页者真实看到的内容的这一问题。

因此我们要解决的关键问题是从海量url中模仿人类视觉识别出以视频为主要页面内容的网页,从而对从事网络视听业务的网站进行监管。

二、方案实现细节

1、整体框架和流程

图2 系统框架图

如图2的系统框架图所示,整个系统主要由三个模块组成,分别是深圳属地url初筛模块、视频网页规则粗筛模块和视频网页截屏及CNN识别模块。

简单来说,就是先通过深圳属地url初筛模块筛选出海量的待检测目标url,然后通过视频网页规则粗筛模块过滤得到少量待检测的url,最后通过视频网页截屏及CNN识别模块对url做精细化识别分类。

图3 系统流程图

图3的系统流程图展示了整体的系统流程,对各部分模块进行了展开。可以看出,深圳属地初筛模块主要是先筛选深圳属地的公司,再找出其对应的url。视频网页规则粗筛模块主要包括了爬虫、html标签粗筛和title关键词粗筛部分。视频网页截屏及CNN识别模块主要包括截屏、训练模型和模型识别几个部分。

2、深圳属地url初筛模块

该模块的主要目的是筛选出需要操作的全量目标url,简单来说就是针对url的属地筛选出属地为深圳的url。一般来说,很难直接获取url的属地信息,但是我们可以提取每个url的域名,然后通过连接域名和公司对应表,间接得知url和公司的对应关系。


因此我们可以过滤出归属地为深圳或公司名中包含深圳的公司,查找出这些公司对应的域名及其域名对应的url链接,由此得到全量的目标url。

3、视频网页规则粗筛模块

该模块的主要目的是通过规则粗筛降低后面模块要处理的数据量级,因为采用网页截屏及CNN识别需要花费较长的时间,如果数据量级太大,那么需要花费的时间太长。

因此视频网页规则粗筛模块需要保证接近于100%的召回率,但是精确率却不需要保证,只要能大大降低待检测url的数量就可以了。

本方案主要基于两种规则对视频网页进行初筛,分别是基于html的标签规则和基于网页标题的关键词匹配规则。

通过大量的观察和实验可知,目前绝大部分包含可播放的视频的页面中视频部分对应的html标签都是<video>标签,<video>标签中包含的内容是播放视频的主体。

如图4所示,<video>标签正确代表了网页中视频的主体部分。

图4 <video>标签正例示意图

但是有一些情况下有video标签但没有视频播放主体,如图5所示。

图5 <video>标签负例示意图

而且<video>标签并不能涵盖所有可能包含视频的页面,因为有一些视频页面可能采用其他标签比如<object>、<embed>标签等,或仅仅采用视频链接嵌入方式,点击播放会跳转到其他链接。因此<video>标签只能筛选出一部分网页。

为了对以上的视频网页的类型和数量做补充,采用了基于网页标题的关键词匹配规则来增加所覆盖的视频网页的数量。简单来说,就是匹配<title>中包含视频类关键词的页面。通过这一方法可以显著增加视频类网页的覆盖度。

通过以上两种规则结合,视频网页的召回覆盖度可达到90%以上,同时待检测网页数量降低了3个数量级。

4、视频网页截屏及CNN识别模块

本小节介绍视频网页截屏及CNN识别模块的具体实现细节。

视频网页截屏方面利用程序自动打开浏览器并截屏,一般来说打开浏览器需要3至6秒,这也是该模块耗时的主要部分。由于有一些网页中视频部分可能在偏下部分,在这种情况下浏览器采用100%或更大缩放比例的话,截屏所截取的内容不包含或不能完整包含整体视频内容,因此选择了67%这样一个比较适中的浏览器缩放比例。截屏图片保存为RGB三通道图像。

由于需要模拟实际打开网页的操作并判断该界面是否是以视频内容为主,因此最合适的方法就是采用能模拟人眼识别的图像识别方法。


CNN图像识别部分采用了一个比较简单的自定义模型,由于本场景的分类任务并不复杂,主要是判断网页是否以视频为主要内容,因此在满足需求的情况下简单模型可能用性更强。

模型结构如图6所示,输入是一个三通道的RGB图像,后面连接的结构分别是3*3的64通道的卷积层、3*3步长为2的最大池化层、3*3的32通道的卷积层、3*3步长为2的最大池化层、3*3的16通道的卷积层、3*3步长为2的最大池化层、两个相同的128的全连接层、一个softmax分类层。

图6 自定义CNN图像分类模型结构图

其中每个卷积层都经过一个relu函数操作,每个最大池化层都经过一个lrn函数操作。图像经过这样一个CNN分类模型,就可以根据其输出结果是0或1来判断其是否是以视频为主要内容的网页。

5、训练集构造和模型训练过程

训练该模型需要对应的视频网页截图训练集,目前网上没有公开的网页截屏图片,因此需要自己构造训练集。这里采用的方法是首先在百度视频搜索栏搜索任意关键词,然后得到一个视频搜索列表页。记录该搜索列表的url地址,以该url地址为入口,使用爬虫程序依次访问这些页面,然后使用程序自动截屏并将截屏保存为图片。

由于这个列表页的每一项点进去都是一个视频页面,因此这些视频页面的截屏可以构成训练集的正样本。其中在获取搜索列表的url地址时,为了保证正样本的多样性,可以每次输入不同的关键词得到不同的url,以确保视频截屏正样本包含不同的视频内容。

在构造负样本时,仍然采用程序自动截屏并保存的方法,但是打开的这些页面都需要是非视频页面,具体地,将大量非视频url写在一个文件中,顺序读取这个文件并用程序自动截屏保存为图片。最后构造了正负样本分别是1700和7000个,正负样本数量比约为1:4。

为了保证训练样本的有效性,在收集训练样本时在浏览器的选择、缩放比例等方面要和真实场景保持一致。训练样本示例如图7所示,视频内容是作为页面的主要内容的。

图7 训练样本示例图

训练参数方面batch size选择32或64,优化器选择自适应优化器adam,初始学习率选择0.0001,dropout值设为0.8。经过10000步训练后,训练集和测试集准确率均稳定在95%以上,说明模型和该任务场景相匹配,能取得较为理想的效果。

三、方案总结

1、该方案的有益效果

针对监管单位的需求,提出了一种基于已有的海量数据,识别在深圳属地的公司中以视频为主要内容的网页。

方案简洁有效,在保证完成质量的前提下,大大化缩短了海量页面的检测周期,节省了检测时间。同时简洁有效的CNN模型,具备高可用性,能够很方便地应用到实际检测场景中。

2、该方案的可改进之处

视频网页规则粗筛模块中提到了<video>标签和title关键词两种规则,虽然经过验证,这两种规则可使召回率在90%以上,但是仍可增加其他规则提升召回率,但是需要考虑视频网页截屏及CNN识别模块的检测量,如果过滤出的网页数量太多将大大降低后面的模块的检测速度。

图5中的自定义CNN卷积神经网络模型采用的是三层卷积层加三层最大池化层加两层全连接层,该模型虽然经过验证能够取得较好的效果,但是模型结构太简单可能会过拟合。

为了使模型具有更强的泛化性,可以将模型改进为更为复杂的模型如inception-v3、resnet等,结合预训练的模型进行迁移学习,得到泛化性更强的模型。

另外,也可以尝试采用目标检测的方法,通过检测特定标识部分,达到检测视频类网页的目的。

该账号主要围绕智能化技术如何帮助企业提升网络安全水平展开,内容涉及机器学习、大数据处理等智能化技术在安全领域的实践经验分享,业界领先的产品和前沿趋势的解读分析等。通过分享、交流,推动安全智能的落地、应用。欢迎关注~


文章来源: https://mp.weixin.qq.com/s?__biz=MzI2NDUyMjAyOA==&mid=2247484010&idx=1&sn=a5e5b53d870edb01acd91b5ee67904e7&chksm=eaaa1229dddd9b3f3e435a1614d7f6f60ad55f81204a635f1a5ff289253e36b38d3d8efb966c&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh