APP下载

一种改进的协同过滤算法在中小企业服务平台的研究与应用

2019-04-15喻金平巫光福曾宪文

计算机应用与软件 2019年4期
关键词:项集矩阵数据库

喻金平 刘 娟 巫光福 曾宪文

1(江西理工大学工程研究院 江西 赣州 341000) 2(江西理工大学信息工程学院 江西 赣州 341000)

0 引 言

个性化推荐被广泛应用在社会生活的各个方面,但其在中小企业服务平台的应用尚不成熟。在大多数情况下,该平台的商品就是服务,机构提供的服务并非有形的物品。在该平台,虽然不同的用户在每个阶段所需的服务各有不同,但是相同类型的用户在特定的进程中的需求是有规律的。比如对于一些初创企业普遍有公司注册、代理记账、知识产权、社保人事、办公资源、人力资源等方面的需求。

针对这些问题,Li等[1]提出加权调整余弦相似度法计算用户—项目相似度,并利用量子运动方程,根据量子蛙群的共同演化,寻找最优位置;Zarzour等[2]提出一种基于降维和聚类技术的协同过滤推荐算法来提高协同过滤在电子商务平台的推荐效果;项目兴趣度特征向量被孙光明等[3]引入并提出基于项目兴趣度的协同过滤新算法;文献[4]提出一种基于可靠性的相似度计算方法,首先利用用户对常用项的打分来获得用户之间打分的可信度,然后将可信度引入调整后的余弦相似度中,在调整之后再利用将惩罚函数减轻常用项对相似度计算的影响,最后综合测量。

但是,以上各种研究中均未考虑到在中小企业平台中服务分类对推荐系统的影响。本文根据平台的数据特征,应用层次分析法计算属性权重,建立用户-属性模型、服务-属性模型。通过关联性分析,找出同类别的其他项目。最后改进CFRA,实现对用户的推荐。结果表明,本文方法提高推荐算法的准确性,更适用于中小企业服务平台,对于支持广大创业者创业和推动全国双创工作的发展具有重要的现实意义。

1 数据预处理

筑梦园的数据类型具有以下特点:首先,提供的服务是一种无形的商品,这种商品由于没有客观标准来衡量就更加注重以消费者为中心,为其提供合意的服务为宗旨。其次,作为一个公益性平台,要保证被提供服务方有切实的需求,就要对中小企业的真实性进行考察。最后,提供服务的服务机构或个人的性质要与服务的性质相同。也就是说,假设企业需要财务方面的服务,而系统提供的服务机构或个人却是人力资源方面的,这就会降低推荐的准确性。

针对上述特点本文将提出以下解决方式:

应用AHP分析企业和服务机构并建立模型。AHP是一种系统分析的方法[5],旨在解决结构复杂、决策标准无法度量的问题,在20世纪70 年代末由美国运筹学家 T.L.Saaty 提出。与其他的算法,如德尔菲法[7]、数据包络分析DEA[8]、模糊综合评价法[9]、人工神经网络评价法[10]、灰色综合评价法[11]等相比,它具有思维简单、易于量化同时可以结合主观判断和客观推理的特点。并且可以避免在结构复杂的多属性综合逻辑推理中出现的错误,因此得到广大专家学者的广泛应用与研究。

AHP的基本内容是:

(1) 根据评价目标的组成及属性,对总目标进行分层分析:需要评价的总目标为目标层;目标的基本属性为准则层,准则层的评级之和即目标层的评级;实现目标的方法、措施为措施层。

(2) 将目标层-准则层-措施层按照上下级关系,将层次之间有直接联系的因素连接起来,即构造出该目标的层次结构图。层次结构图的构建是层次分析过程的基础,它直接影响每个层次的索引权重。

(3) 按级别分解一般目标,并通过成对比较来比较同一级别的因子,以确定因子相对于优势因子的权重系数。通过迭代计算,直到得出所有因素对总目标的权重序列。

其中企业的基本属性为信息完善度、企业的真实性考察、企业文化,目标层是此企业在平台的综合评分;服务机构或个人的基本属性是其所能提供的服务范围、企业对其提供服务的评价等,目标层是服务机构在平台的综合评分。

对服务机构和个人的性质和服务的性质进行分类:技术、管理、人才、政策和信息五个大类。其中技术类包括:技术创新、节能减排、安全技术、信息技术、工业设计、矿业设计。管理类包括:工程咨询、工程管理、管理咨询、金融服务、财税法务、资产管理、企划广告、生产服务。人才类包括:人力资源、健康咨询、福利保险。政策类包括:认定咨询、政策咨询。信息类包括:资讯服务、报关服务、物流仓储。服务机构或个人可根据以上分类判断所属类别(根据实际情况,一个服务机构或服务可同时属于多个分类)。建立服务-属性矩阵,如表1所示。

表1 服务-属性矩阵

表1中,A是属性,即分类,I是服务,R是服务I是否属于属性A,其数值用0或1表示,其中0为不属于,1为属于。同理可以建立服务机构-属性矩阵。

2 算法设计

2.1 关联分析

关联分析就是要在数据集中寻找数据之间的关系,而这些数据集往往是大规模的。这些关系可以有两种形式:频繁的项目集或者关联规则。频繁项集是总事务中存在一些频频出现在一起的项目。关联规则暗意两个或几个项目可能存在强联系。具体定义为:若I={i1,i2,…,im}为项目的总集合,其中i为项目。且B={i1,i2,…,in},m≥n,BI;而事体T为一项目子集,并且每个事体有且只有一个标识,即Tid。项集B是事体T子集,即B⊆T;D表示事体数据库,即B⊆T⊆D。支持度是比率,即第n级项目集B的出现次数与总对象数据库T的比率。如果该比率大于预设阈值,则B是频繁项目集合。

对于两个可能存在强关系的项目或项目集,则用关联规则来描述其逻辑关系,即X→Y。由于这些关系是可能存在的,所以提出两个标准——支持度、置信度来量化关联分析是否成功。支持度是指关联规则中呈现的某个项集的频率,即某项集出现的次数与总事体次数的比值,可以用概率P(XY)来表示:

support(XY)=P(XY)

(1)

置信度是针对一条规则定义的,指包含的占有强度,也就是说事体数据库D中有概率为P的项目不但包括X项而且也囊括XY的事体,即:

confidence(X→Y)=P(Y/X)=P(XY)/P(X)

(2)

2.2 Partition算法

在实际应用场景中数据库通常是巨大的,针对这一现实情况,Partition算法对Apriori提出改进。其主要措施就是加入对数据库的划分,那么扫描整个数据库就仅仅需要两次。第一次是在划分数据库之时,第二次则是在结合局部频繁项集的时候。这样避免了频繁查询整个数据库,这意味着减少算法运行时间。

Apriori算法若要找繁项n项集则要查询n次数据库,假设这个数据库无比庞大,则执行该算法使用的时间是非常长的。为了缩短算法查询时间,Partition算法将总事件数据库划分为几个不相交的子数据库;然后针对每个子数据库,采用经典Apriori求解局部频繁项集,合并大项集以生成候选集;最后以支持度为衡量标准获取总事体数据库中的频繁大项集。Partition算法流程图如图1所示。

图1中,D为数据库;D1,D2,…,Dm为分区数据库;L1,L2,…,Lm为局部大项集;C为全局候选集;F为全局大项集。

2.3 协同过滤推荐算法

协同过滤推荐算法是一种被电子商务平台广泛使用的用户喜好预测算法。它假定相似的用户有类似的喜好,那么相似用户对事物的评价是相互借用的,据此发掘用户或项目之间的联系。该算法以使用的主体为划分标准,可以被分为基于用户的(User-Based)和基于项目的(Item-Based)两种。本文算法在基于用户的基础上加以改进。

协同过滤算法中的重要数据来源是用户评分矩阵。如表2所示。

表2 用户评分矩阵

用户项目评分矩阵是用户的评估矩阵。其中U表示用户,I是项目,G是评价,Gij是用户i对项目j评价。

相似性度量是用于基于用户的评分矩阵来量化用户相似性的方法,如余弦相似度、相关相似度和修正的余弦相似度[14]。相关相似性又称为皮尔森(Pearson)相关性,是上述方法中最常用的相似度计算方法。计算方式如下:

(3)

寻找最高相似邻居集:通过式(3)计算出待推测用户与已有用户之间的相似性,给定阈值,阈值范围内的用户组成最高相似邻居集。

基于用户的协同过滤算法步骤为:

(1) 数据表示:用户对项目的评价表示为如表2的矩阵形式,其中Gij是用户i对项目j进行评分,分数由数字1~10之间的整数表示,并且该值越高表示用户i对项目j更满意。

(2) 相似邻居集查找:基于式(1)中的数据,用式(3)计算用户之间的相似性。设定用户邻居阈值t,依据各个用户之间相似度从大到小排序。与目标用户类似的前t个用户是用户的类似邻居集。这一步是该推荐算法的核心。

(3) 产生推荐:使用式(4),基于在步骤(2)中收集的相似邻居集来预测要推荐的用户对未评级项目的评估。

(4)

2.4 基于Partition算法改进的协同过滤推荐算法

在中小企业服务平台中,由于用户在不同时期的关注点不同,而不同服务的目标用户也不同,因此在大多数应用场景下,服务的目标用户是存在显著差别的。在现实生活中由于企业在不同时期的需求的往往是在几个可数的类别中,那么如果我们的推荐在这类需求当中实现,那么推荐的准确性就会大大提高。服务项目分类标准如表3所示。

表3 服务项目分类标准图

这就要求先对项目进行关联分析,然后找到与预测项目类似的其他项目,形成具有一定相关性的集合。 然后在该集合中寻找该项目的近邻。

算法设计流程如下:

(1) 划分事务集合。按照表3中的分类标准进行数据库分割,在此基础上进行协同过滤可以减少运行时间增大推荐准确性。

(2) 找出全局频繁项集。在步骤1中生成的数据集D由服务项的分类标准细分。根据经验,设置支持阈值在每个类别下找到频繁项集(局部频繁项集),组合上述结果获得全局大项频繁集。

(3) 计算推荐值。以步骤2为依据,对待推荐用户产生推荐。① 遍历上一步中形成的结果,查询包含项j的所有频繁项集,并找到联合以形成相关项U类;② 根据用户-项目评分矩阵采用person相似度计算公式计算用户相似度。

3 实验结果与分析

3.1 实验数据与评估标准

为了验证CFBP算法的预测效果,本文采用企服城科技有限公司提供的赣州市中小企业服务平台上的数据集作为实验数据集。该数据集包括988个用户,1 673个服务,并且得分集为{1,2,3,4,5,6,7,8,9,10},其中值越大,用户对项目的偏好越高。该数据集有近100 000个记录。

有许多方法可以被用来评估推荐系统的性能。本文中的评估标准使用平均绝对误差(MAE),均方根误差(RMSE)和推荐覆盖率(Coverage)。 MAE是目前使用广泛的准确性衡量标准,其值越小推荐越准确。RMSE是NetFlix Prize的标准度量指标,RMSE值越低预测能力越高。 Coverage描述了推荐系统向用户推荐的项目集合覆盖范围,用于评估推荐系统的推荐是否全面的常用指标,该值越大系统覆盖能力越强。公式如下:

(5)

(6)

(7)

3.2 实验内容与结果

3.2.1 实验一

通过实验比较本文算法(CFBP)、Enrique等[15]提出的关联规则算法(En)和Huang等[16]提出的关联规则算法(Huang)的平均绝对误差(MAE)。结果如图2所示。

图2 三种算法的MAE比较

从图2易得出,在支持度和可信度一定的条件下CFBP算法的MAE值总小于Enrique等提出的关联规则算法和Huang等提出的关联规则算法,且在MinSup=0.2,MinConf=0.4时,本文算法的MAE值达到最小,即该算法的预测值最准确。

3.2.2 实验二

在给定MinSup=0.2,MinConf=0.4的条件下,通过实验对CFBP算法、IBCF算法、SRP-CCF算法[17]和IBCF-IDT 算法[18]的平均绝对误差(MAE)值进行比对,结果如图3所示。

图3 四种算法在不同邻居数下的MAE比较

图3显示当最近邻居的数量一定时,CFBP算法的MAE值小于其他算法。 且在MinSup=0.2,MinConf=0.4,最近邻数目为50时,本文算法的MAE值达到最小值,即算法的预测值最准确。

3.2.3 实验三

通过实验比较本文算法(CFBP)、KNN-100[19]和IRP-CF[20]的MAE、RMSE和Coverage值,如图4所示。

图4 性能测试对比

从图4易得出,KNN-100、IRP-CF与CFBP三种算法的MAE和RMSE值依次降低,Coverage值则上升。在三种算法中CFBP算法的MAE和RMSE值最低,即该算法的预测精度最准确;Coverage值最高,即该算法在平台上的覆盖能力最强。

4 结 语

本文根据中小企业服务平台的数据特征和分类标准,用AHP建立服务属性模型,通过该模型,增加服务机构的曝光率,鼓励公益事业的发展。以平台的服务分类为标准划分数据库,通过Partition算法快速地找出同类别的其他项目,再用协同过滤找到推荐值。实验表明,对于中小企业服务平台而言,该算法有较高的推荐准确性和推荐覆盖性。下一步工作是进一步解决数据的冷启动性对本文算法的挑战,同时减低算法的空间复杂度。

猜你喜欢

项集矩阵数据库
基于共现结构的频繁高效用项集挖掘算法
基于排序树的Node-Apriori改进算法
不确定数据频繁项集挖掘算法研究
多项式理论在矩阵求逆中的应用
数据库
数据库
数据库
数据库
矩阵
矩阵