一种职位推荐方法

文档序号:10535091阅读:865来源:国知局
一种职位推荐方法
【专利摘要】本发明公开了一种职位推荐方法,属于推荐系统技术领域,在职位推荐过程中可以避免马太效应,也可以避免冷启动问题,同时能够很好地利用群体实现个性化推荐。该职位推荐方法,包括:获取用户数据和职位数据;建立用户偏好向量空间模型、职位向量空间模型;根据用户偏好模型和职位模型进行基于内容的多域评分值计算获得职位的第一评分值,并排序获得职位集;若一职位有投递记录且属于职位集,则根据用户偏好模型和职位数据进行该职位基于用户背景信息相似度的评分值计算获得职位的第二评分值;根据职位的第一评分值和第二评分值获得该职位的混合评分值,并进行排序获得推荐列表。
【专利说明】
一种职位推荐方法
技术领域
[0001] 本发明涉及推荐系统技术领域,具体的说,涉及一种职位推荐方法。
【背景技术】
[0002] 互联网的发展使人们逐渐从信息匮乏时代进入了信息过载时代,信息及其传播形 式变得多样化,用户对信息的需求变得越来越多元化和个性化。而推荐系统就是联系用户 和信息的工具,一方面帮助用户找到有价值的信息,另一方面也让信息及时地展现在对它 感兴趣的用户面前。推荐系统从大体上可分为个性化推荐和非个性化推荐。
[0003] 个性化推荐系统,顾名思义,就是给用户提供个性化信息的推荐系统,它的最大特 点就是个性化,即根据用户的自身需求、兴趣、行为等,将用户感兴趣的东西推荐给用户,从 而为不同对象提供不同服务或内容。目前,使用的比较广泛的个性化推荐技术主要是协同 过滤推荐和基于内容的推荐。在一些系统中也将不同的推荐算法混合使用,来产生更好的 推荐。
[0004] 作为个性化推荐系统的应用,职位推荐是通过网络平台获取的大量的个人简历和 职位信息,然后根据这些信息向求职者推荐职位信息,向用人单位推荐个人简历,以此将求 职者和用人单位联系起来,帮助求职者快速地找到适合的工作,帮助用人单位快速找到符 合工作要求的员工。
[0005] 传统的职位推荐系统无法在利用群体实现个性化推荐的同时兼顾解决马太效应 或数据稀疏问题。

【发明内容】

[0006] 本发明的目的在于提供一种职位推荐方法,在职位推荐过程中可以避免马太效 应,也可以避免冷启动问题,同时能够很好地利用群体实现个性化推荐。
[0007] 本发明提供一种职位推荐方法,该方法包括:
[0008] 获取用户数据和职位数据;
[0009] 根据用户数据建立用户偏好向量空间模型,根据职位数据建立职位向量空间模 型,用户偏好模型中的用户兴趣与职位模型中的相关职位属性相对应;
[0010] 根据用户偏好模型和职位模型进行基于内容的多域评分值计算获得职位的第一 评分值,并根据第一评分值对职位进行排序获得职位集;
[0011] 若一职位有投递记录且属于职位集,则根据用户偏好模型和用户数据进行该职位 基于用户背景信息相似度的评分值计算获得职位的第二评分值;
[0012] 根据职位的第一评分值和第二评分值获得该职位的混合评分值,并根据混合评分 值对职位进行排序获得推荐列表。
[0013] 所述建立的用户偏好向量空间模型User_Profile为:
[0014] User-Prof ile = {(ki,wi),(k2,W2)... (kn,wn)};
[0015] 其中kn为用户的兴趣项,wn为兴趣项的权重。
[0016] 所述建立的职位向量空间模型Recruit_Modle为:
[0017] Recruit_Modle = {(li,vi),(h,V2) ? ? ? (ln,Vn)};
[0018] 其中,ln为职位属性,Vn为职位属性的权值。
[0019] 在建立用户偏好模型与职位模型的步骤中包括:
[0020] 将用户偏好向量空间模型分为n个不同的域,每一个域对应一个兴趣项,将职位向 量空间模型分为n个不同的域,每一个域对应一个职位属性;
[0021 ]在所述获得职位集的步骤中包括:
[0022]通过下述表达式计算获得第一评分值Scores:
[0024] 其中Wi是用户偏好模型的第i个域的权重,Vi是职位模型第i个域的权重,Sim(li, 为用户偏好模型与职位模型第i个域的相似度;
[0025] 根据所述第一评分值对职位进行排序,提取排名的前N个职位组成职位集。
[0026] 通过下述表达式计算获得用户偏好模型与职位模型第i个域的相似度:
[0028] 其中wP'是用户偏好模型中第i个域的第p个词的权值,Vp'是职位模型中第i个域的 第P个词的权值,若没有某个词,那么这个词的权值为〇。
[0029] 所述建立的用户偏好向量空间模型为无嵌套的文档,在所述获得职位的第二评分 值的步骤中包括:
[0030] 基于职位数据选取有投递记录的目标职位;
[0031 ]判断目标职位是否属于职位集;
[0032]若属于,则根据下述表达式计算第二评分值Scoreub:
[0034]其中,Ua表示职位已有的投递记录中的所有用户集合,u。表示用户User,仏"表示职 位的所有投递用户总数,sim(u,u。)为职位的投递用户u与用户User的相似度值。
[0035] 通过下述表达式计算获得职位的投递用户u与用户User的相似度:
[0037] 其中^#是用户User的第q个词项的权值,wuq是投递记录中的用户u的第q个词项 的权值。
[0038] 在所述获得职位的混合评分值的步骤中包括:
[0039] 根据下述表达式获取职位的热度因子y:
[0041]其中为职位的投递用户总数,N代表当前最热门职位的投递用户数;
[0042]根据下述表达式获取时间因子e :
[0043] e = e^DP-D^n〇i
[0044]其中DP为职位的发布日期,Di为用户的登录日期;
[0045] 根据下述表达式计算混合评分值Scoreh:
[0046] Scoreh=Scorecb*Scoreub*ye;
[0047] 其中Scorecb为第一评分值,Scoreub为第二评分值。
[0048] 所述建立的用户偏好向量空间模型User_Profile为:
[0049] User_Profile = {(ki,wi),(k2,W2),(k3,W3),(k4,W4),(k5,W5)};
[0050] 其中ki为用户的兴趣项"期望领域",W1为它的权重,k2为用户的兴趣项"期望地 ±或",w 2为它的权重,k3为用户的"家乡",W3为它的权重,k4为用户所学的"专业",W4为"学历或 学位"。
[0051 ] 所述建立的职位向量空间模型Recruit_Modle为:
[0052] Recruit_Modle = {(li,vi),(h,V2),(h,V3),(l4,V4)};
[0053] 其中1:为职位属性"职位类别",12为职位属性"工作地",13为职位属性"职位名 称",14为职位属性"学历要求"。
[0054] 本发明实施例提供的职位推荐方法,由基于内容的多域查询评分算法和基于用户 背景信息相似度的评分算法组成,针对多域查询评分算法和基于用户背景信息相似度的评 分算法在单独应用时的局限性,将二者加以混合,可以达到互补的效果,在职位推荐过程中 可以避免马太效应,也可以避免冷启动问题,同时能够很好地利用群体实现个性化推荐。并 且,在职位推荐算法中引入热度因子和时间因子,进一步优化推荐结果。同时,本发明还提 供了对应职位推荐方法的【具体实施方式】,即提出一种面向用户的混合推荐系统架构,从工 程角度对职位推荐进行了优化,通过将Lucene用于职位推荐系统中,来优化推荐结果。并且 针对Lucene的几点不足提出了的相应的改进。
[0055] 本发明的其它特征和优点将在随后的说明书中阐述,并且,部分的从说明书中变 得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利 要求书以及附图中所特别指出的结构来实现和获得。
【附图说明】
[0056] 为了更清楚的说明本发明实施例中的技术方案,下面将对实施例描述中所需要的 附图做简单的介绍:
[0057] 图1是本发明实施例提供的职位推荐方法的流程示意图;
[0058] 图2是本发明实施例提供的职位推荐方法的应用流程示意图;
[0059] 图3是本发明实施例提供的时间因子与职位发布日期关系曲线图;
[0060] 图4是本发明实施例提供的时间因子与职位发布日期改进关系曲线图;
[0061] 图5是本发明实施例提供的基于信息检索的混合推荐总体架构示意图。
【具体实施方式】
[0062] 以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用 技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明 的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合, 所形成的技术方案均在本发明的保护范围之内。
[0063] 本发明实施例提供一种职位推荐方法,该方法采用基于内容的推荐和协同过滤推 荐的混合推荐算法,以弥补单一推荐方法的不足。混合推荐算法有三种基本设计思路:整体 式、并行式和流水线式。本发明提供的职位推荐算法采用流水线式的混合设计,是一种基于 内容与协同的混合推荐方法,下面将详细地介绍算法的基本思想及流程。
[0064] 如图1和图2所示,本发明提供的职位推荐方法包括:步骤101至步骤104。其中在步 骤101中,获取用户数据和职位数据。本发明实施例中,用户数据主要包括有两种:历史行为 数据和特征描述数据。历史行为数据是用户在访问系统的过程中与相关项目页面进行交互 所留下的行为数据,例如用户在求职网站浏览某个职位、投递某个职位的行为属于用户历 史行为数据。特征描述数据包括人口特征数据和用户兴趣,人口特征数据主要包括性别、年 龄、所在地等,用户兴趣利用关键词以及用户对关键词的偏爱程度来描述,其中偏爱程度的 值可以由用户指定,也可以由用户的历史行为数据推测。而职位数据则包括职位的特征信 息,例如学历要求、工作地点以及职位类别等等,还包括职位的投递记录。
[0065] 在步骤102中,根据用户数据建立用户偏好向量空间模型,根据职位数据建立职位 向量空间模型。用户偏好模型中的用户兴趣与职位模型中的相关职位属性相对应。
[0066] 向量空间模型,也叫做线性空间,通过利用向量空间的数据表示和几何运算解决 检索中的数据表示和相似度度量等问题。是目前最为成熟和应用最为广泛的文本表示模型 之一。该模型及其相关技术,包括项的选择、加权策略,以及采用相关反馈进行查询优化等 技术,在文本分类、自动索引、信息检索等许多领域得到了广泛的应用。通常,文档用向量表 示,向量的每一个属性代表一个特定的词,而每个属性的值代表在文档中的相对重要性。一 系列文档在同一向量空间中的表示被称为向量空间模型。
[0067]在本发明实施例构建的向量空间模型中,采用TF-IDF转换形式来描述每个属性的 权值。TF-IDF是信息检索领域的成熟技术,代表词频(term frequency,TF)和倒排文档频率 (inverse document frequency,IDF)。文本文档可以通过TF-IDF转换成多维欧几里得空间 中的向量。在文档中每一个词都被定义为该文档的一个维度,给定文档在每维的坐标(即每 个词的值)由两个子量的乘积得出:词频和倒排文档频率,即TF*IDF。词频(TF)描述某个词 在一篇文章中出现的频繁程度:
[0070]倒排文档频率(IDF)是组合了词频后的第二个衡量值,旨在降低所有文档中几乎 都会出现的关键词的权重:
[0072] 词t的组合TF-IDF权值就是上述两个子量的乘积:
[0073] TF_IDF(t,d)=TF(t,d)*IDF(t)
[0074] 本发明实施例中,用户偏好向量空间模型根据步骤101中获取的用户数据建立。职 位推荐常用的用户属性有:性别、民族、政治面貌、期望领域、期望地域、家乡所在地、专业以 及学历或学位等,在本发明的一种实施方式中从职位推荐的特性和推荐效率角度考虑,只 从中选择部分属性进行建模,其中有一些描述的是基本信息(例如专业),有一些描述的是 用户兴趣(例如期望领域),但是基本信息与用户兴趣的关联程度很大,所以在建模的时候 不加以区分,统一作为用户偏好模型中的兴趣项。这些属性有结构化的(如学历)也有非结 构化的(如专业),虽然大多数网站会设定一个"专业"列表,但数量太多,而且有些专业不同 名但是相似的,所以应当作为非结构化属性来对待。为了统一用户偏好模型,在建模时,设 每一个用户都是一个文档,考虑到用户每一个兴趣项都是具有不同的权重的,所以采用向 量空间模型表示用户偏好。对于每一个用户User,其用户偏好模型为其兴趣向量模型表示 为:
[0075] User_Profile = {(ki,wi),(k2,W2) ? ? ? (kn,wn)}
[0076] 其中kn为用户的兴趣项,wn为兴趣项的权重。
[0077] 在本发明的【具体实施方式】中,本步骤所建立的用户偏好模型分为两种。一种为分 域后的用户偏好模型,即设对于每一个用户User,可以把它看成一个含有嵌套的文档,对于 每一个用户User,创建用户模型的过程中将用户偏好向量空间模型分为n个不同的域,每一 个域对应一个兴趣项,用以在之后的步骤103中进行基于内容的多域评分值计算。
[0078] 另一种为不进行分域的用户偏好模型,即建立的用户偏好向量空间模型为无嵌套 的文档,用以在之后的步骤104中进行基于用户背景信息相似度的评分值计算。
[0079] 在本发明的一种实施方式中,用户偏好模型包括5个兴趣项:
[0080] User_Profile = {(ki,wi),(k2,W2),(k3,W3),(k4,W4),(k5,W5)}
[0081] 其中kHf表用户User的第一个兴趣项"期望领域",奶代表它的权重;1?代表用户 User的第二个兴趣项"期望地域",《 2代表它的权重;k3代表用户User的"家乡",W3是它的权 重;以此类推,k 4代表用户所学的"专业",W4表示"学历或学位"。
[0082] 而对于每一个兴趣项h,又可以根据分词规则分为若干词,每个词的权重w'使用 TF-IDF方法来表示。设ki也是一个文档,其向量空间模型为:
[0083] ki = {(ti,w,i),(t2,w,2) ? ? ? (tj,w,j)}
[0084]其中第j个词的权值由下式表示:
[0085] w,j = TFj(t,ki) log (Nu/DF(t)+0.01)
[0086] 上式中,w'j表示第j个词t的权重,TF(t,ki)表示词t在文档ki中出现的频率,仏表 示总的文档数(用户数),DF(t)表示包含t的文档数。
[0087] 进一步的,职位向量空间模型与用户偏好向量空间模型有一定的对应关系,比如 大部分求职者所青睐的职位总是与他们的专业、所在地和学历有一定的关系,但是,要想从 各字段之间寻找交叉关联却是比较困难的,比如我们很难得到某一专业的人会更加喜欢某 个特定城市的工作,因此,职位模型基本与用户偏好模型对应建立,以便进行分析,用户模 型与职位模型各项对应关系如下表1所示。
[0089] 表1
[0090] 根据获取的用户数据,对于每个职位,在职位向量空间模型中也被看成一个含有 嵌套的文档。相应的,与分域的用户偏好模型相同,职位模型也被分为n个域,每一个域对应 一个职位属性,职位模型Recruit_Modle表示为:
[0091 ] Recruit_Modle = {(li,vi),(h,V2) ? ? ? (ln,Vn)}
[0092] 其中,ln为职位属性,Vn为职位属性的权值。
[0093] 职位模型各部分解释与用户偏好模型类似,在本发明的一种实施方式中,职位模 型为Recruit_Modle = {(li,vi),(h,V2),(l3,V3),(l4,V4)},n = 4, li代表"职位类别",h代 表"工作地",13代表"职位名称",14代表"学历要求",职位模型与用户偏好模型分成不同的 域的原因是在于分域可以很直观地进行推荐解释,而且便于算法根据需要人为更改不同兴 趣项的权重。
[0094]设ll = {(Sl,V'l),(S2,V'2) ? ? ? (Sj,V'j)}表示职位的第i个属性,此属性中第j个词 的权值用下式表示:
[0095] v'j = TFj(s, li) log(NR/DF(s)+0.01)
[0096] 式中,v'j表示第j个词s的权重,TFj(s,li)表示词s在文档li中出现的频率,Nr表示 总的文档数(职位数),DF(s)表示包含s的文档数。
[0097] 在步骤103中,根据用户偏好模型和职位模型进行基于内容的多域评分值计算获 得职位的第一评分值,并根据第一评分值对职位进行排序获得职位集。本步骤中执行的是 本发明提供的混合推荐算法中的基于内容的推荐算法。由于当项目描述信息可以很容易地 提取到的时候,基于内容的推荐算法就是最好的选择,因为它可以非常直观的找到可推荐 项目,并且不需要巨大的用户群体或评分记录,也就是说,只有一个用户也可以产生推荐列 表。职位推荐系统最显著的特点是项目描述信息很全面,用户与项目的数据模型之间匹配 度比较高,在这样的数据条件下,完全可以通过基于内容的推荐来产生一个较为直观的推 荐列表。本发明针对职位推荐的特点将使用基于内容的推荐作为评分算法,是一种基于内 容的多域评分算法,用来在产生职位推荐列表前计算职位评分。
[0098] 进一步的,在本步骤计算职位评分的过程中,选用Cosine相似度公式计算相似度。 Cosine相似度(Cosine Similarity)被广泛应用于计算文档向量的相似度,通过计算两个 向量x和y的夹角余弦值来测算相似度T(x,y),Cosine相似度不但体现了向量之间的相似关 系,而且包含了向量内部元素的变化状况。Cosine相似度从方向上区分差异,而对绝对的数 值不敏感,适用于使用用户对项目评分来区分用户兴趣的相似度和差异,同时还可以修正 了用户间可能存在的度量标准不统一的问题,其公式如下:
[0100] 对于每一个用户User,创建用户模型的过程中用户偏好信息被分为n个不同的域, 每一个域对应一个兴趣项,其用户偏好模型为User_Prof ile = {(ki,wi),(k2,W2). . . (kn, wn)}。相应的,职位模型也被分为n个域,职位模型为Recruit_Modle = {(li,vi),(l2,V2)... (ln,Vn)}。分成不同的域的原因是在于分域可以很直观地进行推荐解释,而且便于算法根据 需要人为更改不同兴趣项的权重。
[0101] 本步骤具体为通过下述公式计算职位的第一评分值,即职位相对于用户的基于内 容的多域评分Scored):
[0103]其中wi是用户的第i个域(即第i个兴趣项ki)的权重,ki = {(ti,w'i),(t2,w'2)... (tj,W'j)} di 是职位第i 个域(SP第i个属性 li)的权重,ll = { (Sl,V'l),(S2,V'2) ? ? ? (Sj,V 、)} 为用户与职位第i个域的相似度,使用Cosine相似度公式计算,也就是计算 两个向量W=[w'l,w'2. . .W'j,]和V=[V'1,V'2. . .V'j,]夹角的余弦值,用公式表示如下:
[0105] 其中wP'是用户偏好模型中第i个域的第P个词的权值,vP'是职位模型中第i个域的 第P个词的权值,若没有某个词,那么这个词的权值就为0。
[0106] 在获得各个职位的第一评分值Scores后对各个职位进行排序,然后提取其中排名 的前N个职位组成职位集。
[0107] 本步骤基于内容的多域评分算法是在基于内容的算法基础上,对用户与职位进行 分域求相似度,然后汇总得到职位评分。系统根据评分大小对职位排序后可以达到推荐职 位的目的。其优势如下:
[0108] 可以避免冷启动问题和数据稀疏问题。因为基于内容的算法的数据输入只需要用 户偏好模型和职位模型,它可以在没有任何用户历史行为的情况下实现一定程度上的个性 化推荐,达到较好的推荐效果,避免了新用户及新职位带来的冷启动问题,同时在数据稀疏 情况下仍然能够进行个性化推荐。
[0109] 可以避免马太效应。马太效应即热的越热,在马太效应下,新的职位很难被推荐。 基于内容的多域评分算法将所有职位一致对待,可以有效避免马太效应的发生。
[0110] 可以便于推荐解释。分域的过程是根据不同的兴趣项的意义进行区分的,所以系 统可以根据推荐结果很直观地进行推荐解释。
[0111] 可以便于修改不同属性的权重。因为相似度计算是不同的域分开计算又汇总到一 起的,每个域都有各自的权重,这些权重决定了每个兴趣项的重要程度,所以修改权重的过 程也是优化推荐效果的过程。
[0112] 即便基于内容的多域评分算法有以上几方面优势,但是它也存在局限,比如它虽 然在某种程度上实现了个性化推荐,但是这种个性化是表面上的,毕竟用户偏好模型中的 兴趣项是固定的,而且有一些属性只是用户的基本信息,用户的偏好有可能会随着时间等 其他因素而改变,那时此算法的推荐精度就会下降。未解决上述问题,本发明通过下述步骤 中介绍的基于用户背景信息相似度的评分算法就可以很好的改善这一问题。
[0113] 在步骤104中,若一职位属于职位集,则根据用户偏好模型合用户数据进行该职位 基于用户背景信息相似度的评分值计算获得职位的第二评分值。本步骤中执行的是本发明 提供的混合推荐算法中的协同过滤推荐算法。
[0114] 虽然职位模型与用户模型是一一对应的,但是具体到每一个用户,用户属性与职 位属性却不应被认为是一一对应的,例如并不是所有的求职者都会找专业对口或者所在地 的工作,而且目前的就业压力越来越大,甚至有博士生选择学历要求为专科的职位来投递。 与此同时也存在这样的情况,具有相同背景的用户投递相似职位的可能性要远远大于背景 完全不同的用户。所以,对于已有投递记录的职位,我们提出了基于用户背景信息相似度的 评分算法,这个评分算法建立在这样的假设上:相似的用户投递相似职位的可能性要大于 完全不同的用户投递的可能性。
[0115] 在本步骤中,首先,从职位数据中根据职位的投递记录选取有投递记录的目标职 位Q,然后判断目标职位Q是否属于步骤103中获得的职位集,若不属于则舍弃该职位Q,若属 于,则执行下述计算步骤计算职位的投递记录中所有用户分别与用户User的偏好相似度, 根据相似度的均值计算职位的第二评分值。
[0116]设职位已有的投递记录中的所有用户集合为Ua,集合中所有用户的偏好模型依然 是User_Profile= {(ki,wi),(k2,W2). . . (kn,wn)},但与基于内容的多域评分算法不同的是, 由于用户数据的一致性,可以不需要对用户模型分域,而是直接看成一个无任何嵌套的文 档。职位相对于用户User的基于用户背景相似度的评分为第二评分值Score ub,则Scoreub其 计算方法采用下述表达式表示:
[0118]其中,Ua表示某职位已有的投递记录中的所有用户集合,u。表示用户User,#%表示 该职位的所有投递用户总数d., #〇的情况下算法才成立,Sim(u,u。)为职位的投递用户u 与用户User的相似度值,此相似度也是根据Cosine相似度公式计算得出,计算公式如下:
[0120] 其中1"%?.是用户User的第q个词项的权值,wUq是投递记录中的用户u的第q个词项 的权值。
[0121] 本步骤中基于用户背景信息相似度的评分算法中渗透着协同过滤算法的思想,即 与当前用户相似的用户喜欢的东西也可能是当前用户所喜欢的。在职位推荐背景下的思想 就是与当前用户相似的用户投递的职位有可能是当前用户倾向于投递的职位。当然,在这 样的协同过滤的思想下,算法也同样存在与协同过滤一样的问题,那就是新用户的冷启动 问题以及数据稀疏问题。
[0122] 在步骤105中,根据职位的第一评分值和第二评分值获得该职位的混合评分值,并 根据混合评分值对职位进行排序获得推荐列表。在本步骤中,首先计算热度因子y和时间因 子e,然后结合第一评分值和第二评分值计算得到混合评分值。
[0123] 本发明提供的职位推荐方法考虑到职位的热度以及用户所处的上下文,在步骤 105中引入热度因子和时间因子参与最终的职位评分值计算。职位的热度指的是职位的投 递记录的多少,投递的用户多,则职位就比较热门。用户所处的上下文包括用户访问推荐系 统的时间、地点、心情等,这些上下文信息对于提高推荐系统的推荐精度是非常重要的。对 于职位推荐来说,用户所处的地点、当时的心情等对推荐结果影响不大,能够起到优化作用 的上下文信息为时间戳。
[0124] 引入职位热度的目的是对已经很热门的职位的惩罚,我们通过一个因子来引入职 位热度,称为热度因子。设y为职位的热度因子,是它的投递用户总数,则热度因子y可由 下式计算得出:
[0126] 其中N代表当前最热门职位的投递用户数,可以看出,在本发明实施例中热度因子 与职位的投递用户总数呈负增长关系,起到了惩罚热门职位的作用。由于职位的投递用户 数有可能等于N,为了防止热度因子为0的情况出现,公式中分子分母同时加一个很小的数 避免这种情况出现,这里选择的很小的数为〇. 〇1。
[0127] 职位是有时效性的,所以推荐的时候要把职位发布日期因素考虑到评分过程中。 用户的时间上下文信息包括用户注册的时间、登录的时间、停留的时间、浏览时间、以及投 递职位的时间戳等等,本文需要用到的时间上下文为登录的时间,需要用到的职位的时间 上下文为职位的发布时间,这两个时间戳结合,就可以得到职位的时间因子£,它的计算方 式由下述公式表示:
[0128] £ '=
[0129] 其中Dp-Di是职位发布日期与当前日期的时间差,DP代表职位的发布日期,Di代表 用户的登录日期(默认为当前日期),显然,对于同一用户,发布日期越接近当前日期越有可 能被推荐,在用户登录当天发布的职位则会被优先推荐。时间因子应与职位发布日期呈指 数关系,这样既可以削弱旧职位的权重,也可以给较新的职位更大权值。
[0130] 基于上述方法计算职位时间因子,如图3所示,职位发布日期的变化对最近发布的 职位评分的影响要远远大于很早之前发布的职位。从图上看出前一天发布的职位的时间因 子仅仅为0.3679,前两天的职位时间因子一下降到了 0.1353,一方面是整体分值较低,另一 方面下降幅度较大,夸大了时间因子的作用,削弱了基于内容的评分效果。所以在本发明的 一种实施方式中,时间因子通过下述改进公式表示:
[0131] g -
[0132] 改进后时间因子的变化如图4所示,可以看到,前一天发布的职位的时间因子为 0.9048,前六天之内发布的职位的时间因子都在0.5以上。
[0133] 基于内容的多域查询评分算法与基于用户背景信息相似度的评分算法的评分值 都可以进行归一化,通过归一化后评分的取值范围为0-1。混合算法的评分值Scoreh的计算 公式为:
[0134] Scoreh=Scorecb 氺 Scoreub 氺 ye
[0135] 上式中,y和e是混合算法的附加权重,取值范围也在0到1之间,Scoreh的取值范围 为0到1之间。
[0136] 本发明实施例还提供一种上述职位推荐方法的基于信息检索的具体实施系统,即 如图5所示的基于信息检索的混合推荐总体架构。在该系统的【具体实施方式】中将Lucene用 于职位推荐系统中,来优化推荐结果,并且针对Lucene的几点不足提出了的相应的改进。
[0137] 典型的个性化职位推荐系统的基本功能流程可以简单地概括为:首先收集求职信 息,包括求职者的基本信息、工作履历信息和求职期望信息,然后进行用户建模;推荐系统 根据用户信息和职位库,并结合相应的推荐策略产生结果集,借助信息推荐平台技术最终 为求职者提供满意的就业职位列表,或者为新上线的职位提供潜在的投递者列表。也就是 说用户与职位之间的推荐过程可以看成是一个单向过程,但是推荐结果却是双向的,算法 的目的是一方面要为用户找到他们喜欢的工作,另一方面也要为职位找到潜在的用户。本 发明提供的基于信息检索的混合推荐总体架构就是面向用户的混合推荐,但推荐结果是实 现双向推荐。
[0138] 在该系统中,用户注册信息与用户偏好模型不尽相同,注册信息包括但不限于:用 户基本信息(学校、出生日期、家乡以及联系方式等),工作能力信息(教育背景等),求职意 向(期望领域、期望地域等)。
[0139] 该系统包括:数据库4、离线模块3、预筛选模块1、核心算法模块2和客户端5。预筛 选模块利用Lucene工具库实现基于内容的多域评分算法。Lucene是全文检索的一个工具 库,其作为一个纯java实现的成熟、自由、开源的软件项目,Lucene是一个高性能、可扩展的 信息检索工具库,可以把它融入到应用中以增加索引和搜索功能。
[0140]预筛选模块包括构建索引和创建查询两个部分,核心算法模块是在预筛选模块的 推荐结果基础上进行优化,实现基于用户背景信息相似度的评分算法,并引入热度因子和 时间因子,得到最终推荐列表。离线模块定时更新有投递记录的职位集合与用户集合,更新 数据库。预筛选模块的输入分为两部分,均来自数据库,一部分为用户User信息,另一部分 为所有职位信息。预筛选模块的输出为与用户User相匹配的职位集。数据库向核心算法模 块提供职位和用户信息、有投递记录的职位集合、以及这些职位对应的投递用户集合。客户 端接收核心算法模块提供的推荐结果反馈给用户,同时接收系统加入的新用户和新职位信 息导入数据库。
[0141]预筛选模块集成了搜索引擎技术中常用的Lucene程序库,把搜索功能加入到推荐 引擎中,从庞大的职位数据中筛掉了那些与用户User极不相关的职位,大大减少了后续计 算的数据量,提高了推荐效率,同时可避免马太效应,以及数据稀疏和冷启动问题。
[0142]在构建预筛选模块过程中,向Lucene中添加中文同义词分词器。在预筛选模块中 分词器是Lucene在构建索引和创建查询过程中都必不可少的组件,它可以把文档分为最小 的分词单元,同时能过滤掉停用词。但是L u c e n e自带的中文分词器都只是简单的一元分词 和二元分词,有较大的局限。不过,因为Lucene是开源的代码工具库,本发明通过自定义它 的分词器,达到更好的推荐效果。
[0143]在职位推荐中,用户信息与职位信息中有很多同义词,比如用户模型中的"专业" 是"经济学"的用户,一定会考虑"职位名称"是"会计"的职位。在这里同义词的概念并不等 同于语言学中和日常生活中的同义词,并不考虑感情色彩和语气,它主要是指在信息检索 中能够相互替换、表达相同或相近概念的词。同义词应该作为同一个词来进行比较,但在分 词器的词典中并没有保存同义词,所以本发明通过自定义分词器加入同义词词库。
[0144] 在本发明的一种实施方式中,米用jcseg分词器,jcseg分词器是可以动态添加词 库的中文分词器,是使用Java开发的,使用流行的mmseg算法实现。jcseg分词器相对于其他 的分词器对地名的分词更准确,更加适合职位推荐应用的分词工作。
[0145] 在本发明的一种实施方式中,本系统集成的Lucene版本为Lucene-4.2。jcseg分词 器目前最高版本是jcseg 1.9.3,兼容最高版本1^1〇6]16-4.1,
[0146] 向词库中添加同义词具体过程为如下。jcseg词库的加载以及很多功能的开启和 关闭都可以在jcseg ? properties中配置,调用Lucene的Analyzer,首先让jcseg找到 jcseg ? properties配置文件,其次让jcseg找到词库,最后在进行其他配置,在这里需要开 启同义词追加。jcseg分词器在Lucene中的用法:
[0147] //导入jcseg-core_{version} ? jar和jcseg-analyzer_{version} ? jar
[0148] 1 ? JcsegTaskConf ig ? C0MPLEX_M0DE 为复杂模式:
[0149] 特点:四种过滤算法。*/
[0150] /**
[0151] 2 ? JcsegTaskConf ig ? S 頂PLE_M0DE 为简易模式
[0152] 特点:只使用了最大化过滤算法,其他的同复杂模式。
[0153] */
[0154] Analyzer analyzer=newJcsegAnalyzer4X(JcsegTaskConfig.C0MPLEX_M ODE);
[0155] //非必须(用于修改默认配置):获取分词任务配置实例
[0156] JcsegAnalyzer4X jcseg=(JcsegAnalyzer4X)analyzer;JcsegTaskConf ig config = jcseg.getTaskConfigO ;
[0157] //追加同义词到分词结果中,需要在jcseg .properties中配置jcseg ? loadsyn = lconfig.setAppendCJKSyn(true);
[0158] //追加拼音到分词结果中,需要在jcseg .properties中配置jcseg ? loadpinyin = lconfig.setAppendCJKPinyin();
[0159] 通过对现有数据以及职位推荐系统的分析,需要加入的同义词分为四类:
[0160] 需要广泛添加的词,比如所有地名都要添加"全国"、"其他"为同义词,因为期望地 域无论是哪里,"全国"都有此职位;
[0161] 同一地域的地名,比如"广西省"与"广西壮族",这两个词都已经是最小的分词单 元;
[0162] 专业与对口的职位,比如"会计学"与"会计";
[0163] 不同名称的同一类专业,比如"金融"与"金融学",jcseg分词器会把"金融学"看做 一个分词单元,不再进行分解,所以需要添加同义词;
[0164]需要格外注意的是,同义词添加完毕(jcseg.properties配置文件有所更改)之后 一定要重新创建索引,只有那样索引中的分词单元才能与配置文件中的同步更新。
[0165] 进一步的,构建职位索引
[0166] 若要构建合理的索引,首先要对搜索内容进行建模。必须分析用户的各个属性与 职位的属性之间有什么的关系,哪些属性可以作为职位推荐系统的特征项。基于内容的多 域评分算法中用到的用户模型和职位模型的各兴趣项就可以作为其特征项。
[0167] 在Lucene中文档是Lucene索引和搜索的原子单位。文档为包含一个或多个域的容 器,而域则依次包含"真正的"被搜索内容。每个域都有一个标识名称,该名称为一个文本值 或二进制值。当将文档加入到索引中时,首先得将数据转换成Lucene所能识别的文档和域。 在随后的搜索过程中,被搜索对象则为域值。Lucene可以针对域进行以下操作:域值可以被 索引(或者不被索引),域值可以被单独存储。
[0168] 在构建职位索引时。首先需要分析用户偏好和职位信息之间有什么样的对应关 系,这里可以参考表1中的用户模型和职位模型的对应关系,基本一致,只需要再加一个代 表"发布日期"的域。本发明定义职位索引各域的命名、意义以及存储情况如下表2。没有被 存储的域只存在于索引文件中,只能被搜索,而存储的域值可以进行提取调用。
[0170] 表2
[0171] 域值一般可以直接提取数据库中的职位信息进行赋值,唯独学历学位不能直接赋 值,因为学历高的用户也可能投递学历要求低于他学历的职位,所以职位索引的域值要包 含本身以及高于它的学历学位值。也就是说职位"学历学位要求"如果为"本科",那么它的 索引中域值为"博士硕士本科",这样一来即便用户查询语句为"博士",职位索引中degree 域对应的值也可以是"博士、硕士、本科",即系统有可能向博士生推荐学历要求为"本科"的 职位。
[0172] 职位的学历要求越低,则degree域文档越长,根据Luc ene的评分公式, lengthNorm:同等的搜索条件下,文档长度较长者得分较低。如学历要求为"博士"的职位更 接近博士生用户的求职要求,而学历要求为"硕士"的职位的评分要低于学历要求为"博士" 的职位的评分。
[0173] 为了对应多个域的索引结构,搜索也要分多个域进行。Lucene中Boo lean query类 可以实现多个域的布尔查询。
[0174]在本发明中定义布尔查询中各域的名称、意义以及查询条件如下表3所示。MUST代 表"一定包含","SHOULD"代表"不一定要包含","MUST_N0T"代表一定不包含。

[0176] 表3
[0177] 期望地域、期望领域的布尔查询应为MUST,即只查找符合此期望的职位。如果没有 填写期望地域和期望领域,则默认为期望地域为学校所在地,期望领域为专业类别所对应 的职位类别,只不过布尔查询不再是MUST,而是设置为SHOULD,也即不只是查找符合此期望 的职位,默认在某种程度上,用户可以接受家乡的工作,或者与自己专业不相符的工作。
[0178] 日期范围限定了一个职位发布时间的范围,推荐的职位必须在此范围内,布尔查 询条件设为MUST。职位是有时效性的,当它发布一段时间后就失效了,而且职位推荐系统每 天会有大批的新职位发布,即便没有失效,太早发布的职位对求职者的吸引力也会降低。
[0179] Lucene是通过内部提供的评分公式计算文档得分的,具体公式如下: Scored = coord (q, t/) * query 'Norm (q)
[0180] *[ ((/"{/ in d')*idf(t)2 ^t.getBoostQ*nonn(t,d))
[in q
[0181] 上述评分公式中各因子在职位推荐中的贡献不同,为了能够了解评分公式能够如 何去影响我们的职位评分和排序,进而更好地改善模块性能和推荐效率,下面介绍在本发 明实施例中,各个因子在本发明实施例中代表的意义:
[0182] C〇〇rd(q,d):-个职位属性中匹配用户偏好的属性越多,它的协调因子就越大,说 明职位的属性越接近用户偏好。
[0183] queryNorm(q):此项是用来同时提高或降低所有职位评分的因子。
[0184] tf(t in d):词频描述的是同样长度的职位与用户信息的相同的词出现次数越 多,则评分越大。
[0185] idf:倒排文档频率的意义在于,削弱了热门地区的权重,相对的平衡了专业与所 在地的评分。
[0186] t.getBoostO:这一项可以改变某个词的权重,进而增大或减小出现这个词的职 位的评分。
[0187] n〇rm(t,d):这一项是用来削弱长文档的权重的,它的意义主要体现在"学历学位" 的域评分,因为职位索引的"学历学位要求"域值要包含本身以及高于它的学历学位值,那 么对于同一个用户,职位的学历要求越接近他的学历,职位评分越高。
[0188] 进一步的,核心算法模块主要实现了在预筛选模炔基础上的基于用户背景信息相 似度的评分算法,并且引入职位热度与时间上下文,实现最终推荐结果的呈现。
[0189] 本发明在核心算法模块中引入自定义的中文同义词分词器。在预筛选模块中用到 的中文分词器jeseg分词器不仅可以应用于Lucene中的分词,在自己的程序中也可以构建 分词实例实现jeseg的二次开发。本发明核心算法模块中的基于用户背景信息相似度的评 分算法的核心部分就是计算用户之间的相似度,因为用户模型是向量空间模型,每个词项 的权值根据TF-IDF计算得出,这之前分词是一个必要的步骤,所以这里同样引入自定义的 jcseg同义词分词器,以得到更加准确的相似度评分值。
[0190] jcseg分词器的二次开发不同于在Lucene中的分词,jcseg分词器的开发者已经针 对Lucene封装好了一个Analyzer,可以直接拿来调用的,只需要修改词库就可以达到自定 义分词的目的。如果想要在自己的程序中添加jcseg分词器还需要创建一个 JcsegTaskConf ig配置实例,一个ADictionary词库实例和一个ASegment分词实例来完成分 词工作。三个实例的创建方法如下:
[0191 ]建 JcsegTaskConf ig 分词配置实例:
[0192] JcsegTaskConfig 构造方法:
[0193] JcsegTaskConf ig()
[0194] JcsegTaskConfig(java.lang.String proFile)
[0195] (1)创建从默认的 jcseg ? properties 中初始化的 JcsegTaskConf ig 对象:
[0196] //该方法会自动查找jcseg ? properties配置文件
[0197] //然后依据 jcseg ? properties 中的选项初始化 JcsegTaskConfig ?
[0198] JcsegTaskConf ig config = new JcsegTaskConf ig();
[0199] //或者使用如下方式(指定自定义配置文件路径为null).
[0200] JcsegTaskConf ig config = new JcsegTaskConf ig(null);
[0201 ] (2)创建从指定的 jcseg .properties 中初始化的 JcsegTaskConfig 对象:
[0202] //依据proFi le指定的配置文件创建JcsegTaskConf ig ?
[0203] JcsegTaskConf ig conf ig =
[0204] new JcsegTaskConfigC^/java/jcseg/jcseg.properties^);
[0205] (3)从给定的 jcseg ? properties 配置文件中重置 JcsegTaskConf ig:
[0206] //从指定的jcseg ? properties配置文件中重置JcsegTaskConf ig选项
[0207] config.resetFromPropertyFileC^/java/jcseg/jcseg.properties^);
[0208] 2、建ADictionary分词词库实例:
[0209] 使用org. lionsoul ? jcseg. core .DictionaryFactory创建ADictionary实例:
[0210] 构造方法如下:
[0211] Adictionary(JcsegTaskConfig conf ig,java.lang.Boolean sync)
[0212] 参数说明:
[0213] Conf ig:词配置对象,里面有词库加载所需要的信息;
[0214] Sync:否创建同步词库.true表示创建同步词库,false表示创建非同步词库。
[0215] (1)依据给定的 JcsegTaskConf ig 创建 ADictionary:
[0216] //conf ig 为上面创建的 JcsegTaskConf ig 对象?
[0217] / /如果给定的J c s e g T a s k C o n f i g里面的词库路径信息正确(是从 jcseg .properties中初始化的就对了),
[0218] //Adictionary会依据JcsegTaskConfig里面的词库信息加载全部有效的词库.
[0219] //并且该方法会依据config. isAutoloadO来决定词库的同步性还是非同步性.
[0220] //config. isAutoloadO为true就创建同步词库,反之就创建非同步词库.
[0221 ] //config. isAuto load 〇 对应 jcseg .properties 中的 lexicon .auto load
[0222] ADictionary dic=DictionaryFactory.createDefaultDictionary(config);
[0223] (2)依据给定的<1〇8681&81^〇11:[18和8711(3创建八0;[(^;[0紐^:
[0224] //创建一个非同步的ADictioanry.ADictionary dic = DictionaryFactory
[0225] .createDefaultDictionary(config,false);
[0226] //创建一个同步的六0;[(^;[0&11^.
[0227] ADictionary die = DietionaryFactory.createDefaultDictionary(config, true);
[0228] //依据 conf ig ? isAutoload()来决定同步性
[0229] ADictionary die=Dictionary Factory.create Default Dictio nary(con fig,config.isAutol oad());
[0230] (3) ADict ionary 词库加载 API:
[0231] //指定ADict ionary加载给定目录下的所有词库文件的词条.
[0232] //config.getLexiconPath为词库文件存放有效目录.
[0233] die.loadFromLexiconDirectory(conf ig.getLexiconPath());
[0234] //指定ADict ionary加载给定词库的词条.
[0235] //conf ig 为上面创建的 JcsegTaskConf ig 实例.
[0236] die.loadFromLexiconFile(config/V java/lex-main.lex^);
[0237] 3、建 ASegment 或者 ISegment 分词实例:
[0238] Jcseg的主分词类程序在org. lionsoul. jeseg. ASegment抽象类中得到具体实现, 该类实现了 Jcseg主API接口 org ? 1 ionsoul ? jeseg ? core ? ISegment ? ComplexSeg继承 ASegment实现了复杂模式分词,SimpleSeg继承了 ASegment实现了简易模式分词。
[0239] Asegment 构造方法:
[0240] Asegment(JcsegTaskConfig conf ig,Adictionary die)
[0241] Asegment(Reader input,JcsegTaskConf ig conf ig,Adictionary die)
[0242] 参数说明:
[0243] Conf ig:词配置实例,参考上面的创建JcsegTaskConf ig;
[0244] Die:库实例,参考上面的创建ADictionary 〇
[0245] 创建ISegment或者ASegment实例的方法:
[0246] //创建JcsegTaskConf ig分词任务实例
[0247] //即从jcseg. properties配置文件中初始化的配置
[0248] JcsegTaskConf ig conf ig = new JcsegTaskConf ig();
[0249] //创建默认词库(即:com. webssky. jcseg .Dietionary对象)
[0250] //并且依据给定的JcsegTaskConf ig配置实例自主完成词库的加载
[0251] ADictionary dic=DietionaryFactory.createDefaultDictionary(config);
[0252] //依据给定的 ADictionary 和 JcsegTaskConf ig 来创建 ISegment
[0253] //通常使用 SegmentFactory#create Jcseg来创建 I Segment对象
[0254] //将 conf ig 和 die 组成一个 0b ject 数组给 SegmentFactory ? createjcseg 方法
[0255] //JcsegTaskConf ig. C0MPLEX_M0DE 表不;创建 ComplexSeg 复杂 I Segment 分词对象
[0256] //JcsegTaskConf ig ? SIMPLE_M0DE 表不;创建 SimpleSeg 简易 Isegmengt 分词对象.
[0257] ASegmentseg = SegmentFactory.createjcseg(JcsegTaskConf ig.C0MPLEX_M0DE,
[0258] new 0bject[]{config,dic});
[0259] //设置要分词的内容
[0260] String str = 〃研究生命起源。
[0261] seg.reset(new StringReader(str));
[0262] //获取分词结果
[0263] Ifford word = null;
[0264] while( (word = seg.next())! = null) {
[0265] System.out.printIn(word.getValue());
[0266] }
[0267] 可以反复利用创建的I Segment对象,通过I Segment .reset (java, io .Reader)来重 置分词内容。
[0268] 进一步的,由于热度因子不仅与职位本身的投递用户数相关,还与当前最热门的 职位的投递用户数相关。职位的投递用户数是实时变化的,但数据库中用于推荐的职位信 息不是跟随数据的变化事时变化,而是周期性的定时更新,这样做是为了避免过多的消耗 计算资源,提高系统的资源利用率。
[0269] 为了保证职位热度因子的取值在0-1之间,职位的投递记录必须是系统同一时刻 提取到的数据。由于核心算法模块的职位数据来自预筛选模块的输出数据,经过预筛选模 块的一番筛选,数据量大大减少,提高了计算效率。
[0270] 计算时间因子的过程中,系统用到的时间上下文信息为用户的登录日期(当前日 期)和职位的发布日期。因为用户登录之后系统会给出职位推荐结果,所以用户登录日期也 就是当前日期,职位发布日期在预筛选模块中Lucene的索引里有存储,可以通过建立对职 位的查询操作,提取发布日期,相比数据库查询有着更高的效率。
[0271] 本发明实施例提供的职位推荐方法,由基于内容的多域查询评分算法和基于用户 背景信息相似度的评分算法组成,针对多域查询评分算法和基于用户背景信息相似度的评 分算法在单独应用时的局限性,将二者加以混合,可以达到互补的效果,在职位推荐过程中 可以避免马太效应,也可以避免冷启动问题,同时能够很好地利用群体实现个性化推荐。并 且,在职位推荐算法中引入热度因子和时间因子,进一步优化推荐结果。同时,本发明还提 供了对应职位推荐方法的【具体实施方式】,即提出一种面向用户的混合推荐系统架构,从工 程角度对职位推荐进行了优化,通过将Lucene用于职位推荐系统中,来优化推荐结果。并且 针对Lucene的几点不足提出了相应的改进。
[0272] 虽然本发明所公开的实施方式如上,但所述的内容只是为了便于理解本发明而采 用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本 发明所公开的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化, 但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
【主权项】
1. 一种职位推荐方法,其特征在于,包括: 获取用户数据和职位数据; 根据用户数据建立用户偏好向量空间模型,根据职位数据建立职位向量空间模型,用 户偏好模型中的用户兴趣与职位模型中的相关职位属性相对应; 根据用户偏好模型和职位模型进行基于内容的多域评分值计算获得职位的第一评分 值,并根据第一评分值对职位进行排序获得职位集; 若一职位有投递记录且属于职位集,则根据用户偏好模型和用户数据进行该职位基于 用户背景信息相似度的评分值计算获得职位的第二评分值; 根据职位的第一评分值和第二评分值获得该职位的混合评分值,并根据混合评分值对 职位进行排序获得推荐列表。2. 根据权利要求1所述的职位推荐方法,其特征在于,所述建立的用户偏好向量空间模 型 User_Prof ile 为: User_Profile= {(ki,wi),(k2,W2) · · · (kn,wn)}; 其中kn为用户的兴趣项,Wn为兴趣项的权重。3. 根据权利要求2所述的职位推荐方法,其特征在于,所述建立的职位向量空间模型 Recruit_Modle 为: Recruit_Modle= {(li,vi),(h,V2) · · · (ln,vn)}; 其中,In为职位属性,Vn为职位属性的权值。4. 根据权利要求3所述的职位推荐方法,其特征在于,在建立用户偏好模型与职位模型 的步骤中包括: 将用户偏好向量空间模型分为η个不同的域,每一个域对应一个兴趣项,将职位向量空 间模型分为η个不同的域,每一个域对应一个职位属性; 在所述获得职位集的步骤中包括: 通过下述表达式计算获得第一评分值Scores:其中W1是用户偏好模型的第i个域的权重,V1是职位模型第i个域的权重,SimQ1,lu)为 用户偏好模型与职位模型第i个域的相似度; 根据所述第一评分值对职位进行排序,提取排名的前N个职位组成职位集。5. 根据权利要求4所述的职位推荐方法,其特征在于,通过下述表达式计算获得用户偏 好模型与职位模型第i个域的相似度:其中wP'是用户偏好模型中第i个域的第p个词的权值,vP'是职位模型中第i个域的第p 个词的权值,若没有某个词,那么这个词的权值为〇。6. 根据权利要求2所述的职位推荐方法,其特征在于,所述建立的用户偏好向量空间模 型为无嵌套的文档,在所述获得职位的第二评分值的步骤中包括: 基于职位数据选取有投递记录的目标职位; 判断目标职位是否属于职位集; 若属于,则根据下述表达式计算第二评分值Scoreub:其中,Ua表示职位已有的投递记录中的所有用户集合,u。表示用户Use^iV^表示职位的 所有投递用户总数,sim(u,u。)为职位的投递用户u与用户User的相似度值。7. 根据权利要求6所述的职位推荐方法,其特征在于,通过下述表达式计算获得职位的 投递用户u与用户User的相似度:其中W?Df是用户User的第q个词项的权值,wuq是投递记录中的用户u的第q个词项的权 值。8. 根据权利要求1所述的职位推荐方法,其特征在于,在所述获得职位的混合评分值的 步骤中包括: 根据下述表达式获取职位的执庶Rl子其中乂 为职位的投递用户总数,N代表当前最热门职位的投递用户数; 根据下述表达式获取时间因子ε:其中Dp为职位的发布日期,D1为用户的登录日期; 根据下述表达式计算混合评分值Scoreh: Scoreh = Scorecb氺Scoreub氺με ; 其中Scores为第一评分值,Scoreub为第二评分值。9. 根据权利要求2所述的职位推荐方法,其特征在于,所述建立的用户偏好向量空间模 型 User_Prof ile 为: User_Profile= {(ki,wi),(k2,W2),(k3,W3),(k4,W4),(k5,W5)}; 其中Iu为用户的兴趣项"期望领域",W1为它的权重,k2为用户的兴趣项"期望地域",《 2为 它的权重,k3为用户的"家乡",W3为它的权重,k4为用户所学的"专业",W 4为"学历或学位"。10. 根据权利要求3所述的职位推荐方法,其特征在于,所述建立的职位向量空间模型 Recruit_Modle 为: Recruit_Modle = {(li,vi),(h,V2),(h,V3),(l4,V4)}; 其中1:为职位属性"职位类别",I2为职位属性"工作地",I3为职位属性"职位名称",I 4为 职位属性"学历要求"。
【文档编号】G06F17/30GK105893641SQ201610511648
【公开日】2016年8月24日
【申请日】2016年7月1日
【发明人】李晨, 杨成, 茹静婷
【申请人】中国传媒大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1