改进Slopeone算法在个性化就业推荐系统中的应用

    刘顺文

    摘要:个性化就业推荐系统可以帮助求职者在海量的就业信息中,快速找出适合个人实际情况的就业信息。由于就业信息数量过于庞大,系统计算得出推荐结果的过程不仅耗时长,而且个性化服务的效果也很难令人满意。将Slope one算法和就业信息内容相似性相结合,构成的改进Slope one算法引入个性化就业推荐策略中,采用MapReduce分布式编程实现改进Slope one算法并运行在Hadoop集群上,帮助提高个性化就业信息推荐的质量,增强用户体验效果。

    关键词:Slope one算法;内容相似性;个性化就业推荐系统

    中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)12-0084-02

    Abstract: Personalized employment recommender system can help job seekers to find out the employment information which is according with the actual situation of individual quickly in vast amounts of employment information. Due to the large amount of employment information, The process of system calculated recommendation results is not only time-consuming, and the effect of the personalized services is difficult to satisfactory The Slope one algorithm and similarity of employment information constitute an improved Slope one algorithm,it is achieved by MapReduce and runned in Hadoop cluster, to help improve the quality of personalized employment information recommendation and enhance the user experience.

    Key words: Slope one algorithm; similarity of content; personalized employment recommender system

    1 概述

    21世纪,信息技术和互联网技术发展迅猛,我们在享受互联网带来的巨大便捷和红利的同时,互联网产生的大规模数据引发了信息超载问题。通过百度、Google等传统的搜索引擎,在输入关键词后可以快速地为我们检索出相关的内容,但是无法提供符合每个人实际情况的个性化信息。个性化的信息推荐系统成为解决信息超载问题的有力工具,可以满足我们对个性化信息的追求。

    在互联网上众多的就业信息中,求职者通过信息分类浏览,输入关键字查找来寻求一份适合自己的就业岗位,费时费力,很容易陷入信息迷航中,也不一定能找到符合个人实际情况并且令人满意的就业信息。为了有效解决这个问题,很多研究学者提出了一种方法,根据求职者的求职简历、历史行为、用户历史评分数据等信息,通过个性化推荐策略的分析与计算,找出最符合其求职意向和个人实际情况的就业信息推荐给求职者,这就是个性化就业推荐系统。虽然个性化就业推荐系统可以为求职者提供个性化的就业信息服务,但是在面对海量的就业信息是,个性化服务的实时性和服务效果并不是很理想。将分布式计算平台Hadoop和个性化就业推荐系统相结合,形成分布式的个性化就业推荐系统,借助高效的MapReduce计算方式来应对海量的数据分析和计算,以此来提高推荐系统的实时性和用户体验效果。

    2 Slope one算法概述

    个性化推荐算法效率的高低直接决定着个性化推荐结果的好与差, 由于Slope one算法简单高效,在线计算的速度快,近几年在个性化推荐领域备受关注。Slope one算法的思想是基于新物品与用户评分过的物品之间的平均偏好值差异来预测用户对新物品的偏好值,它认为两个物品的偏好值之间存在某种线性关系,形如[fx=x+b]这样的线性函数,可以由物品x的偏好值估算出用户对新物品的偏好值[f(x)],而计算两两物品之间的平均偏好值差异值b成为关键。物品i和物品j之间的平均偏差值,记为[devj,i],采用公式(1)来计算:

    其中,β表示Slope one算法在最终计算结果中所占的权重值,通过对实验结果的分析,β的取值范围为[0.6,0.7],计算结果较佳。

    对于Slope one算法对系统内存的消耗大的问题,通过分析,上述的改进Slope one算法适合于MapReduce分布式计算方式,将个性化就业推荐系统部署在基于Hadoop平台的分布式系统上,改进Slope one算法的实现采用MapReduce形式的分布式编程,运行在Hadoop集群上,计算过程中产生的中间结果和对内存的消耗,由集群中各个节点分摊。这样不仅仅可以解决大规模数据下,个性化推荐系统计算效率低的问题,而且可以很好地解决Slope one算法消耗大量内存的问题。

    4 改进的Slope one算法在个性化就业推荐系统中的应用

    个性化就业推荐系统部署在Hadoop集群上,改进Slope one算法以MapReduce作业的形式实现的步骤如下:

    第一步,计算用户的历史评分记录。

    把所有的评分记录分为训练集和非训练集两部分,非训练集中的评分值全部初始化设置为0。在Map过程中,输出数据的格式为,如果Rate的值大于0,说明是训练集中用户实际的评分值,否则是非训练集,需要通过计算来预测用户的评分值;在Reduce过程中,输出数据格式为<待预测就业信息评分的UserID,训练集中评分集合>。

    第二步,计算就业信息之间的平均偏好值差异。

    需要两个MapReduce作业来计算就业信息之间平均偏好值的差异,第一个MapReduce作业计算待预测就业信息和其他就业信息之间的平均偏好值差异。将上一步的结果中相同的UserID进行合并,找出Rate值为0的记录。Map过程中,将Rate值不为0的InfoID1和Rate值为0的InfoID2结合在一起(InfoID1,InfoID2)作为输出数据的key,输出的value为(UserID,rate),rate为InfoID1和InfoID2的评分差。可以在combine阶段,合并得到作为第一个MapReduce作业的结果。

    第二个MapReduce作业计算训练集中就业信息之间的平均偏好值差异。以两两组合的InfoID为key,value的格式仍然为(UserID,rate)作为Map过程的输出,在Reduce过程,求出就业信息之间的平均评分差值dev,最后的输出格式为<(InfoID1,InfoID2),(UserID,dev)>.

    然后合并两个MapReduce作业的结果,得到的输出为<(UserID,InfoID),Rate>,看作是一个用户对一条就业信息的评分值。

    第三步,计算就业信息之间的相似度矩阵。

    读取每一条就业信息,把就业信息的文本内容以向量的形式来表示。以作为Map阶段的输出,在Reduce阶段合并为一个向量矩阵,行号为InfoID。然后把<(InfoID1,InfoID2),(InfoVector1,InfoVector2)>作为Map阶段的输入,输出形式为<( InfoID1,InfoID2),sim(1,2)>,在Reduce阶段可以生成就业信息相似度矩阵。然后按照公式(7)计算得到基于就业信息内容的预测评分<(UserID,InfoID),Rate>。

    第三步,预测偏好值。

    按照公式(8),把第二步和第三步的结果进行整理分析,即可得到用户u对就业信息j的最终预测评分值。

    5 结论

    将改进Slope one算法进入基于Hadoop平台的个性化就业推荐系统中,推荐结果的平均绝对误差(MAE)减小,为实时的在线推荐助益很大,提高了个性化推荐策略的计算效率和个性化就业信息推荐的质量。但是整个个性化就业推荐系统的改进完善之路不会停止,我们需要将其他领域的知识和更先进的方法引入到就业信息推荐系统中,致力于个性化推荐服务质量迈向更高的层次,Slope one算法也需要在实际应用中不断地去改进以提高算法效率。

    参考文献:

    [1] 黄梅娟. 协同过滤算法在个性化就业推荐系统中研究[J].电脑知识与技术,2015,11(8).

    [2] 杜茂康, 刘苗, 李韶华,等. 基于邻近项目的Slope One协同过滤算法[J]. 重庆邮电大学学报:自然科学版, 2014, 26(3).

    [3] 宫翠爽. 基于Hadoop计算模型的Slope One算法改进[D].鞍山: 辽宁科技大学, 2014.

    [4] 胡旭, 鲁汉榕, 陈新,等. 基于项目属性相似和MapReduce并行化的Slope One算法[J]. 空军预警学院学报, 2015(1):54-58.

    [5] 王毅. 基于Hadoop的Slope One及其改进算法实现[D].成都: 西南交通大学, 2011.

    [6] 杨凌云. 基于Slope One算法的图书推荐系统优化[J]. 电脑知识与技术, 2015(4):79-81.

    [7] 马腾腾, 朱庆华, 曹菡,等. 基于Hadoop的旅游景点推荐的算法实现与应用[J]. 计算机技术与发展, 2016(3).

    [8] Dietmar Jannach,Markus Zanker.推荐系统[M]. 蒋凡,译.北京:人民邮电出版社,2013:25-28.

    

    

相关文章!
  • 融合正向建模与反求计算的车用

    崔庆佳 周兵 吴晓建 李宁 曾凡沂<br />
    摘 要:针对减振器调试过程中工程师凭借经验调试耗时耗力等局限性,引入反求的思想,开展了

  • 浅谈高校多媒体教育技术的应用

    聂森摘要:在科学技术蓬勃发展的今天,我国教育领域改革之中也逐渐引用了先进技术,如多媒体技术、网络技术等,对于提高教育教学水平有很

  • 卫星天线过顶盲区时机分析

    晁宁+罗晓英+杨新龙<br />
    摘 要: 分析直角坐标框架结构平台和极坐标框架平台结构星载天线在各自盲区状态区域附近的发散问题。通过建