基于协同过滤和深度学习的信息分析算法

2024-02-27 12:16刘承佳吴鹏郑晓娟
电子设计工程 2024年3期
关键词:冷启动编码器协同

刘承佳,吴鹏,郑晓娟

(深圳供电局有限公司,广东 深圳 518000)

随着信息技术的发展,越来越多的企业通过人力资源管理系统来完成数字化管理。而电力企业经过多年的发展,部门繁多且员工数量庞大,导致人力资源信息量过载,现有系统已无法对其进行合理地调配。因此,需要开发一种新的人力资源信息系统来自动筛选适合不同岗位的人才,并对已有的人才储备进行自动化分析[1-3]。信息分析和推荐系统是解决信息过载的方式之一,系统首先对收集的信息进行量化建模,然后使用推荐算法实现对信息的分析与过滤,最终为用户推荐其可能感兴趣的信息[4-5]。文中推荐算法选择了应用较为广泛的协同过滤算法(Collaborative Filtering,CF),然而该算法存在冷启动的问题。故文中在协同过滤算法的基础上,结合深度学习算法(Deep Learning,DL),利用其在无监督学习上的优势,提出了一种改进的信息综合分析算法。

1 算法设计

1.1 推荐算法的设计目标

该文设计推荐系统的作用是从海量数据中分析、筛选出用户可能感兴趣的对象。其基本组成:用户特征获取、用户模型建立、项目模型建立以及推荐算法执行。其中,用户特征主要是从岗位信息中获取,包括岗位名称、技能要求、人数需求与薪资福利等信息;之后,通过所获得的用户特征建立用户模型;而项目模型的建立则需要从企业内部员工信息中获取姓名、年龄、教育、技能和工作经历等相关信息,并通过一个评分矩阵将项目特征根据用户模型转化为具体评分,再形成最终的模型。同时,每项评分与用户模型的相关度有关,相关度越高,评分越高。最终通过执行推荐算法向用户推荐目标项目。因此该文使用协同过滤算法[6-8],该算法原理是通过寻找与已被推荐项目特征相似的项目来作为潜在目标,并选取排序Top-N 的项目进行推荐。

1.2 基于SDA的深度学习算法改进

深度学习在不同领域上的应用越发广泛[9-12],该文采用深度学习模型栈式去噪自编码器(Stacked Denoising Autoencoder,SDA)来改进算法。SDA[13]由多个去噪自编码器组成,自编码器是一种用于无监督学习的神经网络模型,该模型通过寻找最优化网络参数将编码数据转换成最接近原始输入的解码数据[14-16]。而去噪自编码器则是通过在原始输入数据中加入噪声数据,以期在编码阶段更优地获取输入数据中的关键信息。去噪自编码器特征学习过程,如图1所示。

图1 去噪自编码器特征学习过程

原始数据x∈[0,1]d通过随机扰动映射为受损数据x′。然后编码器利用非线性函数s将受损数据进行编码以获得隐含特征y∈[0,1]d,该过程可用函数fθ(x)表示为:

式中,θ={W,b}表示该映射的参数集合,W为d×d′维的权值参数矩阵,b为偏置向量。

解码器由函数gθ′(y) 表示,其作用是将隐含特征y重新映射回重构数据z∈[0,1]d中,该过程可表征如下:

式中,θ′={W′,b′}表示该映射的参数集合,W′为d×d′维的权值矩阵,b′为偏置向量。

每个输入数据x通过编解码器均能得到一个隐含特征表示y以及原始输入数据的重构数据z。去噪自编码器通过反复优化模型中的参数,以获得一个尽可能接近原始输入数据x的重构数据z,进而令重构误差最小,则有:

取釉质再矿化实验组和釉质脱矿抑制实验组中的所有釉质块,去除抗酸指甲油后,进行干燥处理。用SEM双面碳导电胶将釉质块固定于样品台上,然后置于离子溅射仪中真空喷金镀膜。镀膜完成后,SEM下(×1 000)观察所有样本釉质表面形貌。

同时为了防止因模型权值过大而导致的过拟合现象,设立了一个权重衰减项:

最终得到模型的目标函数为:

式中,λ为权重衰减参数,通过对目标函数J使用梯度下降法(Gradient Descent,GD)即可获得模型的最优参数。此时,x(i)即为z(i)的隐含特征表示。

栈式去噪自编码器将前一层自编码器提取到的特征作为后一层的原始输入,再通过误差反向传播来调节每层的模型参数,使得各层编码器的重构误差均较小,最终获得鲁棒性更优的隐含特征[9]。栈式去噪自编码器结构,如图2 所示。

图2 栈式去噪自编码器结构

2 推荐系统设计

2.1 算法实现

由于协同过滤算法需要根据已评分的项目来推算其他项目的得分。因此在系统的启动初期,已评分项目较少,若仍通过上述方式进行项目评分,则会导致推荐Top-N 项目的准确率较低,而此种情况即为冷启动问题。为了解决该问题,文中通过深度学习算法建立评分矩阵来预测冷启动项目的评分,再利用协同过滤算法进行项目推荐。改进后的具体算法流程,如图3 所示。

图3 协同过滤结合深度学习的算法流程

协同过滤结合深度学习算法首先进行的是数据的采集与预处理。数据采集主要是从人力资源系统中采集分公司、用人岗位以及人才简历等信息。通过数据处理将采集的数据进行转换、整理并形成数据库,该数据库的结构如图4 所示。

图4 数据库结构

其可分为缺编岗位信息(t_job),年龄信息(t_age_type)、工作时间信息(t_worktime_type)、储备人才信息(t_user)、工作类别信息(t_category_type)、教育信息(t_education_type)、薪酬信息(t_salary_type)和评分信息(t_rating)。项目与用户的匹配程度通过评分信息来体现,rating 表示最终的评分,其分值越高代表项目与用户的匹配度越高。

数据采集处理后,构建用户-项目评分矩阵以及项目属性矩阵。评分矩阵是将用户的招聘需求经过一定规则转化成各项评分;项目属性矩阵则是将员工的信息转化成文本特征向量,并采用栈式去噪自编码器从该向量中提取出项目的低维隐含特征向量。概率矩阵分解通过项目低维特征向量以及评分矩阵进行学习,最终获取用户和项目的隐语义向量。隐语义模型可通过下式计算用户a对项目i的评分:

式中,ma,k、ni,k分别代表用户a的喜好与第k个隐语义的关系,以及项目i与第k个隐语义的关系,然后再选取Top-N 评分项目进行推荐。

2.2 软件设计

系统软件架构采用如图5 所示的MVC 结构。

图5 系统软件架构图

其中,应用层负责系统页面显示与界面交互,包含基础的应用、人才推荐和个性化信息显示等;中间层则实现数据的采集处理、构建数据库以及深度学习模型的训练、项目评分矩阵的刷新等;存储层则负责对数据库进行管理,包括应用层与底层存储之间的数据交互、中间层深度学习模型训练与数据库之间的交互等。该结构将系统的各个组件解耦,以降低组件之间的相互依赖性,从而提高系统的可移植性。

系统的数据流如下:

1)应用程序向用户提供基本的业务功能;

2)ETL 服务器采集用户的行为日志,并从MySQL 中获取系统采集的原始数据;

3)经清洗和转化,形成可用于算法模型训练的数据格式并保存在MySQL 中;

4)训练服务器从MySQL 中加载训练数据库进行训练,得到的推荐结果保存在MySQL 中;

5)应用程序从MySQL 中获取推荐结果并向用户进行展示;

6)同时ETL 不断监控系统中是否有新的简历信息,并通知训练服务器及时更新数据,且刷新评分矩阵。

3 系统测试与数据分析

推荐系统的性能主要通过推荐算法的平均绝对误差、均方根误差、准确率以及召回率指标进行衡量。其中,平均绝对误差和均方根误差的计算公式可表征为:

式中,U、I分别代表用户集与项目集,分别为项目β对于用户α的预测及实际评分。准确率则为用户感兴趣的项目占系统推荐项目总数的比例,召回率为系统推荐项目中用户感兴趣的项目占所有感兴趣项目的比例。

该文采集了企业内部的1 000 名员工简历信息与企业发布的50 个工作岗位,同时将冷启动项目设置为100 个。其中,将10%的简历作为训练集,剩余90%则作为测试集。分别采用协同过滤算法以及所提算法进行实验,选出评分最高的100 名内部人才进行推荐,实验结果如表1 所示。

表1 实验结果

从表中可看出,该文算法的误差较低,且准确率较协同过滤算法提升了约20%。

此外,文中还分别在不同冷启动项目下对两种推荐算法进行了测试,结果如图6 所示。

图6 冷启动项目对推荐准确率影响

由图可知,该文算法对冷启动项目的敏感度较低,而协同过滤算法在冷启动项目增多的情况下推荐准确率持续下降。由此证明,该文算法有效解决了传统协同过滤算法的冷启动问题。

4 结束语

电力企业的发展使得员工数量快速增长,同时还导致人力资源数据量的持续增多。对于企业而言,如何更有效地将人才匹配到合适的岗位,并对内部人才进行分析与归类极为重要。文中研究了基于协同过滤与深度学习的信息综合分析算法,其在协同过滤算法的基础上,通过深度学习模型训练构建项目的评分矩阵,还利用该矩阵来计算冷启动项目的预测分数,进而克服了协同过滤算法中的冷启动问题,构建出了相对应的推荐系统实现人员推荐。此外,该文算法还进一步降低了筛选海量数据所耗费的人力及时间,从而可以为企业人事提供良好的数据支撑。

猜你喜欢
冷启动编码器协同
轻型汽油车实际行驶排放试验中冷启动排放的评估
Evaluation of Arctic Sea Ice Drift and its Relationship with Near-surface Wind and Ocean Current in Nine CMIP6 Models from China
基于学习兴趣的冷启动推荐模型
蜀道难:车与路的协同进化
“四化”协同才有出路
基于FPGA的同步机轴角编码器
基于PRBS检测的8B/IOB编码器设计
三医联动 协同创新
JESD204B接口协议中的8B10B编码器设计
协同进化