APP下载

基于协同过滤算法的求职推荐系统设计与实现

2023-09-24张勇豪郑佳宜

现代计算机 2023年13期
关键词:余弦视图协同

张勇豪,郑佳宜,刘 莉

(广东白云学院大数据与计算机学院,广州 510450)

0 引言

在数字化变革的时代,各平台加速AI、大数据、云计算等技术布局,网络招聘相比传统的线下招聘更方便快捷,更受企业和求职者的青睐。根据艾瑞咨询2022 年发布的中国网络招聘市场发展研究报告可知,2022 年高校毕业生达1076 万人,青年群体结构性就业矛盾更加突出,供需脱节、人岗不适、“慢就业”现象时有发生[1],且企业数量的不断新增给用户造成了信息资源过载的问题,人们需要采用更主动、更精准,同时也更加有效的方法从海量数据中找到自身所需要的有效数据[2],而推荐系统则是实现个性化职业推荐的一个重要途径。在此背景下,本文提出一种基于协同过滤算法的求职推荐系统,该系统通过分析用户的操作行为,可以更好地理解用户的求职倾向,进而构建其个人偏好模型,形成用户标签体系,为求职者特别是高校毕业生提高人岗匹配的准确性。

1 算法模型简介

1.1 协同过滤算法

目前最受欢迎的推荐算法是协同过滤算法,核心是只需用户的评分历史,与被推荐的内容无关[3]。目前,推荐算法分为两类:基于项目评分的协同过滤算法和基于用户评分的协同过滤算法[4]。协同过滤算法的思想就是根据用户之间具有的相同兴趣或相同的历史行为,通过分析用户群的兴趣倾向或者历史行为信息,利用邻域方法给予信息相当程度的回应并记录下,采用Jaccard 系数预测当前用户可能感兴趣的东西或可能产生的行为,从而进行智能推荐。

1.2 余弦相似度

余弦相似度是度量相关性方法之一,该方法通过对两个矢量的夹角余弦进行数值分析,进而评估两个矢量之间的相似度。如果弦值接近1,而夹角趋于0°,则表示两个矢量的相似性愈大;余弦值愈接近0,夹角愈趋向90°,说明两个矢量愈不相像。余弦相似度的计算式(1)如下:

1.3 Jaccard系数

Jaccard 系数是用来对有限样本组的相似性和差异性进行比较的,而Jaccard 系数所对应的指数称为Jaccard 距离,用以描述不同的集合间的相似性。在很多实际应用中,由于评估的数据集稀疏度过高,因此在计算项目之间的余弦相似度会产生误差。而将Jaccard 系数运用于推荐系统,并建立相关的评估与分析方法,可以弥补余弦相似度仅考虑用户评分而忽视其他数据的不足之处,尤其适用于稀疏度较高的数据集。Jaccard 系数值越大,样本相似度越高。Jaccard系数计算式(2)如下:

2 系统实现

2.1 功能模块设计

根据市场调研进行用户需求分析,将基于协同过滤算法求职推荐系统分为后台管理和用户端。

(1)后台管理:主要包括系统管理、系统监控、首页内容发布管理、岗位推荐信息管理、用户行为数据管理、用户信息管理、简历管理、岗位管理八个模块。管理员能够对首页信息、岗位信息、用户数据进行管理,其功能模块设计如图1所示。

图1 基于协同过滤算法的求职推荐系统后台管理

(2)用户端:主要包括用户登录、个性化岗位推荐、在线简历生成、简历投递、岗位查找、职友圈、个人中心七个模块。用户可以通过登录注册编辑个人信息,生成在线简历进行简历投递,查找岗位信息和招聘详情;通过协同过滤模型推荐的Top-N岗位列表生成个性化岗位推荐;通过职友圈浏览其他求职者发布的求职经验和心得,其功能模块设计如图2所示。

图2 基于协同过滤算法的求职推荐系统用户端

2.2 协同过滤推荐模型流程

由于企业岗位数量巨大,造成用户的关系矩阵较于稀疏,因此在协同过滤算法的基础上,采用Jaccard 系数解决数据的稀疏性。首先,利用目标用户对岗位的兴趣偏好构建数据模型,计算出具有相同兴趣的用户作为领域用户,并向其推荐得分最高的Top-N项目。算法流程如图3所示。

图3 协同过滤推荐模型流程

2.3 基于协同过滤算法的系统推荐实现

系统架构的设计是系统实现过程中一个非常重要的环节。本系统架构采用常见的MVC 三层架构模型,分别为视图层、业务层、数据访问(持久)层,三层架构实现了更好地降低各层之间的耦合,上层对下层的调用,是采用接口的形式,从而实现了软件开发中低耦合的基本要求,其系统架构如图4所示。

图4 系统架构

视图层为用户提供数据显示和输入功能,用户可以通过鼠标、键盘和系统进行交互,系统整体上采用B/S结构。

业务层作为系统的核心部分,起到了承上启下的作用,业务层通过从视图层接受到的HTTP 请求,根据不同的请求地址调用不同的Handle 来实现不同的业务功能,并通过持久层对数据库进行操作,数据库返回的数据经业务层处理后返回到视图层,视图层渲染后展示出来。本系统业务层采用Java常用Web框架Spring Boot 和Mybatis框架进行实现。

持久层可将系统实体类与数据库表进行一一映射,从而可以帮我们快速实现对数据库的增删改查操作。

3 系统测试

3.1 系统测试数据

本文系统测试是在一台Window10 64位操作系统、内存8 GB、CPU 为i5 6500 3.2 GHz 的电脑上进行。本文数据集来自某数据挖掘比赛的数据集,该数据集包含1907 个用户、1762 个项目数、307624条评分数,见表1。实验中将数据集分成了训练集和测试集,并且在4∶1 的比率下进行了实验。

表1 系统测试的数据集信息

3.2 系统测试指标

推荐系统的评测指标很多,常用的有平均误差(MAE)、准确率(Precision)和召回率(Recall)[5],本文实验使用MAE 作为测试指标。MAE 用于度量两个连续变量之间的差异,即用户对项目的实际评分和预测评分之间的平均绝对误差[6]。计算式(3)如下:

其中:yi为该用户对推荐岗位的实际评分;为该用户对推荐岗位的预测评分。MAE值越小,表示推荐质量越好。

3.3 系统测试结果及分析

为验证本系统的推荐效果,实验计算近邻数量同推荐数量的推荐MAE值。从数据集中随机选取500个用户的评分数代入系统模型中进行多次推荐,参考文献[7],选取近邻数k的范围为[10, 70],推荐数N= 5、10 进行试验,结果如图5所示。

图5 近邻数量同推荐数量的推荐MAE值

由图5 可知,k值较小反而MAE的值较大,系统模型的准确率降低也就是系统推荐效率较低。在k值为[10,40]时,MAE的值随k的增加而显著减小,说明系统推荐效率明显增强。在k值为[40,70]时,推荐数N= 10的推荐效果比推荐数N= 5的推荐效果好。实验证明,为达到系统推荐效率最优,应使k>40,N= 10。

4 结语

基于协同过滤算法的求职推荐系统能够根据职业偏好、兴趣偏好、历史行为数据等特征,为其提供准确的职位推荐,解决大量的岗位信息给求职者造成信息资源过载的问题。同时缩短了企业招聘周期,降低时间成本。但目前求职推荐系统数据集样本有限且面向的主要用户是求职者,后续将继续增加数据量和完善企业招聘方的功能模块,使求职推荐系统更好为用户服务。

猜你喜欢

余弦视图协同
蜀道难:车与路的协同进化
“四化”协同才有出路
5.3 视图与投影
视图
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
两个含余弦函数的三角母不等式及其推论
三医联动 协同创新
分数阶余弦变换的卷积定理
图像压缩感知在分数阶Fourier域、分数阶余弦域的性能比较