智能计算论文
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于BP神经网络的虚假评价检测模型
XX,xxx
AFake EvaluationDetection ModelBased onBP Neural Network
XXX,XXX
Abstract:Based on the analysis of behavioral characteristics of the target system, which is used to evaluatefake evaluationsystem, an integrated BP neural network is proposed as the model toautodetectfake evaluation. The designed training set was used to train BP neural network, the cheating behavior could be detected by inputting test set to the trained BP neural network and the detected effect was verified on behavioral dimensions. Experiment results indicate that the proposed model is feasible and it could achieve the aim offake evaluationdetection with high speed and accuracy.
(2)使用第二组实验数据如图3所示,经过1752次学习使得均方误差小于0.01,10个检验样本没有被分错.错误率为0.
(3)使用第三组实验数据如图4所示,经过1349次学习使得均方误差小于0.01,10个检验样本有第3个样本(即第13号样本)、第8个样本(即第18号样本)被分错.错误率为0.2.
最后我们得到3组交叉检验后的平均错误率为(0.1+0+0.2)/3=0.1.交叉检验结果显示,模型能够比较正确对此问题进行分类判断.在样本比较好的情况下(如第二组第三组样本),可以达到非常快的收敛速度.虽然第一组样本没有在5000次学习之内收敛到0.01范围内,但基本的正确率可以保证.
(3)计算隐藏层结点的输出值:
其中, 为隐藏层阈值,n为输入层个数, 是隐藏层个数, 是输入层层输出, 是输入层对隐藏层的权值.H_I_O()函数用来计算隐藏层结点输出并且保存在H[]数组中.
(4)计算输出层结点的输出:
其中, 为输出层阈值,n为隐藏层个数, 是隐藏层的输出, 是隐藏层对输出层的权值.O_I_O()函数用来计算输出层结点输出并保存在O[]数组中.
目前最为常用的欺骗检测技术有多数规则(majority rule)和信号建模(signal modeling)两类[1].虽然这两种方法在实际中应用较为广泛,但它们都存 在一些缺陷和不足:多数规则技术的使用需要具备两个条件:一是虚假评价的数量要远少于真实评价的数量;二是虚假评价与真实评价的偏差要很大.在实际应用中,恶意商家完全可以使虚假评价与真实评价具有相对较小的偏差.在这些情况下,多数规则便不能准确地检测出虚假评价.信号建模技术虽能够检测出大量的、偏差适中的虚假评价,但是该技术只能标识出虚假评价出现的时间段,并不能精确地检测出该段时间内哪个评价是不真实的.作者提出了基于BP神经网络的虚假评价检测技术,充分利用BP神经网络具有的概括和抽象能力、对不完整输入信息具有一定程度的容错处理能力、高度的学习和自适应能力、内在并行计算和存储,试图弥补现有技术的缺点和不足.
(5)逆向误差修正计算.输出层结点的误差计算:
其中, 是输出层的输出, 是教师数据.本公式的推导来自神经网络的梯度下降算法学习规则[],我们直接使用其结论,Err_O_H(int m)函数将第m个样本的输出层误差保存在d_err[]中,同时将这个样本的均方误差保存在err_m[]中.
(6)隐藏层结点的误差计算:
Key words:fake evaluation; BP neural network; cheating classification
摘 要:在分析虚假评价的目标系统的行为特征的基础上,提出了一种集成的BP神经网络模型.该模型使用训练集对构造好的BP神经网络进行训练,将测试集输入到训练好的BP神经网络中,进行欺骗检测,并在测试集上进行欺骗检测效果验证.实验结果验证了基于BP神经网络的虚假评价检测模型的可行性.基于BP神经网络的欺骗检测模型能够快速、准确地实现欺骗行为的检测.
(8)用(6)中的误差来修正输入层到隐藏层的权值与阈值:
同(7)用Delta_H_I(intm,intn)函数调整输入到隐藏层权值和阈值数组U[]和YU_HN[].
(9)如果全部学习样本未取完,则返回(2),增加学习次数,否则,转(10).
(10)计算误差函数E,并且判断E是否是小于规定的误差上限,如果E小于误差上限,则算法结束;否则,如果学习次数到,则算法结束;否则更新学习次数t=t+1,返回(2).我们在这里将学习次数设定为5000,误差设定为0.01.因为过多的学习次数、过低误差限值虽然会降低训练误差,但会引起过学习以及训练时间的延长,影响泛化误差,这个我们会结合实验数据进行说明.
3.算法收敛速度的改进与优化
在原始算法中,第(7)(8)步更新权值以恒定的学习因子更新权值.如果学习因子过大,收敛速度会过快,或者跨过了极小值无法最后收敛;如果学习因子过小,在平坦区域收敛缓慢或者容易陷入局部极值.
在新增动量更新的BP算法[3]中,权值的变化量是由当前误差曲面的负梯度变化量与前一次迭代修正所采纳的权值变化量(作为动量项,也相当于阻尼项,可用于减小迭代学习过程的振荡趋势,从而改善收敛性)的适当比例求和所得到的,其可由下式表述(阈值的变化量也可同样处理):
实验数据自己收集
我们的输出函数选择Sigmoid函数:
平方误差函数:
训练步骤如下:
(1)初始化.设定学习次数study=0,对网络权值和阈值赋予小的随机数: .采用初始化函数initial()将权值阈值初始化.
(2)向前计算.输入一个学习样本 ,其中 ,N为样本数.我们这里将训练样本数取为20,测试样本数TestN取为10.输入函数input_P()与input_T()将样本向量存到P[]和T[]中.
由最终结果得出,通过BP神经网络进行虚假评价检测可行,并且有比较高的准确率.在学习次数5000次,误差限值0.01情况下:第二组的实验数据说明,用前20个样本进行训练具有较好的收敛速度以及准确度;而第一组的实验数据说明,当训练样本较差的时候,初始权值较差的时候BP神经网络收敛非常慢;而最后一组实验数据说明,对于有较小的训练误差的模型,却不一定有较低的检验误差.综上所述,我们应该选择第二组数据进行训练,可以得到比较好的检测模型.
其中, 称为动量因子(或阻尼因子、记忆因子),通常介于(0,1)区间.对上式进行分析,可以很容易知道:当权值变化方向与第一次的相同或相近时,权值的更新速度加快;而当方向不一致/不相近时,权值的更新速度则受前一次的影响而减慢.而且,由于该学习方法增加了对误差曲面上变化趋势的更多考虑,使得人工神经网络可以忽略掉一些不确定性因素(如噪声、数据不一致性等),因此加强了网络的学习稳定性和鲁棒性.同时,在动量项的作用下,网络可在误差曲面平坦区域的收缩速度加快,大幅提高了学习收敛率.
图1BP神经网络虚假评价检测模型
将买家的评价行为按照以上说明的4维向量数据输入后,即可通过系统进行分类,来判定评价是否虚假.使用BP神经网络模型[2]进行欺骗检测验证的过程分为两大步:首先,使用训练集对构造好的BP神经网络进行训练;然后,将测试集输入到训练好的BP神经网络中进行欺骗检测.
2.实验数据与网络训练
1.BP神经网络模型
.所以,我们基于这个特征,在虚假评价检测神经网络结构中,设置输入层的神经元数为4,输出层神经元个数为1,隐藏层结点数目为8个.如图1所示.其中,输入数组P[],隐藏层输入数组X[],隐藏层输出数组H[],输出层输入数组Y[],输出层输出O[],以及输入到隐藏层权值数组U[][],隐藏层到输出层权值数组V[][].
第三组样本经过10000次学习,均方误差降低到0.00106以下,第3、5、8号样本被分错,错误率0.3.
三组平均错误率为(0.1+0.1+0.3)/3=0.17,比之前错误率明显上升,这就证明了,对训练数据过度学习会导致泛化误差的提升.这说明了,人工神经网络对训练样本的噪声点十分敏感,过学习导致将这些样本点也纳入学习范围,使得最后分类边界过于“精确”.
评价系统欺骗行为的检测主要体现在两个方面:一是使用检测技术发现欺骗行为;二是在评价系统构造和信誉计算中使用某些欺骗防御策略和方法.比如苹果的Itunes上,很多软件制造方寻求雇佣专业评价人员对自己的软件进行虚假评价,以求刷上更高的排名.苹果公司一直在改进排名的算法,使得花钱雇佣人力虚假刷榜的收益微乎其微,从而在评价系统构造和信誉计算中预防虚假评价.
关键词:虚假评价;BP神经网络;欺骗检测
随着计算机和网络的发展,人们的消费方式由传统的实体店购物,转向了网络购物,电子商务应用的也日益流行,同时电子商务交易安全问题受到了越来越广泛的关注.电子商务自身的特点使得消费者在享受便利的同时,承担着极大的风险.为了降低这一风险,人们提出使用评价系统规范系统商家的行为,并为消费者做出决定提供可靠性参考.然而,一些投机的商家会利用评价系统的弱势和缺陷,即对其实施欺骗行为,也就是我们所说的虚假评价,以期获得不真实的信誉值.
5.结 论
自行总结
参考文献:
[1]Sommerfeld M.Talidation of a stochastic Lagrangian modelling approach for inter-particle collisions in homo-geneous isotropic turbulence[J]. International Journal of Multiphase Flow, 2001 ,27: 1829 - 1858.
同理,我们将输出层的误差,反向乘以隐藏层到输出层的权值,带入(5)中的公式中,得到了隐藏层误差.Err_H_I()函数将隐藏层误差保存到数组e_err[]中.
(7)用(5)中的误差来修正隐藏层到输出层Baidu Nhomakorabea权值与阈值:
其中 与 均为学习因子,我们将阈值和权值的调整因子设为一样,并且通过反复使用同一训练集进行收敛速度的测试,认为将学习因子设为0.2比较好.Delta_O_H(intm,intn)函数定义了以上调整方式,当第n次学习了第m个样本时候,对权值和阈值数组V[]和YU_ON[]进行更新.当学习次数从第二次开始,通过优化的方式进行,这将会在下一节介绍.
下面我们再来分析下过学习对模型造成的影响.我们将学习次数限值调至10000次,学习精度升高到0.0001.同样使用以上三组数据,比较产生的不同.
图2第一组实验结果
图3第二组实验结果
图4第三组实验结果
第一组样本经过10000次学习,均方误差降低到0.00054以下,第6号样本被分错,错误率0.1.
第二组样本经过10000次学习,均方误差降低到0.00135以下,第4号样本被分错,错误率0.1.
新的权值更新方法变成了:V[k][j]=V[k][j]+a*d_err[k]*H[j]+alpha*(V[k][j]-Old_WV[(n-1)].old_V[k][j]).
最后一项即为动量项,其中alpha为动量因子,经过反复的测试,我们将动量因子设为0.07具有较好的收敛效果.
4.实验结果与分析
(1)使用第一组实验数据如图2所示,经过5000次学习使得均方误差小于0.38,10个检验样本只有第6个样本(即第26号样本)被分错.错误率为0.1.
XX,xxx
AFake EvaluationDetection ModelBased onBP Neural Network
XXX,XXX
Abstract:Based on the analysis of behavioral characteristics of the target system, which is used to evaluatefake evaluationsystem, an integrated BP neural network is proposed as the model toautodetectfake evaluation. The designed training set was used to train BP neural network, the cheating behavior could be detected by inputting test set to the trained BP neural network and the detected effect was verified on behavioral dimensions. Experiment results indicate that the proposed model is feasible and it could achieve the aim offake evaluationdetection with high speed and accuracy.
(2)使用第二组实验数据如图3所示,经过1752次学习使得均方误差小于0.01,10个检验样本没有被分错.错误率为0.
(3)使用第三组实验数据如图4所示,经过1349次学习使得均方误差小于0.01,10个检验样本有第3个样本(即第13号样本)、第8个样本(即第18号样本)被分错.错误率为0.2.
最后我们得到3组交叉检验后的平均错误率为(0.1+0+0.2)/3=0.1.交叉检验结果显示,模型能够比较正确对此问题进行分类判断.在样本比较好的情况下(如第二组第三组样本),可以达到非常快的收敛速度.虽然第一组样本没有在5000次学习之内收敛到0.01范围内,但基本的正确率可以保证.
(3)计算隐藏层结点的输出值:
其中, 为隐藏层阈值,n为输入层个数, 是隐藏层个数, 是输入层层输出, 是输入层对隐藏层的权值.H_I_O()函数用来计算隐藏层结点输出并且保存在H[]数组中.
(4)计算输出层结点的输出:
其中, 为输出层阈值,n为隐藏层个数, 是隐藏层的输出, 是隐藏层对输出层的权值.O_I_O()函数用来计算输出层结点输出并保存在O[]数组中.
目前最为常用的欺骗检测技术有多数规则(majority rule)和信号建模(signal modeling)两类[1].虽然这两种方法在实际中应用较为广泛,但它们都存 在一些缺陷和不足:多数规则技术的使用需要具备两个条件:一是虚假评价的数量要远少于真实评价的数量;二是虚假评价与真实评价的偏差要很大.在实际应用中,恶意商家完全可以使虚假评价与真实评价具有相对较小的偏差.在这些情况下,多数规则便不能准确地检测出虚假评价.信号建模技术虽能够检测出大量的、偏差适中的虚假评价,但是该技术只能标识出虚假评价出现的时间段,并不能精确地检测出该段时间内哪个评价是不真实的.作者提出了基于BP神经网络的虚假评价检测技术,充分利用BP神经网络具有的概括和抽象能力、对不完整输入信息具有一定程度的容错处理能力、高度的学习和自适应能力、内在并行计算和存储,试图弥补现有技术的缺点和不足.
(5)逆向误差修正计算.输出层结点的误差计算:
其中, 是输出层的输出, 是教师数据.本公式的推导来自神经网络的梯度下降算法学习规则[],我们直接使用其结论,Err_O_H(int m)函数将第m个样本的输出层误差保存在d_err[]中,同时将这个样本的均方误差保存在err_m[]中.
(6)隐藏层结点的误差计算:
Key words:fake evaluation; BP neural network; cheating classification
摘 要:在分析虚假评价的目标系统的行为特征的基础上,提出了一种集成的BP神经网络模型.该模型使用训练集对构造好的BP神经网络进行训练,将测试集输入到训练好的BP神经网络中,进行欺骗检测,并在测试集上进行欺骗检测效果验证.实验结果验证了基于BP神经网络的虚假评价检测模型的可行性.基于BP神经网络的欺骗检测模型能够快速、准确地实现欺骗行为的检测.
(8)用(6)中的误差来修正输入层到隐藏层的权值与阈值:
同(7)用Delta_H_I(intm,intn)函数调整输入到隐藏层权值和阈值数组U[]和YU_HN[].
(9)如果全部学习样本未取完,则返回(2),增加学习次数,否则,转(10).
(10)计算误差函数E,并且判断E是否是小于规定的误差上限,如果E小于误差上限,则算法结束;否则,如果学习次数到,则算法结束;否则更新学习次数t=t+1,返回(2).我们在这里将学习次数设定为5000,误差设定为0.01.因为过多的学习次数、过低误差限值虽然会降低训练误差,但会引起过学习以及训练时间的延长,影响泛化误差,这个我们会结合实验数据进行说明.
3.算法收敛速度的改进与优化
在原始算法中,第(7)(8)步更新权值以恒定的学习因子更新权值.如果学习因子过大,收敛速度会过快,或者跨过了极小值无法最后收敛;如果学习因子过小,在平坦区域收敛缓慢或者容易陷入局部极值.
在新增动量更新的BP算法[3]中,权值的变化量是由当前误差曲面的负梯度变化量与前一次迭代修正所采纳的权值变化量(作为动量项,也相当于阻尼项,可用于减小迭代学习过程的振荡趋势,从而改善收敛性)的适当比例求和所得到的,其可由下式表述(阈值的变化量也可同样处理):
实验数据自己收集
我们的输出函数选择Sigmoid函数:
平方误差函数:
训练步骤如下:
(1)初始化.设定学习次数study=0,对网络权值和阈值赋予小的随机数: .采用初始化函数initial()将权值阈值初始化.
(2)向前计算.输入一个学习样本 ,其中 ,N为样本数.我们这里将训练样本数取为20,测试样本数TestN取为10.输入函数input_P()与input_T()将样本向量存到P[]和T[]中.
由最终结果得出,通过BP神经网络进行虚假评价检测可行,并且有比较高的准确率.在学习次数5000次,误差限值0.01情况下:第二组的实验数据说明,用前20个样本进行训练具有较好的收敛速度以及准确度;而第一组的实验数据说明,当训练样本较差的时候,初始权值较差的时候BP神经网络收敛非常慢;而最后一组实验数据说明,对于有较小的训练误差的模型,却不一定有较低的检验误差.综上所述,我们应该选择第二组数据进行训练,可以得到比较好的检测模型.
其中, 称为动量因子(或阻尼因子、记忆因子),通常介于(0,1)区间.对上式进行分析,可以很容易知道:当权值变化方向与第一次的相同或相近时,权值的更新速度加快;而当方向不一致/不相近时,权值的更新速度则受前一次的影响而减慢.而且,由于该学习方法增加了对误差曲面上变化趋势的更多考虑,使得人工神经网络可以忽略掉一些不确定性因素(如噪声、数据不一致性等),因此加强了网络的学习稳定性和鲁棒性.同时,在动量项的作用下,网络可在误差曲面平坦区域的收缩速度加快,大幅提高了学习收敛率.
图1BP神经网络虚假评价检测模型
将买家的评价行为按照以上说明的4维向量数据输入后,即可通过系统进行分类,来判定评价是否虚假.使用BP神经网络模型[2]进行欺骗检测验证的过程分为两大步:首先,使用训练集对构造好的BP神经网络进行训练;然后,将测试集输入到训练好的BP神经网络中进行欺骗检测.
2.实验数据与网络训练
1.BP神经网络模型
.所以,我们基于这个特征,在虚假评价检测神经网络结构中,设置输入层的神经元数为4,输出层神经元个数为1,隐藏层结点数目为8个.如图1所示.其中,输入数组P[],隐藏层输入数组X[],隐藏层输出数组H[],输出层输入数组Y[],输出层输出O[],以及输入到隐藏层权值数组U[][],隐藏层到输出层权值数组V[][].
第三组样本经过10000次学习,均方误差降低到0.00106以下,第3、5、8号样本被分错,错误率0.3.
三组平均错误率为(0.1+0.1+0.3)/3=0.17,比之前错误率明显上升,这就证明了,对训练数据过度学习会导致泛化误差的提升.这说明了,人工神经网络对训练样本的噪声点十分敏感,过学习导致将这些样本点也纳入学习范围,使得最后分类边界过于“精确”.
评价系统欺骗行为的检测主要体现在两个方面:一是使用检测技术发现欺骗行为;二是在评价系统构造和信誉计算中使用某些欺骗防御策略和方法.比如苹果的Itunes上,很多软件制造方寻求雇佣专业评价人员对自己的软件进行虚假评价,以求刷上更高的排名.苹果公司一直在改进排名的算法,使得花钱雇佣人力虚假刷榜的收益微乎其微,从而在评价系统构造和信誉计算中预防虚假评价.
关键词:虚假评价;BP神经网络;欺骗检测
随着计算机和网络的发展,人们的消费方式由传统的实体店购物,转向了网络购物,电子商务应用的也日益流行,同时电子商务交易安全问题受到了越来越广泛的关注.电子商务自身的特点使得消费者在享受便利的同时,承担着极大的风险.为了降低这一风险,人们提出使用评价系统规范系统商家的行为,并为消费者做出决定提供可靠性参考.然而,一些投机的商家会利用评价系统的弱势和缺陷,即对其实施欺骗行为,也就是我们所说的虚假评价,以期获得不真实的信誉值.
5.结 论
自行总结
参考文献:
[1]Sommerfeld M.Talidation of a stochastic Lagrangian modelling approach for inter-particle collisions in homo-geneous isotropic turbulence[J]. International Journal of Multiphase Flow, 2001 ,27: 1829 - 1858.
同理,我们将输出层的误差,反向乘以隐藏层到输出层的权值,带入(5)中的公式中,得到了隐藏层误差.Err_H_I()函数将隐藏层误差保存到数组e_err[]中.
(7)用(5)中的误差来修正隐藏层到输出层Baidu Nhomakorabea权值与阈值:
其中 与 均为学习因子,我们将阈值和权值的调整因子设为一样,并且通过反复使用同一训练集进行收敛速度的测试,认为将学习因子设为0.2比较好.Delta_O_H(intm,intn)函数定义了以上调整方式,当第n次学习了第m个样本时候,对权值和阈值数组V[]和YU_ON[]进行更新.当学习次数从第二次开始,通过优化的方式进行,这将会在下一节介绍.
下面我们再来分析下过学习对模型造成的影响.我们将学习次数限值调至10000次,学习精度升高到0.0001.同样使用以上三组数据,比较产生的不同.
图2第一组实验结果
图3第二组实验结果
图4第三组实验结果
第一组样本经过10000次学习,均方误差降低到0.00054以下,第6号样本被分错,错误率0.1.
第二组样本经过10000次学习,均方误差降低到0.00135以下,第4号样本被分错,错误率0.1.
新的权值更新方法变成了:V[k][j]=V[k][j]+a*d_err[k]*H[j]+alpha*(V[k][j]-Old_WV[(n-1)].old_V[k][j]).
最后一项即为动量项,其中alpha为动量因子,经过反复的测试,我们将动量因子设为0.07具有较好的收敛效果.
4.实验结果与分析
(1)使用第一组实验数据如图2所示,经过5000次学习使得均方误差小于0.38,10个检验样本只有第6个样本(即第26号样本)被分错.错误率为0.1.