APP下载

基于用户偏好和项目偏差的创新型科研项目推荐技术研究

2021-07-30贠涛

微型电脑应用 2021年7期
关键词:创新型偏差聚类

贠涛

(中国科学技术交流中心,北京 100045)

0 引言

各种网络平台的创新型项目推荐功能能够使用户快速获取有价值的信息,因此对此类技术开展研究十分必要。协同过滤算法在创新型项目推荐技术中的应用非常普遍,但由于没有充分考虑用户的个性化需求以及推荐项目间类似元素存在相互干扰的问题,该算法的准确性受到了严重的限制。本文提出了一种基于用户偏好和项目偏差的协同过滤算法(IUCF算法)用于创新型项目推荐,首先进行用户和项目的聚类再分别计算评分,最后基于二者融合后的预测评分结果实现项目推荐。

1 概论

1.1 用户评分协同过滤算法

该算法的计算流程为:基于用户—项目评分矩阵获取不同用户的相似度;利用相似度进行相邻用户匹配;通过相邻用户进行预测评分。选取皮尔森相关系数进行用户的相似度计算[1],如式(1)。

(1)

1.2 LDA主题模型

LDA(latent Dirichlet allocation,潜在Dirichlet分布)模型通过Dirichlet概率分布对文本文件的潜在概率进行设定,再通过抽样算法分别对文本—主题以及主题—词组的潜在分布进行预估。基于Gibbs采样的抽样算法[2]为式(2)。

(2)

1.3 算法分析

在对创新型项目进行评分预测时,项目间类型较为相近的元素会互相产生干扰进而造成项目偏差,同理,用户通常是在整个用户集中选择近邻,没有考虑用户本质的差异,因而无法明确表达用户对于项目的个性化需求,此外,用户的偏好对用户给出的项目评分存在实际的影响,所以必须以充分挖掘用户偏好和项目偏差为基础对创新型项目进行评分。

IUCF(item deviation and user preference combin filtering,项目偏差与用户偏好组合过滤)算法充分体现了用户和项目的本质差异,依据用户本质和项目类别实现聚类,能够获得准确的项目偏差分析结果。项目中某类型出现次数的占比与用户评分矩阵相结合,能够使出现次数较多的类型获得对应的高分,从而明确用户的偏好。

2 算法设计

IUCF算法的模型如图1所示。

图1 IUCF算法模型

该算法包含两个部分,一是分别基于用户簇和项目簇完成不同类型项目的用户偏好评分和项目偏差评分,二是利用项目簇中目标用户对项目的评分均值,通过线性加权处理得到最终的预测评分。

2.1 聚类处理

(1)项目簇创建

(3)

通过该矩阵的一个行可获得项目主题簇CNn,通过一个列可获得主题项目簇CTt[4],即式(4)。

(4)

式中,CNn为包含项目n的主题的集合;CTt为主题是t的项目的集合;i、j分别为主题号和项目号。

项目n的找寻过程为:首先确定项目所在集合CNn,接下来确定对应每个主题的CTt,通过对CTt的并集处理获取包含项目n的项目簇Cn,其表达式为式(5)。

(5)

(2)用户簇创建

用户的职业、性别、年龄都可以作为用户的属性元素。设Q为用户的集合,Q={Q1,…,Qi},Qi为第i个用户,每个用户的属性集合为Qi={q1,…,qk},qk为i用户所具有的第k个属性。

K-means聚类应以用户基本属性的预处理为前提,其过程以通过对具体的属性进行编码分组实现。对于性别,以数字1和2分别代表男性和女性;对于年龄,可通过划分不同的年龄段进行分组,其中,1—80岁人群以20岁为间隔创建编号1—4的四个组,80岁以上人群全部划入5号组;对于职业,首先对所有用户的职业进行分类,再明确各种职业所对应的用户数量,根据成组元素二八定理的重要性权重理论,将用户数量排名属于前20%的职业分别编入1—4号组,剩余职业全部编入5号组。按照上述方式分组后,用户属性集合Qi即可通过数字编码表示。

鉴于K-means聚类具有无监督学习的特征,本文选用簇内曲线拐点聚类法基于SSE(sum of squares errors,误差平方和)确定聚类的实际数量。K-means聚类的结果即为包含用户a的用户簇Ua,即式(6)。

Ua={uj|uj∈Q,j∈[1,i]}

(6)

式中,uj为用户簇所包含的第j个用户。

2.2 项目偏差分计算

分别基于用户簇和项目簇对用户和项目进行过滤,通过单个项目得分与所有项目平均得分的差值来量化项目偏离的程度。具体的计算过程如下。

(7)

(2)在用户簇中,计算目标用户与其余用户的放大相似度,筛选出与目标用户a相关性最强的k个用户作为其最近邻,为式(8)。

(8)

(3)在用户簇中,用户a对项目n的项目偏差IDan分由加权平均偏差表示,即式(9)。

(9)

2.3 用户偏好分计算

用户偏好分表达了用户对各种项目的主观偏好,能够弥补评分项过少的情况下项目偏差分调节能力不足的缺陷,具体的计算过程如下。

(1)通过用户类型偏好明确用户类型喜好,用户偏好分是某一类型在所有类型的总评分中所做出的贡献占比,即式(10)。

(10)

式中,pai为用户a对第i个类型的用户偏好分;sai为用户a对第i个类型的打分次数;paj为用户a对项第j个类型的评分;m、n分别为类型数量和项目数量。sai为用户—类型评分矩阵Sa×m内的所有项,Sa×m的获取方法为式(11)。

(11)

z-score标准化能够体现单项值与平均值差距的大小,该数值的正负说明了用户对类型的喜好,即喜欢或不喜欢,用户类型偏好分的z-score标准化处理方式为式(12)。

(12)

(13)

式中,dit为矩阵Dm×t的第m个类型与第t个主题相对应的概率;Nn为主题簇CNn中主题的总数量。

2.4 综合预测评分

在包含创新型项目的项目簇初始评分均值的基础上,加入用户偏好分和项目偏差分即可得到该项目的综合预测评分。引入权重系数λ调节用户偏好分和项目偏差分,则用户a对项目n的综合预测评分Tan的计算方式为式(14)。

(14)

3 实验验证

实验采用国外某知名高校所建立的Movielens100k数据集,其中包含943位用户对1 682个创新型项目的预测评分以及用户的属性和项目的类型。从数据集中选取80%的数据进行评分训练,其余部分用以评分测试。

3.1 实验指标

实验结果的准确性通过MAE(平均绝对误差)进行衡量,其计算方式为式(15)。

(15)

式中,N为预测项目的数量。MAE值越小则项目推荐的准确性越高。

3.2 参数确定实验

(1)K-means聚类数量

基于肘方法分别代入2—8七个数值作为待定聚类数量,计算出每个数值对应的SSE,计算结果如图2所示。

图2 不同聚类数量下SSE的计算结果

由图2可见,SSE的值随聚类数量的增多而减小,聚类数量由2增加到3时,SSE的减幅为约为300,且自此之后的减幅均比第一次调整小,可见聚类数量为3时对应的坐标点即为簇内曲线拐点聚类法的拐点,因此能够确定最佳聚类数量为3。

(2)LDA聚类主题数量

设定λ=1,由式(14)可知此时预测评分仅受项目偏差分的影响,因此可以快速确定最合适的主题数量。将近邻数量设定为10、30、50,基于Gibbs抽样方法分别代入12—18七个数值作为待定主题数量,同时根据文献[1]的实践设定a=50/T,β=0.01,计算结果如图3所示。

图3 不同主题数量下MAE的计算结果

由图3可见,在设定的3种近邻数量条件下,MAE值均在主题数量为15时为最小,因此可以确定最佳LDA聚类主题数量为15。

(3)权重系数λ

将近邻数量设定为10、30、50,反复对权重系数λ的值进行调整,通过IUCF算法所得的MAE值,如图4所示。

图4 不同权重系数下MAE的计算结果

由图4可见,在设定的3种近邻数量条件下,MAE值均在λ=0.6时为最小,因此可以确定权重系数λ的最佳取值为0.6。

3.3 对比实验

为了验证本文所提出的IUCF算法在准确度方面是否具有优势,选取常规协同过滤算法UCF[2]、基于项目类型的协同过滤算法ICF[3]、基于概率矩阵分解和特征转移的推荐算法FTMF[4]以及基于安全网络的协同过滤算法ECFATN[5]共4种算法与本算法进行准确度对比,实验结果如图5所示。

图5 不同算法的MAE值对比结果

由图5可见,通过IUCF算法所得的MAE值低于UCF、ICF与FTMF 3种算法,说明IUCF算法相较于其它协同过滤算法能够实现更准确的推荐。在不同近邻数量的条件下,IUCF算法的MAE值低于ECFATN算法,但近邻数量达到30以上时,MAE值较FTMF算法高,分析认为可能是近邻数量过多造成的,而只要近邻数量少于30,IUCF算法的MAE值均低于FTMF算法,可见在近邻数量不多于30的条件下IUCF算法的准确度是具有优势的。

4 总结

为了解决创新型项目推荐技术原有算法准确度受限的问题,本文提出了一种基于用户偏好和项目偏差的IUCF算法,介绍了算法的实现机制,阐述了算法的设计过程,通过实验确定了算法关键参数的最佳取值,并通过与其它算法的对比验证了IUCF算法在创新型项目推荐方面所具备的高准确度的优势。本文所设计的算法有效解决了用户与项目间类似元素互相干扰所造成的准确度较低的问题,目前已应用于国内人口年龄组划分新方法的研究项目并发挥了显著的作用,具有很强的实用性。

猜你喜欢

创新型偏差聚类
学校创新型人才培养的实践与思考
新工科下创新型人才培养的探索
高校实践教学模式在创新型人才培养中的应用
巴斯夫推出创新型DURA-COLOR抗老化技术
如何走出文章立意偏差的误区
两矩形上的全偏差
基于K-means聚类的车-地无线通信场强研究
基于高斯混合聚类的阵列干涉SAR三维成像
基于Spark平台的K-means聚类算法改进及并行化实现
关于均数与偏差