摘要:个性化推荐在网络中应用越来越广泛,在电子商务中表现尤其突出,然而个性化推荐技术在网络招聘推荐领域的应用却不是很成熟。设计了基于内容过滤的网络招聘双向推荐系统,利用简历的特性获取用户需求信息并提取特征项,建立需求向量,通过计算向量相似度进行推荐,依据统计用户历史信息调整权重值的大小,进而增强系统的可靠性。实验表明:本系统一定程度上可以提高用户的满意度,提高推荐的成功率,增加用户对系统的信任程度。
关键词:网络招聘;个性化推荐;推荐系统;向量空间模型
0 引言
近年来,网络招聘得以快速发展,迅速成为招聘行业的新宠。面对网络招聘平台丰富的信息,用户通常会感到迷茫,不能快速准确地找到适合自己的人才(岗位)。推荐系统[1]能够提高网络招聘平台的服务能力,增加用户对招聘系统的信任。推荐虽然是一个发展了很多年并在很多网站(亚马逊、Netflix、当当、豆瓣)都得到充分应用的技术,但在国内的网络招聘领域,除了智联招聘外,还没有看到哪家公司应用得较为成熟。现在招聘网站主要是采用统计的方法,也就是通过记录每一个岗位被查阅的频率,从而获取岗位的热度,这样就可以把热度较高的岗位呈现在用户面前,虽然这种推荐方法具有一定的优越性,但也存在一定的缺点:①每一个用户所看到的被推荐的岗位都是类似的,无法体现个性化;②许多热度很低却适合用户需求的冷门职位无法被推荐到。
如何获取用户的兴趣特征、使用什么样的模型建模以及采用何种方法计算相似度,是本文实现基于内容过滤[2]的网络招聘双向推荐系统主要解决的问题。
1 用户需求特征
1.1 用户需求
在获取用户的需求信息后,根据获取的信息来描述用户的需求特征,并以此建立模型是实现个性化推荐技术[3]的前提条件。通常用户需求模型体现了用户的需求信息,本文使用基于向量空间模型的表示方法。
1.2 向量空间模型
向量空间模型[4](Vector Space Mode)作为向量的标识符,是一个用来表示文本内容的数学模型,并成功地应用于著名的SMART文本检索系统,其原理就是把对文本内容的处理简化为向量空间中的向量运算,文本内容中的字词出现的位置和次数互不影响。可以使用一个m维的向量来表示用户需求特征的模型,也即W=((t1,wl),(t2,w2),…,(tm,wm)),tm代表文本内容中的关键词,而m表示在所有被检索文本内容中出现的关键词个数,wm则代表关键词tm在此文本内容中所占的比重。然而利用空间向量来表达文本内容的含义会遇到一些困难:首先,词语间不同的排列组合会呈现不同的意义,而所有被搜索的文章又都是由大量的词语组合而成,因此利用词语表示文章所表达的意思存在一定的困难。当前,评估词语对于文档意义的重要性[5],主要是通过词语在所有被搜索文本内容中所出现的次数来决定的。其次,由于被搜索的文本内容会不断地得到丰富,因此m的增长尤其突出,进而使得向量的分量会不停地增加,参与计算的数据量急剧增大,从而导致降维成为信息检索领域近年来的一个热点研究方向。
目前网络招聘平台中简历填写都很规范,因此可以利用其自身的特性[6]来避开上述问题。
1.3 特征项提取
特征项就是那些最能反映用户主要信息的关键词[7]。目前人才招聘网站填写求职者简历和招聘者招聘信息的表项大多是选择性填写,因此从简历信息表和招聘信息表中获取特征项还是较为简单的,即使有少数不确定的表项,例如工作经验,也可将其简化为“无、一年、两年等”关键字的表达方式。
2 系统总体结构
系统主要以B/S架构为基本框架,采用MVC的开发模式,充分利用Struts2、Spring、Hibernate等前沿框架技术的优势来实现每一个模块的具体功能。
系统的推荐功能主要由两部分实现,分别是用户信息处理部分和结果自动推荐部分,对于用户来说,这两个部分都是无法看到的。
3 系统推荐算法
3.1 推荐算法思想
双向推荐算法的基本思想是:充分利用求职用户注册的简历和企业发布的招聘信息,将二者进行比较,判断它们之间的相似程度。这就好比是在招聘会现场,在向某个企业递交简历之前都会先了解该企业发布的职位信息是否与自己的需求符合,若符合则提交简历前去应聘,否则就转向下一个企业继续寻找符合自己需求的职位。要充分利用简历和招聘信息,就要从中提取特征项。
首先,将招聘单位的招聘信息和求职用户简历信息进行分指标量化,可以考虑利用数学模型来表示单位的招聘信息和求职用户的简历信息;其次,依据转换后的特征项构造招聘单位和求职用户双方的需求向量;最后,通过向量相似度计算公式计算两个向量间距离的大小。鉴于招聘单位和求职用户之间存在双向匹配的特点[8],有必要分别建立面向招聘单位的人才推荐系统和面向求职用户的工作推荐系统。
3.2 需求向量生成
每条招聘信息或求职信息生成一个向量,该向量的各分量为招聘或求职的各个条件,所有招聘信息或求职信息各自形成一个向量集。如企业招聘信息向量:招聘(工种、学历、职称、年龄、性别、薪酬、住宿要求、工作地点,……),个人求职信息向量:求职(工种、学历、职称、年龄、性别、薪酬、住宿要求、工作地点、……),可以看到两个向量的各个分量是一一对应的。