论文部分内容阅读
摘要:目前,广告收入是科技巨头公司的重要收入来源,如国外的Google、Facebook等,国内的百度、阿里巴巴、腾讯等。在这些网站上投放的广告,大部分的点击都是虚假点击,即点击后未下载广告中的软件,这不仅会浪费公司大量的广告费,还会误导公司的经营策略。因此,如何鉴别虚假点击成为了一个重要的社会问题。本文使用了我国移动端约两亿条真实点击数据,将其分为训练集和测试集,选用机器学习算法中的支持向量机(SVM)算法来进行分类器的构建,并使用AUC评价指标对识别结果进行分析。
关键词:虚假点击,支持向量机,机器学习
一、数据集的特征设计
特征设计是机器学习的一个重要环节,原始数据不能直接应用到机器学习模型中,需要通过一些方法将这些原始数据根据其类型进行处理之后才能作为机器学习模型的输入。以移动端点击数据为例,其一般包括点击时的IP地址、点击的时刻、广告发布商的频道号等内容。这些数据因为数据格式不同,代表的含义也不同,所以不能直接作为训练集数据进行使用。一般可将原始数据分为数值型特征数据,如点击时刻,和类别型特征数据,如IP地址,广告发布商的频道号等。对于数值型特征可使用等距离散化方法进行处理,以点击时刻为例,因为时刻的范围在0点到24点之间,所以可将时刻分为24个区间,构造一个24维的二值特征向量。如果某条数据的点击时刻是19点20分,则可将其24维向量中的第19维向量置为1,用来表示其点击时刻在19点到20点的区间内。这种方法对杂乱的数值型特征划分区间并将其转换为二值向量,虽然在一定程度上忽略了数值的细节部分,但却极大地方便了模型的运算,也基本能反映数据的整体特征。对于类别型特征,其属于非数值型特征,通常包括两个或者多个类别,在类别之间没有内定的次序,其数据一般代表的是类别编号,不具有数值大小上的意义,所以不能使用等距离散化方法来处理,这里使用独热编码(One-Hot-Encoding)进行处理。这种编码方式将类别型特征用一个向量表示,类别型特征属性的个数等于向量的维度,当样本中某个属性值出现时,其对应维度上的取值为1,而其余维度上的取值为0,编码过程分为生成One-Hot编码字典、利用字典生成特征两步。以广告发布商的频道号为例,本文所使用数据中一共有498种频道号,可建立一个498维的二值向量,对于某条数据中的频道号,可寻找其编号对应的维度,将次维度置为1。这种方法解决了类别型特征数据格式不同,不能参与运算的问题,能够做到对类别型特征的完全利用。对数值型特征和类别型特征分别处理后,将两者得到的二值向量进行拼接后即可得到数据集的完整的特征向量,但往往这个特征向量是一个高纬度向量,能够达到几十万的维度,这对数据存储与运算带来了很大问题。对此,一般有两种解决方法,第一种是丢掉稀有特征,即将那些在数据集中出现次数少的特征维度删去,这通常会丢掉一些有用的特征,存在一定的风险性。第二种是使用键值对(key-value)的方式进行存储运算,只存储特征向量中值为1的项,记录其维度号,这种方法适合用于特征向量中零项较多的情况,特别是类别型特征较多的数据集。
二、支持向量机分类算法思想
支持向量机算法是是一种机器学习算法,是被公认的比较优秀的分类模型,在很短的时间内就得到了广泛的应用。它能使错误的检测率减小到最小,同时具有较好的泛化能力,是一种不容易过拟合的分类方法,比较适合于二分类问题。模型在已知方向的情况下构造分隔超平面,使分隔超平面到两边距离最近的分类点的距离最大,使用极大化间隔的方法可以得出求解最小化距离的二次函数问题,添加约束条件后保证分类点与分隔超平面的距离都不小于几何间隔,处于超平面之上或两侧。而对于训练过程中出现的不可分的样本点,意味着其不能满足约束条件,为了解决这个问题,可以对每个样本点引进一个松弛变量,以确保其能够被分为正类或负类。在模型的输入中,其对输入数据格式有特定要求,需为Label 1:value 2:value...的形式,其中Label值是類别的标识,value是特征值,此数据格式的转换可以使用编程语言进行读取转换,也可以采用Excel中的宏定义进行处理。对应于数据集特征设计中得到的二值特征向量,每一维的0或1都是一个value值,在训练集中,Label值是已知的分类类别的编号,比如属于虚假广告点击的数据的Label值为1,有效点击的数据的Label值为0。而在测试集中,因为数据的分类类别未知,所以可将Label值预设为0,此值在模型中不参与运算,仅用来满足数据格式要求,将测试集数据代入使用训练集训练好的支持向量机模型后,模型会给出测试集的分类结果,即每条数据的预测Label值。
三、虚假点击识别系统算法流程
虚假点击识别系统的基本思想是将训练集中的数据分为数值型特征和类别型特征分别进行处理后得到高维的特征向量,将其作为训练数据导入支持向量机模型中,保存训练后的支持向量机模型。对测试集采用相同的特征设计方式进行数据处理后导入训练后的支持向量机模型,输出预测结果,并与原始数据结果进行对比。
四、虚假点击识别结果分析
虚假点击识别是一个二分类问题,而且数据在不同类别上分布不均衡,因此识别率这样的度量标准不能很好的反应分类器的性能。用ROC曲线来表示分类器的结果很直观,与其有关的混淆矩阵是监督学习中的一种可视化工具,主要用于比较分类结果和数据的真实信息。矩阵中的行代表数据的预测类别,列代表数据的真实类别。在混淆矩阵中,每一条数据可以划分为预测正确的正类、预测正确的负类、预测错误的正类、预测错误的负类四种类型之一。ROC曲线以真阳性率(精度)为纵坐标,假阳性率(误检率)为横坐标绘制的曲线。AUC是ROC曲线下的面积,其取值介于0.5到1之间,值越大表明预测效果越准确。以上述支持向量机模型的训练和测试为例,每进行一轮迭代之后都会在测试集中做预测并计算测试集的AUC。实验结果显示,在开始阶段的迭代中,测试集的AUC比较低,随着迭代轮数的逐渐增加,AUC的值逐渐增加,这说明在最开始模型没有得到充分训练,随着迭代次数的增加,模型逐渐得到充分训练,数据中的信息被模型充分学习,效果变得越来越好。在第57510轮迭代时AUC值达到最高值0.788217,随后又逐渐下降,这表明模型在得到充分训练之后,已经从数据中学习到了足够多的信息,如果继续进行训练,也不能从数据中学习到更多的有用信息,反而会取得不好的效果。
综上所述,将支持向量机算法运用到虚假点击的识别中能够得到较好的效果,这能够帮助广告投放者合理筛选和使用点击数据,调整广告投放策略。同时为了使该算法能够更好地发挥其优势,还应在现有基础上不断进行优化和改进,使其能应用到更广泛的领域。
参考文献:
[1]王孝舒.广告率点击预估的深层神经网络模型研究[D].北京邮电大学,2015.
[2]董亚楠,刘学军,李斌.一种基于用户行为特征选择的点击欺诈检测方法[J].计算机科学,2016,43(10):145-149.
[3]赵志勇.Python机器学习算法[M].1 北京:电子工业出版社,2017,123-174.
关键词:虚假点击,支持向量机,机器学习
一、数据集的特征设计
特征设计是机器学习的一个重要环节,原始数据不能直接应用到机器学习模型中,需要通过一些方法将这些原始数据根据其类型进行处理之后才能作为机器学习模型的输入。以移动端点击数据为例,其一般包括点击时的IP地址、点击的时刻、广告发布商的频道号等内容。这些数据因为数据格式不同,代表的含义也不同,所以不能直接作为训练集数据进行使用。一般可将原始数据分为数值型特征数据,如点击时刻,和类别型特征数据,如IP地址,广告发布商的频道号等。对于数值型特征可使用等距离散化方法进行处理,以点击时刻为例,因为时刻的范围在0点到24点之间,所以可将时刻分为24个区间,构造一个24维的二值特征向量。如果某条数据的点击时刻是19点20分,则可将其24维向量中的第19维向量置为1,用来表示其点击时刻在19点到20点的区间内。这种方法对杂乱的数值型特征划分区间并将其转换为二值向量,虽然在一定程度上忽略了数值的细节部分,但却极大地方便了模型的运算,也基本能反映数据的整体特征。对于类别型特征,其属于非数值型特征,通常包括两个或者多个类别,在类别之间没有内定的次序,其数据一般代表的是类别编号,不具有数值大小上的意义,所以不能使用等距离散化方法来处理,这里使用独热编码(One-Hot-Encoding)进行处理。这种编码方式将类别型特征用一个向量表示,类别型特征属性的个数等于向量的维度,当样本中某个属性值出现时,其对应维度上的取值为1,而其余维度上的取值为0,编码过程分为生成One-Hot编码字典、利用字典生成特征两步。以广告发布商的频道号为例,本文所使用数据中一共有498种频道号,可建立一个498维的二值向量,对于某条数据中的频道号,可寻找其编号对应的维度,将次维度置为1。这种方法解决了类别型特征数据格式不同,不能参与运算的问题,能够做到对类别型特征的完全利用。对数值型特征和类别型特征分别处理后,将两者得到的二值向量进行拼接后即可得到数据集的完整的特征向量,但往往这个特征向量是一个高纬度向量,能够达到几十万的维度,这对数据存储与运算带来了很大问题。对此,一般有两种解决方法,第一种是丢掉稀有特征,即将那些在数据集中出现次数少的特征维度删去,这通常会丢掉一些有用的特征,存在一定的风险性。第二种是使用键值对(key-value)的方式进行存储运算,只存储特征向量中值为1的项,记录其维度号,这种方法适合用于特征向量中零项较多的情况,特别是类别型特征较多的数据集。
二、支持向量机分类算法思想
支持向量机算法是是一种机器学习算法,是被公认的比较优秀的分类模型,在很短的时间内就得到了广泛的应用。它能使错误的检测率减小到最小,同时具有较好的泛化能力,是一种不容易过拟合的分类方法,比较适合于二分类问题。模型在已知方向的情况下构造分隔超平面,使分隔超平面到两边距离最近的分类点的距离最大,使用极大化间隔的方法可以得出求解最小化距离的二次函数问题,添加约束条件后保证分类点与分隔超平面的距离都不小于几何间隔,处于超平面之上或两侧。而对于训练过程中出现的不可分的样本点,意味着其不能满足约束条件,为了解决这个问题,可以对每个样本点引进一个松弛变量,以确保其能够被分为正类或负类。在模型的输入中,其对输入数据格式有特定要求,需为Label 1:value 2:value...的形式,其中Label值是類别的标识,value是特征值,此数据格式的转换可以使用编程语言进行读取转换,也可以采用Excel中的宏定义进行处理。对应于数据集特征设计中得到的二值特征向量,每一维的0或1都是一个value值,在训练集中,Label值是已知的分类类别的编号,比如属于虚假广告点击的数据的Label值为1,有效点击的数据的Label值为0。而在测试集中,因为数据的分类类别未知,所以可将Label值预设为0,此值在模型中不参与运算,仅用来满足数据格式要求,将测试集数据代入使用训练集训练好的支持向量机模型后,模型会给出测试集的分类结果,即每条数据的预测Label值。
三、虚假点击识别系统算法流程
虚假点击识别系统的基本思想是将训练集中的数据分为数值型特征和类别型特征分别进行处理后得到高维的特征向量,将其作为训练数据导入支持向量机模型中,保存训练后的支持向量机模型。对测试集采用相同的特征设计方式进行数据处理后导入训练后的支持向量机模型,输出预测结果,并与原始数据结果进行对比。
四、虚假点击识别结果分析
虚假点击识别是一个二分类问题,而且数据在不同类别上分布不均衡,因此识别率这样的度量标准不能很好的反应分类器的性能。用ROC曲线来表示分类器的结果很直观,与其有关的混淆矩阵是监督学习中的一种可视化工具,主要用于比较分类结果和数据的真实信息。矩阵中的行代表数据的预测类别,列代表数据的真实类别。在混淆矩阵中,每一条数据可以划分为预测正确的正类、预测正确的负类、预测错误的正类、预测错误的负类四种类型之一。ROC曲线以真阳性率(精度)为纵坐标,假阳性率(误检率)为横坐标绘制的曲线。AUC是ROC曲线下的面积,其取值介于0.5到1之间,值越大表明预测效果越准确。以上述支持向量机模型的训练和测试为例,每进行一轮迭代之后都会在测试集中做预测并计算测试集的AUC。实验结果显示,在开始阶段的迭代中,测试集的AUC比较低,随着迭代轮数的逐渐增加,AUC的值逐渐增加,这说明在最开始模型没有得到充分训练,随着迭代次数的增加,模型逐渐得到充分训练,数据中的信息被模型充分学习,效果变得越来越好。在第57510轮迭代时AUC值达到最高值0.788217,随后又逐渐下降,这表明模型在得到充分训练之后,已经从数据中学习到了足够多的信息,如果继续进行训练,也不能从数据中学习到更多的有用信息,反而会取得不好的效果。
综上所述,将支持向量机算法运用到虚假点击的识别中能够得到较好的效果,这能够帮助广告投放者合理筛选和使用点击数据,调整广告投放策略。同时为了使该算法能够更好地发挥其优势,还应在现有基础上不断进行优化和改进,使其能应用到更广泛的领域。
参考文献:
[1]王孝舒.广告率点击预估的深层神经网络模型研究[D].北京邮电大学,2015.
[2]董亚楠,刘学军,李斌.一种基于用户行为特征选择的点击欺诈检测方法[J].计算机科学,2016,43(10):145-149.
[3]赵志勇.Python机器学习算法[M].1 北京:电子工业出版社,2017,123-174.