本发明属于电子商务和社会计算领域,特别涉及一种基于电商评论来筛选恶意用户的方法。
背景技术:
:处在一个网络时代,用户的评分开始发挥越来越重要的作用,尤其是在电商领域。因此许多电商平台(如淘宝、京东)推出评分系统,用户可以对商品进行评分,同时商品收到的评分将会影响用户决策,确保评分的真实有效显得尤为重要。然而在评分系统中有一些恶意用户,他们的评分不可靠,一种恶意用户是商家请来的水军,给自己的商品评高分,给对手的商品评低分,另一种恶意用户是进行随机评分的恶意用户。这些恶意用户的评分扰乱了评分系统,因此需要一种方法来将恶意用户筛选出来,降低恶意评分的影响,使评分更加可靠。要筛选恶意用户,可以根据用户的评分情况给每个用户赋予一个信誉分,将信誉分低的用户当做恶意用户。确定用户信誉分的方法多种多样,用户信誉分的确定方法决定了算法的好坏。当前已有许多检测恶意用户的算法被提出,例如基于商品质量的cr(correlation-basedranking)算法,cr算法首先根据评分计算商品预估质量,然后计算用户评分和商品质量的相关性,根据相关性得出用户信誉,然后将信誉分低的用户当做恶意用户。同样基于商品质量的算法还有ir(iterativeranking)算法、rr(rankingreputation)算法和ibm(iterativebalancemodel)算法等,但是用户的评分可能与商品真实质量有一定差距,并不能用来代替商品质量,所以基于商品质量的算法有一定的不合理性。另外一类是基于群组的算法,如gr(group-basedranking)算法,若用户对某个商品的评分和大多数人的评分相同,那么认为该用户更可信,应该有更高的信誉分。igr(iterativegroup-basedranking)算法是在gr算法的基础上将ir算法的迭代思想加入,使算法的效果得到提升,但是算法的效果仍然有提升空间。还有一类是基于用户的评分分布特点的,如dr(deviation-basedranking)算法和br(bayesianreputation)算法,dr算法认为用户的评分服从正态分布,br算法认为用户的评分服从贝塔分布。然而用户的评分分布各不相同,并非完全服从某种分布,因此这种算法的稳定性较差。技术实现要素:本发明的目的,在于提供一种基于电商评论识别恶意用户的方法,其可提高筛选恶意用户的精确度,增大识别过程计算的稳定性。为了达成上述目的,本发明的解决方案是:一种基于电商评论识别恶意用户的方法,包括如下步骤:步骤1,构建三元组g[ui,oα,ωs]用于存储评分数据,ui代表用户i,i={1,…,m},m是用户数;oα代表商品α,α={1,…,n},n是商品数;ωs代表评分s,m、n分别表示用户数和商品数;步骤2,初始化所有用户的信誉为1;步骤3,计算各商品在各个评分下的带权群组大小,权值即为评价该商品的用户信誉;步骤4,根据步骤3得出的带权群组大小,计算不同商品中各群组的占比矩阵;步骤5,步骤4得到的占比矩阵中,行和列分别对应商品和评分,将其映射到行和列分别对应用户和商品的矩阵中;步骤6,计算各用户所在群组占比的平均值和标准差,并计算用户评分的标准差;步骤7,根据步骤6计算得到的数据计算用户信誉;步骤8,基于步骤7计算得到的用户信誉,重复步骤3-7,然后计算两次用户信誉的差值,若大于阈值则以新的用户信誉重复步骤3-7,直至用户信誉变化小于阈值时迭代结束;步骤9,对最终得到的用户信誉进行排序,将信誉最低的l个用户当作恶意用户。上述步骤3中,根据下式计算商品α在评分s下的带权群组大小λsα:其中,ris表示对商品α评分为s的用户i的信誉分。上述步骤4中,根据下式计算不同商品中各群组的占比矩阵:其中,λsα为商品α在评分s下的带权群组大小。上述步骤5的具体方法是:其中,当用户i对商品α的评分为s时,将商品评分矩阵中的映射到用户商品占比矩阵中得到a′iα,如果没有评分认为值不存在。上述步骤6中,根据下式计算用户i所在群组占比的平均值:其中,ki为用户i的度。上述步骤6中,根据下式计算用户i所在群组占比的标准差:其中,ki为用户i的度。上述步骤6中,计算用户评分的标准差的具体过程是;首先计算各个用户的平均评分:其中,ωiα表示用户i对商品α的评分,ki是用户i的度;然后计算评分的标准差:上述步骤7中,根据下式计算用户信誉:其中,μ(a′i)、σ(a′i)、σ(ωi)分别是用户i所在群组占比的平均值、用户i所在群组占比的标准差、用户评分的标准差。上述步骤8中,两次用户信誉的差值计算公式是:δ=|r-r'|=∑i(ri-r′i)2/m其中,δ为差值,r、r'分别为两次用户信誉,ri、r′i分别为用户的两次用户信誉。采用上述方案后,本发明针对正常用户评分一般比较集中的情况,将用户评分的标准差加入评判标准,正常用户由于评分集中评分的标准差相对较小,而恶意用户评分的标准差则相对较大,将评分的标准差加入到分母中就能增大正常用户的信誉分降低恶意用户的信誉分。因此本发明在筛选极端恶意用户和随机评分的恶意用户时,提升了检测恶意用户的精确度;在恶意用户增多、数据量增大时,本发明的表现更加稳定,鲁棒性更好。本发明可以应用于电商网站恶意用户的检测以及电商网站评分系统的改善。附图说明图1是本发明的流程图;图2是制造50个恶意用户时各算法的效果图;图3是制造100个恶意用户时各算法的效果图。具体实施方式以下将结合附图,对本发明的技术方案及有益效果进行详细说明。本发明提供一种基于电商评论识别恶意用户的方法,主要包含如下四个阶段:首先,采用三元组的方式存储评分数据;采用三元组存储评分数据,在数据量较大、评分数据较为稀疏时,相比于数组节省了空间;其次,统计各商品在各个评分下的带权群组大小,将用户的信誉分作为权重,计算各商品中各评分群组占比;然后,依据各用户所在群组占比的平均值和标准差以及用户评分的标准差求得用户的信誉分,并将用户信誉迭代计算直到用户信誉趋于稳定;在该阶段中,在计算用户信誉时加入用户评分的标准差,提升了正常用户的信誉,降低了恶意用户的信誉,使得检测恶意用户的精确度得到了提升;最后,将信誉分最低的l个用户当作恶意用户。如图1所示,本发明的具体过程如下:步骤1,构建一个三元组g[ui,oα,ωs]用于存储评分数据,ui代表用户i,oα代表商品α,ωs代表评分s。其中,i是用户的编号,取值是i={1,…,m},m是用户数;α是商品编号,取值是α={1,…,n},n是商品数。每个三元组中存储一条评分数据,用户的度记为ki,商品的度记为kα。步骤2,初始化所有用户的信誉为1,即认为所有用户初始时所占权重相同。步骤3,计算各商品在各个评分下的带权群组大小,权值即为评价该商品的用户信誉;计算方法如公式(1)所示:其中,ris表示对商品α评分为s的用户i的信誉分,将所有对商品α评分为s的用户信誉分之和作为群组大小。步骤4,根据步骤3得出的带权群组大小,计算不同商品中各群组的占比矩阵:其中,公式(2)的分子上是商品α在评分s下的带权群组大小,在igr算法中分母使用的是商品α的度kα,在本实施例中采用商品α各评分的带权群组大小之和作为分母效果会更好一些,此时所得的矩阵是真正的占比矩阵。用户评分所在群组占比越大,表示用户的评分和大众评分越相近,评分更可靠。步骤5,矩阵映射:在步骤4中得到的占比矩阵行和列分别是商品和评分,需要映射到用户和商品的矩阵中,具体方法如公式(3)所示:在公式(3)中,当用户i对商品α的评分为s时,将商品评分矩阵中的映射到用户商品占比矩阵中得到a′iα,如果没有评分认为值不存在。步骤6,计算群组占比的平均值如公式(4)所示:公式(4)中,分子所求为用户评价过的所有商品总的占比大小,分母上是用户的度即用户评价过的商品数,平均值越大代表用户的评分站在大众群体的概率越大。计算用户所在群组占比的标准差如公式(5)所示:公式(5)中的μ(a′i)由公式(4)求得,用户评分的标准差越大,表明用户评分所在群组占比不稳定,有时和大众评分相同,有时偏离大众评分,这种用户的信誉分应该更小。步骤7,计算用户评分的标准差:首先计算各个用户的平均评分如公式(6)所示:公式(6)中的ωiα表示用户i对商品α的评分,分子求的是用户i对所有商品的评分之和,ki是用户i的度。公式(6)中分子表示用户i对各商品的评分和,分母是用户的度,然后计算评分的标准差的方式如公式(7)所示:步骤8,计算用户信誉:用户信誉的计算方式如公式(8)所示:公式(8)中的μ(a′i)、σ(a′i)和σ(ωi)分别由公式(4)、公式(5)和公式(7)所求。步骤9,迭代计算用户的信誉分,直至变化δ小于10-6时迭代结束,变化δ的计算如公式(9)所示:δ=|r-r'|=∑i(ri-r′i)2/m(9)步骤10,对用户信誉从低到高排序,将信誉最低的l个用户当作恶意用户。下面基于真实数据,验证该方法的有效性:实验中使用的数据集是两个movielens的数据集和一个netflix的数据集,数据集的来源分别为:movielens的两个数据集地址为:https://grouplens.org/datasets/movielens/netflix数据集的地址为:http://pan.baidu.com/s/1ddtmbw9实验中使用的netflix数据集是在原数据集中抽取5000个评分大于50次的用户,将这5000个用户的评分网络作为实验数据集。各数据集中用户数(m)、商品数(n)、数据条数(l)、用户平均度(k(u))、商品平均度(k(o))、数据稀疏度(s=l/mn)如表1所示:表1数据集网络特征datasetmnlk(u)k(o)smovielens_109431682100000106590.06305movielens_1007120130642104857514780.00113netflix50001776834966146991960.03936在实验结果中使用召回率作为衡量标准,计算方法如公式(10)所示:其中,d代表制造的恶意用户数,l表示选取信誉分最低的l个用户,d'(l)代表在信誉最低的l个用户中恶意用户的数目。图1是igdr算法流程图,其中,(a)初始带权二部网络图。(b)相关评分矩阵,行和列分别代表用户和商品。(c)评分三元组,在igdr算法中为了节省空间不使用矩阵存储数据而是采用三元组。(d)各评分的带权群组大小λ,即商品评分群组中用户信誉分之和,以商品o2评分1的群组为例,λ2,1=r2 r5=2。(e)群组占比矩阵λ*,由步骤(d)中各群组在各列所占权重得出,仍以商品o2评分1的群组为例,(f)群组占比矩阵a',由矩阵a和矩阵λ*共同确定,此时矩阵的行和列分别为用户和商品。(g)用户信誉分,r'表示第一次迭代求出的信誉分,在igdr算法中需要迭代执行(d),(e),(f)和(g),直到用户信誉分变化值小于10-4,得到最终用户信誉r,并将信誉最低的l个用户当作恶意用户。图2为制造50个恶意用户时gr算法(点线)、igr算法(划线)和igdr算法(实线)的召回率r(l)随取值l的变化曲线。其中标有malicious的图代表制造50个极端恶意用户,可以看出三种算法针对极端恶意用户的效果都比较好,gr算法和igr算法的表现比较相近,igr算法略好于gr算法,igdr算法明显好于gr算法和igr算法。标有random的图代表制造50个随机的恶意用户,可以看出三种针对随机评分的恶意用户效果都相对较差,igdr算法略好于gr算法和igr算法。图3为制造100个恶意用户时gr算法(点线)、igr算法(划线)和igdr算法(实线)的召回率r(l)随取值l的变化图。标有malicious的图表示制造的100个恶意用户为极端恶意用户,标有random的图表示制造的100个恶意用户为随机评分的恶意用户。各算法的效果和图2相近,说明在恶意用户数目变化较小时,各算法的表现效果好坏的相对性不会变化。以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。当前第1页1 2 3 
技术特征:1.一种基于电商评论识别恶意用户的方法,其特征在于包括如下步骤:
步骤1,构建三元组g[ui,oα,ωs]用于存储评分数据,ui代表用户i,i={1,…,m},m是用户数;oα代表商品α,α={1,…,n},n是商品数;ωs代表评分s;
步骤2,初始化所有用户的信誉为1;
步骤3,计算各商品在各个评分下的带权群组大小,权值即为评价该商品的用户信誉;
步骤4,根据步骤3得出的带权群组大小,计算不同商品中各群组的占比矩阵;
步骤5,步骤4得到的占比矩阵中,行和列分别对应商品和评分,将其映射到行和列分别对应用户和商品的矩阵中;
步骤6,计算各用户所在群组占比的平均值和标准差,并计算用户评分的标准差;
步骤7,根据步骤6计算得到的数据计算用户信誉;
步骤8,基于步骤7计算得到的用户信誉,重复步骤3-7,然后计算两次用户信誉的差值,若大于阈值则以新的用户信誉重复步骤3-7,直至用户信誉变化小于或等于阈值时迭代结束;
步骤9,对最终得到的用户信誉进行排序,将信誉最低的l个用户当作恶意用户。
2.如权利要求1所述的基于电商评论识别恶意用户的方法,其特征在于:所述步骤3中,根据下式计算商品α在评分s下的带权群组大小λsα:
其中,ris表示对商品α评分为s的用户i的信誉分。
3.如权利要求1所述的基于电商评论识别恶意用户的方法,其特征在于:所述步骤4中,根据下式计算不同商品中各群组的占比矩阵:
其中,λsα为商品α在评分s下的带权群组大小。
4.如权利要求1所述的基于电商评论识别恶意用户的方法,其特征在于:所述步骤5的具体方法是:
其中,当用户i对商品α的评分为s时,将商品评分矩阵中的映射到用户商品占比矩阵中得到a′iα,如果没有评分认为值不存在。
5.如权利要求4所述的基于电商评论识别恶意用户的方法,其特征在于:所述步骤6中,根据下式计算用户i所在群组占比的平均值:
其中,ki为用户i的度。
6.如权利要求5所述的基于电商评论识别恶意用户的方法,其特征在于:所述步骤6中,根据下式计算用户i所在群组占比的标准差:
其中,ki为用户i的度。
7.如权利要求1所述的基于电商评论识别恶意用户的方法,其特征在于:所述步骤6中,计算用户评分的标准差的具体过程是;
首先计算各个用户的平均评分:
其中,ωiα表示用户i对商品α的评分,ki是用户i的度;
然后计算评分的标准差:
8.如权利要求1所述的基于电商评论识别恶意用户的方法,其特征在于:所述步骤7中,根据下式计算用户信誉:
其中,μ(a′i)、σ(a′i)、σ(ωi)分别是用户i所在群组占比的平均值、用户i所在群组占比的标准差、用户评分的标准差。
9.如权利要求1所述的基于电商评论识别恶意用户的方法,其特征在于:所述步骤8中,两次用户信誉的差值计算公式是:
δ=|r-r'|=∑i(ri-r′i)2/m
其中,δ为差值,r、r'分别为两次用户信誉,ri、r′i分别为用户i的两次用户信誉。
技术总结本发明公开一种基于电商评论识别恶意用户的方法,步骤是:步骤1,构建三元组用于存储评分数据;步骤2,初始化所有用户的信誉;步骤3,计算各商品在各个评分下的带权群组大小;步骤4,计算不同商品中各群组的占比矩阵;步骤5,将占比矩阵映射到行和列分别对应用户和商品的矩阵中;步骤6,计算各用户所在群组占比的平均值和标准差,并计算用户评分的标准差;步骤7,根据步骤6得到的数据计算用户信誉;步骤8,基于步骤7得到的用户信誉,重复步骤3‑7,然后计算两次用户信誉的差值,若大于阈值则继续迭代,直至小于或等于阈值;步骤9,将信誉最低的L个用户当作恶意用户。此种方法可提高筛选恶意用户的精确度,增大识别过程计算的稳定性。
技术研发人员:孙宏亮;付泉赟;卜湛;曹杰
受保护的技术使用者:南京财经大学
技术研发日:2020.01.20
技术公布日:2020.06.05