APP下载

推荐系统算法分析与研究

2022-04-06任妮吴琼栗荟荃

电子技术与软件工程 2022年17期
关键词:准确度物品协同

任妮 吴琼 栗荟荃

(吉林动画学院 吉林省长春市 130000)

2022年全国普通高校毕业生达到1076万人次,创历史新高,这也就意味着毕业生可能面临着相当艰难的就业问题。尽管教育部、各高校都在积极帮助毕业生拓展就业渠道,为了毕业生能够高质量的就业而努力。然而,还是会有一部分毕业生就业难。期中固然有人多竞争压力大、就业信息太多无从下手等问题,但究其根本原因是毕业生对自身的优势不了解,就业目标不明确导致的。这就出现了企业想找人才找不到,社会问题毕业生想就业难。推荐系统可以很好的帮助毕业生筛选海量就业数据,对优质岗位进行推荐。本文以大学生个性化就业问题为例,对推荐系统常见算法进行深入的对比研究。

1 推荐系统评测标准

推荐系统是建立商品与用户关系的桥梁,能够帮助用户发现物品的价值所在。也可以将信息精准的展示在用户面前。目前,推荐系统在很多领域有所应用,包括电子商务、影视平台、社交网络、广告推荐等。推荐系统在不同应用领域的表现也不尽相同。如何判断一个推荐系统适合使用,是我们非常需要研究的问题。

需要对推荐系统的参与用户进行判断。常见的包括:消费者,销售者以及推荐系统提供平台。我们需要全方位的兼顾各种目标用户,综合评定,才能够获得性能优越的推荐系统。因此,测评一个推荐系统可以通过以下常规方法对推荐系统进行分析:

1.1 测评方法

1.1.1 日志分析法

消费者访问平台就会产生日志数据。日志数据是离线的、有固定标准的数据集。它能够比较精准的反映用户在某一时段的行为习惯及喜好。销售者能够很容易获得日志数据,并通过推荐系统分析出数据。其成本是非常少的。推荐系统可以将日志数据分成训练集和测试集,并通过数据分析模型进行预测分析,对比预设的数据分析指标进行推荐。日志数据分析的方法实质是对历史数据的分析,其优点是对平台系统的设备性能要求较低,并且不需要用户的实时参与。分析的历史数据通常不会实时变化,分析的速度比较快。但是,日志数据用于作为推荐依据的局限性也相当明显,举个例子,用户第一次访问某一个网页,由于数据集中没有包含该用户的历史行为,因此不能推荐。除此之外,推荐系统推荐的结果是通过数据分析的到的客观结果,但是用户的喜好是随时变化的、主观的,因此,无法获得用户的主观想法。

1.1.2 用户信息调查法

通过问卷调查方法、分析用户的操作数据了解真实用户的喜好。例如,想大学生推荐工作,可以招募大量的大学生用户对网页进行操作,并回答一些问题。分析招募的大学生对工作的偏好数据,包括行业、职位、职责、地点等数据。用户信息调查法解决了无法获得用户的主观想法的问题,但是招募大量用户参与实验的成本太大。

1.1.3 实时数据分析法

实时的数据分析是大数据分析比较有效的方法之一。可以通过并行给测试的方法,将用户分成若干小组,采用不同的算法对不同组的用户进行推荐。并以特定的规则实现优胜劣汰。

总而言之,一个推荐算法从设计到推出使用至少需要完成以上三个步骤。利用日志数据证明算法在历史数据计算的优势,然后通过用户信息确定用户对推荐算法的主观想法,是否满意,最后通过实时数据分析法客观的展示算法的优势。

1.2 测评指标

测评一个推荐系统可以使用上述方法,评价一个推荐系统的性能则可以通过定量的计算和定性的描述进行分析,常见的测评指标包括:

1.2.1 用户满意度

用户满意度是评测一个推荐系统好坏的最重要的指标之一,它能够客观的反馈用户对该推荐算法的主观态度。然而,用户满意度是比较难以获得的数据,它无法离线计算,只能在用户使用推荐系统时间接的获得。可以采用调查问卷等方式对用户的态度进行调研,这就对调查问卷的质量要求较高,只有综合考虑用户的个性化需求,用户才能比较有针对性的给出较准确的答案。另一方面,也可以从用户的行为间接的获得用户满意度的定性描述。举个例子,用户购买了推荐系统推荐的商品,就间接说明用户对推荐的结果是满意的。一般情况下,还可以通过用户的点击情况、停留网页时间、转换率等数据间接了解用户对该算法的满意程度。针对大学生就业情况,可以通过用户投递简历数据、浏览推荐职位时间等间接获分析户满意度数据。

1.2.2 预测准确度

预测准确度是非常重要的推荐系统离线测评度量指标。其判断的是推荐系统对用户行为的预测能力。在实际环境中,对推荐系统的评价研究都是通过预测准确度来衡量的。因为对推荐系统的研究方向有所差别,因此,预测准确度可以分为预测评分准确度以及TopN推荐。

预测评分准确度主要是对比用户给系统评分的预测与用户实际给系统的评分的误差,误差值越大,预测准确度越小,误差值越小,预测准确度越好,推荐系统性能越好。预测评分准确度可以通过平均绝对误差(MAE)、均方根误差(RMSE)等来进行计算。评分预测的本质是采用机器学习的思想,很多电商平台会使用评分预测衡量推荐系统,主要可以通过用户评分来实现。分析用户对商品的历史评分,分析商品 属性与商品的关系,建立模型,并通过学习模型不断积累预测用户对未知产品的评价。

TopN推荐一般是指对用户进行个性化推荐,主要通过准确率及召回率度量TopN推荐的预测准确率。实际上,TopN推荐更符合实际应用需求。举个例子,判断用户是否会购买商品比判断用户买完商品后对商品的评分,对商家更有用处。

预测准确度是对离线数据的分析,这意味着,预测推荐准确度不需要有实际的系统支撑,通过分析日志数据就可以实现。所以预测准确度,不需要实际控制推荐系统,有数据即可;不需要用户参与实践,极大程度降低了用户成本。这样对预测准确度数据的采集速度极快,且可以完成大量算法的测试。然而,也存在一定风险,实际数据具有稀疏性,会限制预测准确度的使用范围,举个例子,大学生A第一次登录就业平台,因缺少历史数据导致无发评价该用户的推荐结果。除此之外,机器学习的结果是非常客观的,无法像人一样有主观的感受,因此预测准确度只能提供完全客观的结论,评价结果可能会与实际结果有所偏差。

1.2.3 新颖性

对用户的体验有着很大的影响。新颖性反映了当我们将非热搜商品推荐给用户时,用户的接受程度。越新颖,用户的接受能力越强,客户的满意度就有可能越高。该指标的计算是比较粗糙的,需要结合用户信息的调查,才能够比较准确的计算出新颖度。

推荐系统的评测指标是非常多的,除了上述介绍的意外,还可以通过覆盖率、多样性、惊喜度、信任度、实时性、健壮性、商业目标等评测推荐系统算法,可以根据实际情况合理算则。

2 推荐算法分析

2.1 协同过滤算法

协同过滤算法是建议系统使用频率最高的算法之一。算法简单、易于理解。协同过滤推荐不需要领域知识,推荐的内容更个性化,对于非结构化的数据表现也相当不错。协同过滤算法的种类较多,比如以领域模型为基础的协同过滤算法。可以从用户(UserCF)角度分析用户的行为。举个例子,分析择业学生在招聘平台搜索的行为,点击查看的行为,在网页的浏览时间等进行汇总分析,将拥有相似数据额用户通过聚类进行分类,然后根据相同分类成员彼此兴趣爱好相互推荐。也可以从事物(ItemCF)的角度进行分析,分析岗位的特征,依据用户的历史操作精准匹配推荐。基于语义模型(LFM)也是协同过滤算法经常使用的算法模型。其通过数据中的隐含特征将用户的兴趣与相关物品进行关联。

综上所述,基于用户的协同过滤算法可以先完成与目标用户兴趣爱好相似的用户,将用户进行聚类,在根据挖掘的用户喜爱的商品对目标用户进行推荐。举个例子,100个同学登录招聘平台,每个用户都可以被认为是目标用户,其他的就是普通用户。以同学A为目标用户为例,将剩余的99名同学与A同学进行聚类操作,如果有10人与A同学的兴趣爱好相同,将他们归类到同一组。挖掘除A同学以外其他同学感兴趣的工作岗位,并进行汇总,推荐给同学A。因11个同学的兴趣爱好相同,推荐的结果的用户满意度可能较好。

基于物品的协同过滤算法可以直接分析用户的兴趣爱好,通过寻找与之相似的物品从而达到推荐的目的。

基于语义的模型推荐算法可以先对物品进行分类,通过分析用户的数据挖掘用户的喜好,再将物品进行推荐。例如,先对招聘平台的所有岗位按其属性特点进行分类,分类依据越多月能够精准的推荐职位给用户。然后根据用户的历史操作数据,操作平台行为分析用户的喜好,再将分类的岗位与用户喜好相对应进行推荐。协同过滤算法包括常用的模型算法:以场域模型为基础,以语义模型为基础,以图模型为基础。

2.1.1 基于领域模型

基于领域模型的协同过滤算法可以从不同角度分为基于用户的协同过滤算法及基于商品的协同过滤算法。

基于用户的协同过滤算法。通过用户的行为,将商品推荐给用户。主要包括对用户进行聚类分析,将有相同喜好或行为的用户通过聚类算法进行分类。例如,对100名在校大学生进行了分类分析。通过大学生对工作的偏好设置将大学生分成N类。对相同分类的用户的喜好进行列举及汇总,并进行推荐。例如大学生A、B、C均想要找计算机类的工作,通过相似度算法发现大学生A与大学生C的行为相似度高,可以将A搜索,但C没有搜索的工作推荐给大学生C。以用户为基础的协同过滤算法,其实质是对用户相似度的计算。将相似度高的用户的兴趣互相推荐。当用户对冷门的事物的喜好相似(都喜欢或都不喜欢)是,更能说明用户的兴趣是相似的。但基于用户的协同过滤算法只适用于对较少的用户的推荐,当用户特别多时,计算用户的相似度就非常麻烦。

基于物品的协同过滤算法是电商领域使用较多的推荐算法,Amazon、Netflix、YouTube的推荐系统都是以该算法为基础[1]。该算法通过用户的历史数据,对商品的相似度进行计算。并通过用户历史行为及商品相似度对用户进行推荐。例如大学生A找工作,第一次登陆平台查询了“大数据分析”、“数据可视化”等大数据相关岗位工作,第二次登录,大学生A仍然搜寻大数据方向相关职位,系统可以将新发布的工作与第一次用户查询的工作进行对比,将相似的工作推荐给用。

2.1.2 基于语义模型

基于语义模型推荐算法是近几年比较热门的新型推荐算法。该算法主要通过隐藏特征对用户进行推荐。基于语义模型推荐算法可以解要推荐给用户的物品的分类问题,依据用户的行为对商品进行聚类分析从而分类。例如大学生A想要找大数据方向工作,A同学在招聘平台多次搜所“大数据”、“数据分析师”、“数据建模师”等职位的工作。招聘平台可以根据用户的搜索行为,将大数据相关岗位分成若干类“大数据开发”、“大数据分析”等,然后按照用户偏好进行推荐。用户的行为代表了用户对物品类别的观点,大多数用户都对两个物品感性却,说明两个物体极有可能是同一类别的。除此之外,基于语义模型的推荐算法在进行推荐时,允许系统对分类的数量、物品在每个分类中占的权重、每个分类的维度数据等进行定义,因此,该算法的灵活性很强[2]。基于语义模型推荐算法应用于PLSA、LDA、隐含类别模型、隐含主题模型、矩阵分解等众多著名模型和方法[3]。基于语义模型推荐算法非常适用于个性化推荐系统。

2.1.3 基于图模型

在图论中有一个特殊的模型,叫做二分图。可以用二分图来表示用户的行为。其本质时将用户行为与物品关联,并用二元组(用户、物品)对物品产生的行为表示用户。谷歌最著名的PageRank算法就是基于这种算法。对Google搜索结果进行网页排名推荐。大师基于图模型推荐算法在时间复杂度方面有明前的缺陷,计算时间长,且随着迭代次数的减少,精准度下降。

2.2 基于内容推荐算法

基于内容推荐算法与协同过滤算法较相似,主要时对用户分析,推荐与用户以前喜欢的物品在内容上拥有相似度高的其他物品。例如,大学生A在某招聘平台找工作,并收藏了某职务B,系统可以分析工作B的特征,包括但不限于薪酬、办公地点、工作职责、公司规模、公司性质等。然后将与工作B特征相同或相似的职位推荐给学生A。因此,提取要推荐对象的内容,基于内容推荐算法的本质进行推荐。该算法时基于物品的内容,因此用户的评价意见并不重要,这也就解决的难以获得用户主观想法的问题。但此算法需要使用机器学习方法获取物品的内容特征,因此推荐系统的性能取决于选择的深度学习算法。基于内容推荐的算法简单、有效、具有很强的解释性。便于学习与理解,即使是算法小白,也可轻松使用。用户的行为对推荐算法的影响相对较小,冷启动、稀疏等系统中常见的问题推荐较少。并且算法相当成熟。但基于内容推荐的算法,这里面也有一定的麻烦。首先,特征提取问题。图像、视频等电子数据需要较难的技术进行特征提取,且提取到的特征很难保质保量。二是用户的兴趣爱好随时间的变化而变化。通过内容推荐很难有惊喜,例如A同学第一次登录招聘平台希望找数据分析方面的工作,学习了Java编程语言后,再次登录招聘平台,很有可能就想要大数据开发方面工作。因此,该算法很难精准且个性化的推荐。

2.3 基于关联规则推荐算法

基于关联规则推荐算法的核心是关联规则,利用物品与物品之间的内在联系,进行推荐。相关规则算法是购物车的典型算法。在电商平台中应用较多。例如通过计算发现大多数用户购买了牛奶同时还会购买面包,购买牛奶、面包的用户,也会购买火腿肠这两种食品。那么就可以得出关联规则:购买牛奶的人购买面包的可能性较大,购买牛奶和面包的人购买火腿肠的可能性较大。在推荐时可以将面包推荐给购买了牛奶的用户,将火腿肠推荐给同时购买牛奶和面包的用户。基于关联规则推荐算法的规则非常明确,简单、易懂,但发现正确的关联规则是比较难解决的问题。除此之外,实际环境下,产品的名称可能存在同义性,比如土豆、马铃薯、洋芋,相同的商品,不同的名称,在使用基于关联规则推荐算法时也会出现问题。

2.4 基于知识的推荐算法

知识是从海量大数据中筛选和论证的信息。以知识为基础的推荐算法是[4]的推理技术。这个算法主要是给用户提供精准的、个性化的建议。例如同学A在某学习平台学习数学,那么A同学最好从最简单的知识开始学习。但是学习一段时间就会出现一个问题,A同学的行为一直实在初级阶段的数学学习范围,根据爱好、行为推荐,系统只能推荐初级知识点,也就是说A同学被推荐的知识一直是简单的数学知识。无法获得更高级的知识,无法满足A同学继续学习的需求。该怎么办呢?基于知识的推荐算法此时可以起到作用。推荐系统能够获取用户的知识等级,也了解数学产品的知识等级,用户已满足进阶的条件,推荐系统可以为用户推荐合适的进阶信息,根据用户的实际情况而定。因此,以知识为基础的推荐算法并不需要以用户的需求和偏好为基础。其本质是利用用户和产品两者的知识,通过推理并不精准的判断用户的需求。该算法不存在冷启动问题。

2.5 混合推荐算法

推荐算法的种类有很多,但可以看出,每一种推荐算法都不十分完美。在实际环境中,将多种推荐算法混合使用是一个比较不错的选择,可以取长补短。期中,在算法研究与应用中,基于用户的协同过滤算法经常和基于商品的协同过滤算法共同使用。既从用户角度考虑了用户与商品的关系,再一个从商品的角度考虑用户和商品之间的关系。属于双向研究。除此之外基于内容的推荐算法与协同过滤算法的组合使用也比较常见,这种混合算法可以产生一个推荐预测的结果。除此之外,有研究人员还给出了几种推荐算法的组合意见:

使用权重。对不同推荐技术进行加权处理,将表现较好的推荐技术分配较大的权重。

变换技术。结合背景,合理选择推荐算法。比如,既涉及到购物推荐,又涉及到个性化推荐,购物问题可以使用“基于关联规则推荐算法”,需要个性化推荐的问题采用基于语义模型的推荐算法。

混合推荐。将相同数据用不同推荐算法计算,比较推荐结果,供用户参考。

无论哪种组合,其实都是可以的,但一定要遵循取长补短的原则[5]。2009年,ACM推荐系统大会,研究人员Strand在报告中总结了如何开发和选择合适的推荐系统。首先,明确对推荐系统的需求。我们真的需要使用推荐系统吗?只有在用户遇到过载信息时,推荐系统才会起作用。如果平台物品较少、种类单一,用户的兴趣单一,那么推荐系统其实时不必要的。因此,不应过多的纠结于推荐系统,用改从用户角度出发,设计能够真正起到作用的系统,无论系统复杂度,只要能够真正有效就是好的系统。大学生就业市场时多元化的,就业信息也是较多的,因此对于大学生来说推荐系统是有必要的,那么就需要开发人员分析大学生的特征属性,通过大学生实际情况,设计推荐系统,帮助其就业。其次,要确定用户满意程度于商业目标之间的关系。好的推荐系统是指对用户非常友好的推荐系统,但这样的系统不一定在商业上是有用的。要明确用户的满意度情况与商业需求的差异,毕竟开发的推荐系统除了要利益用户也需要有所收益。因此,在开发推荐系统时也需要平衡以下长期利益与短期利益之间的关系。第三,开发团队的选择很重要。这个主要取决于开发的目的级开发的环境,目的时为推荐系统后期工作提供便利。第四,要考虑冷启动的问题。互联网上的数据时实时更新的,行业数据实时变化的,尤其时就业信息,推荐系统要不断地创新才能够获得更多优质客户。第五,找到平衡数据与算法之间关系的方法。用户的数据对于推荐系统至关重要,只有精准的数据才可能获得精准的结果,如何获得精准的数据这是设计推荐系统急需解决的一大难题,常见的解决方法就是数据预处理的技术,但是数据预处理的技术仍然有许多待解决的难题。数据分析是设计推荐系统的核心部分,决定了模型的设计方案级优化方法。最后,要有合理的用户反馈方式,举个例子,设计合理的用户评测平台,时刻关注推荐系统的全方面性能。

3 结语

在大数据时代,推荐系统是一个非常使用的技术。目前,已经有很多的推荐算法相当成熟,但这些推荐算法各有千秋,在不同的领域性能表现也各不相同。在使用和开发推荐系统时,推荐算法可根据实际情况进行合理选择。针对大学生个性化就业推荐问题,协同过滤的推荐算法更为合适,从学生和工作两个角度,双向分析推荐,可以实现个性化就业推荐。

猜你喜欢

准确度物品协同
称物品
“双十一”,你抢到了想要的物品吗?
蜀道难:车与路的协同进化
谁动了凡·高的物品
“四化”协同才有出路
幕墙用挂件安装准确度控制技术
三医联动 协同创新
动态汽车衡准确度等级的现实意义
协同进化
高炉重量布料准确度的提高