互联网的迅速发展,海量Web数据的扑面而来,给搜索引擎技术带来了严峻的挑战,但同时也带来了新的机遇。从网页抓取的角度来看,同一站点往往包含质量相似的资源,对一个优质网站进行爬取,往往可以找到更多的优质资源。因此,我们希望对网站的质量进行评级,来反映资源的质量水平,从而影响spider的调度和收录。在以往的实践中,大体思路是根据人工调研出的经验构造出规则和阈值。发现问题后逐个打补丁、调阈值,来适应变化。这种方式最大的问题在于扩展性不强、维护代价高,而且不利于国际化多语言的支持。因此,我们希望采用更智能的方法,在站点数据中自动发现规律,来完成质量的评级。
我们的站点质量智能评级框架如图1所示。
图1:站点质量智能评级体系
在任务层面上,首先,我们先将站点划分为优质站点和劣质站点。区分优质站点和劣质站点就是要挖掘一批质量优异的站点,将其作为我们系统的基本集合,减少反垃圾反作弊的代价,提高系统检索结果的稳定性和权威性,减少用户的不良反应;同时使整个互联网生态趋于正常,鼓励为互联网创造有价值的资源。我们的目标是使优质的资源在整个系统中占绝对优势,而劣质的资源排斥在外,仅作为系统策略不完善时的必要补充。其次,我们分别在优质站点和劣质站点内部再细分成若干等级。用这些级别区分出站点质量的差距,从而会影响spider的调度和收录控制,同时也会影响低质网页的筛选。
在策略层面上,我们采用了一系列机器学习方法,对人工标注的样本进行学习,建立模型,并将学习到的知识应用到未知站点数据中,来完成质量评级的任务。
以下以优质/劣质站点二分问题作为例子,介绍一下智能算法在站点质量评级系统中的应用。在优质/劣质站点二分问题中,我们采用了支持向量机(SVM)模型。SVM是一种基于判别式的机器学习模型。它的原理很简单:对于一个二分类问题,例如优质站点和劣质站点,SVM的目标就是寻找到一个多维空间中的超平面,使得不同类别的实例尽可能被这个超平面正确地分开,并且超平面到它两侧最近实例的距离(称作边缘)尽可能大(图2)。SVM的目标函数可以转化成一个凸二次优化问题,通过数值优化方法加以解决。SVM的优点包括:(1)和其他机器学习方法相比,分类性能卓越;(2)模型复杂性对维度大小不敏感。这使得它在优质/劣质站点二分问题中取得了良好的效果。
图2:支持向量机SVM
在使用SVM进行站点质量智能评级过程中,有两个地方是特别需要注意的:一个是特征的预处理。在连续数值特征中,有些特征的数值差异过大,优质站点和劣质站点在数值上可能相差几百万、上千万。我们对这些特征采用求log的方式使数值变化变平缓,以利于机器学习。对于离散特征,我们根据它的取值个数,把它拆分成若干个变量,比如x=1,2,3,我们拆成(0,0,1), (0,1,0)和(1,0,0)。另外一个是特征选择。在站点特征中,并不是所有都有用,有些是无关的,有些甚至有负面作用,应与剔除。在实践中我们采用了统计方法(信息增益、检验)与分类正确率提升(降低)量相结合的方法,从中提取到了若干有用特征,使得对优质站点识别的准确率和召回率提升至95%以上,效果显著。
以上以优质/劣质站点二分任务为例,简单介绍了智能算法在站点质量评级体系中的应用。理论上的机器学习模型SVM和站点质量评级的实际应用完美结合,显著提高了系统性能。这给了我们一些启示:当我们面对复杂问题时,与其自己埋头在杂乱的数据中找规律,不如先去看看理论上有没有解决类似问题的模型。理论知识与实际问题相结合,往往可以产生意想不到的效果。
By spider liufeng