Fork me on GitHub

图谱实战 | 58 同城周超:基于招聘场景下的知识图谱构建及应用

图片

分享嘉宾:周超 58同城 NLP资深算法工程师
编辑整理:吴祺尧 加州大学圣地亚哥分校
出品平台:DataFunTalk

导读: 知识图谱作为一种富信息工程,已经深入到各行各业中,也为产业效率的提升做出了很大的贡献。将知识图谱赋能到招聘这个垂直的领域中,提升招聘整个链路的转化效率和人岗匹配的能力是我们一直探索的方向。本文将讲述58同城在这个方向上的工作和成果,主要围绕以下四个方面展开:

  • 业务背景:包括中国招聘行业的大背景、58所处的行业背景、58在业务中遇到的问题和对应的解决方案;
  • 招聘知识图谱的构建:标签体系的建立、标签挖掘和关系抽取;
  • 图谱在招聘推荐中的应用:**解决如何将图谱运用于招聘推荐,探索如何使用图谱组织推荐流量,赋能招聘流程的提效;
  • 业务展望。

01 业务背景

首先和大家分享下全国招聘行业的大背景以及58招聘的业务背景。

图片
据人社部数据统计显示,截止到2020年末,全国就业人员达到7.5亿左右,其中城镇就业人员约4.6亿。2021全年全国城镇调查失业率平均值为5.1%,同比下降0.5个百分点。从上图右侧可以看出,我国这几年新增就业人数均在千万级别,同时全国高校毕业人数呈现出逐年增长的态势。由此可见,我国的招聘市场十分庞大。此外,为缓解我国劳动力结构性矛盾突出与就业形式不确定的现象,尤其是疫情期间,为了配合国家相关部门开展招聘活动,中国网络招聘平台的规模持续增长。我们可以看到,我国在2021年的招聘市场规模相较于2016年已经翻了三番,所以持续优化针对招聘领域的双边匹配的效率成为行业的大趋势。其中,将AI赋能招聘成为了达成这一目标的必备技术。

58招聘作为58同城最核心的业务之一,又是互联网招聘中的龙头平台,立足服务于大规模求职者及大中小型企业。平台上每天都有海量的连接,促成大量的就业。在这个背景下,58一直致力于提升匹配效率,将知识图谱赋能于推荐,助力于优化匹配效果和推荐效率。

图片

传统推荐如新闻推荐和电商推荐,是单边的推荐模式 。推荐系统基于用户标签和隐藏的兴趣推荐相应的内容,仅需要满足用户单边的要求即可。相比之下,招聘推荐是一个双边的匹配任务,因为我们需要同时满足求职者和企业双边的一个诉求。所以,我们需要考虑双边的CTR/CVR的效果。此外,在招聘的后续流程,如面试等,平台无法追踪最后的结果,无法如传统推荐系统一样形成闭环。
另外,招聘推荐是一个弱表达强相关的业务 。在目前这种集团化招聘或者小作坊招聘中,很多情况下职位发布者对jd的描述过于宽泛,对具体需求的描述不够清晰,从而导致招聘推荐的“弱表达”。“强相关”则意味着某个职位是需要求职者具备对应的能力与素质才能去胜任的,并不是所有人都合适。最后,招聘推荐的领域属性较强,职位与应聘者擅长的领域需要相互匹配。

图片

招聘匹配的特点,带来了以下四个难点:

  • 招聘推荐是一个双边匹配的模式,需要同时契合BC双边的诉求。知识图谱可以作为BC两端的中间桥梁,打通双边的诉求。根据知识图谱中节点的关系数据,我们可以知道某个岗位所必备的人才素质要求,从而依据这个关系去推荐相应的人才;同时,我们也可以通过知识图谱挖掘求职者的一些诉求,从而去推荐合适的企业。
  • 有许多用户诉求的表达不清楚或者对职位的认知度不够,即“弱表达强相关”的特点。职位可以被很多更加精细的信息来刻画,而这些信息正是寻找合适的求职者的关键,但它们往往不会被明确地通过文字描述出来。
  • 招聘具有很强的领域属性,不同的领域对于求职者的素质、企业的诉求或许天差地别,而这些差异正是推荐效果提升的关键。知识图谱可以提取出领域的关键特征作为推荐时主要考虑的因素。
  • 冷启动&稀疏性问题:新用户流入平台后,行为数量少,简历、职位信息简单粗糙。此外,找工作或者寻找求职者是一个短时且连续的稀疏行为。知识图谱作为一种富信息的知识体系,可以额外引入一些辅助信息。这些辅助信息可以有效地弥补交互信息的稀疏或损失。

图片

58招聘主要关注双边连接场景,即同时考虑to B和to C的推荐 。在普通推荐场景,我们会根据用户过往的交互行为与历史信息来预测用户下一步的行为;在搜索推荐场景,用户会拥有明确的搜索意图。当用户的意图比较模糊时,我们会引入标签推荐来引导用户完善意图,完成智能化引导推荐。

02 招聘知识图谱的构建

图片
上图展现了招聘知识图谱的全貌,它由求职者、企业和职位组成。**职位作为中间桥梁串联了求职者和企业。求职者具有自身的特性和素质,如性别、身高、驾照、所拥有的技能等,还有他所期望的职位以及福利。**与此同时,企业也有丰富的基础信息,例如所处行业、规模、地理位置,并且它会发布一系列待招聘的职位。**职位作为中间实体将BC两端连接,它也有很多基本属性,比如职位所需技能和岗位能提供给求职者的收益等。**职位之间还有上下位关系,例如“司机”囊括了“客运司机”、“货运司机”等。从全貌图可以看到,求职者、企业、职位是知识图谱中最重要的三大节点,知识图谱围绕它们生成了大量节点属性以及节点之间的关系。

基于上述特点,我们将构建知识图谱分成三大任务:标签体系的构建、标签的挖掘和关系构建。

1. 标签体系的构建

图片
现在介绍一下标签体系的构建。在构建之前,我们需要弄明白标签体系的作用与定位。**在58招聘中,标签体系作为底层的基础数据,要为上层的双边连接提供更多层次更多维度的信息匹配。**基于这一定位,我们要求标签体系满足以下两方面:

  • 多维度 :因为我们致力于BC双边匹配,所以标签体系需要对BC双边流量全方面地进行刻画。其中,我们使用的维度有如薪资、福利、年龄等通用维度以及如证书、技能、经验等领域特有属性;
  • 多层级 :不同的应用方,不同的场景,对流量的组织粒度要求不一样,层次化可以使流量的组织更灵活。

上图展示了我们标签体系的两个案例。左图是职位信息,右图是简历信息。我们会将这些信息做层次化的归纳,结合BC两端的诉求,最终形成我们的标签体系。

举个例子,职位体系不仅仅包含岗位名称,还包含了行业、场所、企业等,经验包含了工作年限、技能、证书等多维度信息。归纳之后的信息构成了一系列层次化信息,如“销售”这一职位,它可以进一步分为“汽车销售”、“医药销售”、“房产销售”等,而“房产销售”之下还包含了“一手房销售”、“二手房销售”、“文案地产销售”等。

2. 标签挖掘

图片

构建了标签体系之后,接下来就进入标签挖掘模块。在探索过程中, 我们遇到最大的两个挑战是认知不统一和专业性强,导致标注成本很高 **。例如,“中医针灸推拿师”的职位标签可能是“推拿师”或者“针灸推拿师”,亦或是“中医针灸推拿师”,这一例子展示了认知不统一带来的标注混淆。专业性强的典型例子是“五险一金DBA”,“DBA”在计算机专业领域人员来说很容易知道是“数据库管理员”这一职位,但是大多数其他领域的人,对它的认知仅仅是一个字符串。

图片

为了更高质量地进行标签挖掘,我们采用了数据增广的方法,它可以被分成三大类:bootstrap, EDA和DAGA

  • Bootstrap基于专家制定的规则,例如“动词+数字+方位词”等,抽取出想要的标签。这一方法较为简单,且可以保证一定的准确率。
  • EDA是在NLP领域的传统方法,它通过事先训练好的实体embedding和句子embedding,使用同类型标签同义词替换、上下文关键词同义词替换、短句子随机替换等完成数据增广。
  • DAGA是使用深度学习模型的方法,它在输入层对句子进行“线性化”的处理,即将原始序列标注标签与句子token混合(其中“O”标签不参与混合),插入标签对应的token之前。之后,将处理完毕的句子输入一个语言模型进行训练。这个做法的好处在于多样性好,因为DAGA有能力生成新的实体以及更丰富的实体上下文。更重要的是,DAGA可以有效地利用未标注数据,将它们和标注数据一块儿对模型进行训练。

实验结果表明,我们的样本量在数据增广操作后翻了约三倍,标签量增加了近五倍。而且,在标注样本数量不大的情况下,我们使用这三种数据增广的方法对模型线上效果提升非常显著。

图片

图片
有了数据之后,接下来就是标签挖掘模块。其实每一家企业的标签挖掘技术相差并不会很大,通常仅仅会根据自己所处领域的特性对模型进行优化。 我们的模型由输入层+深度学习模型层+CRF组成,输出最终的标签

根据58所处领域的特点,我们在输入层进行了知识信息的融合 。具体地,我们加入了position embedding和topic embedding,其中,position embedding考虑了不同的数据块有不同的标签偏好,如年龄大概率会出现在岗位要求中。Topic embedding考虑到每个职位都有一个层次体系,其对应了一个topic。这些外部信息可以有效地融入模型中,提高标签挖掘的准召率。

图片
我们也一直在探索标签抽取模型的优化,上图就是我们目前主要应用的模型。其中深度学习部分我们采用了BERT,并且选取了不一样的知识融合方式。我们对BERT中的attention模块进行了改造,加入了topic attention和position attention,以此来替代输入端的知识简单拼接的操作。从左上角的可视化图可以看出,“职责”对“岗位”、“品牌”等的关注度很高,这也符合我们的基本认知。此外,为了保证线上的耗时,我们利用公司平台,使用TensorRT加速深度学习推理,并使用知识蒸馏等方法在算法层面进行优化。

3. 关系抽取

图片
下面介绍关系抽取相关工作。以上图的例子来说,“送餐员”与“美团”之间是“品牌”的关系,“送餐员”和“五险一金”是“保险”的关系,“送餐员”和“提供住宿”是“吃住”的关系。
图片

在关系抽取的研究中,我们采用了两条技术路线:pipeline路线和joint路线。其中,pipeline路线将实体抽取与关系抽取分为两个独立的过程,关系抽取依赖于实体抽取的结果。我们的模型采用了lstm+attention,输出层使用softmax+l2,最终得到实体关系。我们在关系抽取输入层引入了领域先验知识,不同于传统的输入由token embedding与position embedding组成,我们还加入了实体所述域以及层级关系信息。

图片

但是,pipeline路线存在天然的两个缺点。

  • 首先,关系抽取特别依赖实体抽取的结果,若实体抽取错误则会造成误差累积
  • 此外,pipeline路线无法处理复杂语境下的关系抽取 。例如“美团急聘送餐员,五险一金,提供住宿”这一例子,“送餐员”这个实体出现在多个关系中,但是pipeline路线只能识别其中一种关系。要解决复杂语境下的关系抽取,我们不能将关系抽取任务当作一个关系互斥的多分类任务,而是看作每个关系独立的多个二分类任务。

图片

基于上述思想,我们探索出了joint路线 。具体地,我们采用识别“SPO”的方式,即利用指针网络先识别“s”实体,然后再去识别对应的“p”和“o”,缓解重叠情况带来的问题。我们的模型主框架是CNN+Attention,借鉴了seq2seq的概率图思路,对于三元组(s,o,p)建模为:想抽取“s”实体,再在已知“s”的条件下抽取“o”,最后在知道“s”和“o”的条件下抽取“p”。这一方法采用了MRC中常用的指针网络的抽取方法,即仅抽取答案的开始和结束位置,而不是预测词的类别。另外,这一方法把预测开始和结束位置的任务转化为了预测每一个位置是否为开始位置或结束位置,从多分类任务转变为多个二分类任务。通过joint路线,我们有效地缓解了重叠情况带来的问题。

图片

pipeline路线与joint路线各有优缺点。Pipeline路线的优点是简单,但是它会累积实体识别部分的误差,且不能处理复杂语境下的关系抽取。Joint路线的优点是解决了pipeline路线误差累积以及复杂语境关系抽取的问题,但是它的模型复杂,预测耗时长,需要我们后续进行如知识蒸馏等算法上的优化。从测试中的F1值来看,joint路线的得分高于pipeline路线约两个点。在工业实际落地时,我们需要判断自己的领域是否包含复杂关系语境下的关系抽取,若没有复杂关系则完全可以使用pipeline路线。58招聘落地时采用的模型是joint路线的。

03 图谱在推荐中的应用

下面我选取推荐中几个常见的场景来展示图谱在推荐中的应用。
图片

  • 知识图谱重新定义了招聘推荐流量的组织方式
    58经常遇到针对用户不同的求职偏好、人才偏好的场景。为了提升双边匹配的效率,我们可以利用知识图谱灵活地组织,满足该用户的流量。对于招聘高峰期,我们还可以以个性化的专题去组织流量。例如,我们可以组织“老乡”专题,或者在某些节日上组织与节日相关的专题。

传统的推荐模式下是以单个标签或者割裂式多标签堆叠的方式组织流量。相对地,使用基于知识图谱的推荐模式就从关系的角度串联标签、组织流量,拥有多维度、精准、可解释性高的优点。比如,我们可以根据用户对场所、对企业的偏好来推荐对应企业的职位。又如对于一个职位如“送餐外卖员”,多维度匹配会考虑如“高收入”、“时间自由”等标签,通过简历库与职位库的个性化标签匹配,使得推荐时更精准地组织流量。基于知识图谱的招聘流量组织在上线后占总流量的15%左右,对CVR的提升约4%,面邀率上升了2.5%。

图片

  • 知识图谱可以赋能推荐中供求关系的平衡
    求职者、平台和招聘方不可能永远保持平衡。这是因为求职行为是一个短时间连续行为,满足之后便不复存在;此外,B端职位是有限的资源,尤其是特定领域的岗位更为抢手;对于特定领域的人才,求职者也是一个十分有限的资源。

    面对供求关系不平衡的情况,传统的推荐方式会基于热门的职位、简历做补充。基于知识图谱的推荐会利用图计算技术与图谱中属性相关的实体,发现一些相似、相关的职位。此外,它还可以利用用户的背景职位关系、行为序列关系发现一些同背景的职位。在58招聘推荐中,利用知识图谱进行推荐的方法覆盖了75%的供求不匹配的流量,日新增点击达到了超过2000的提升,双边连接效率上升了约1.6%。
    图片

  • 知识图谱可以在推荐中做智能引导,它通过相关试题逐步引导用户更明确自己的需求,提高双边连接率

比如一个用户点击了“保安”这一职位,若用户下刷了很久都没有找到合适的岗位,那么我们就通过知识图谱推荐一些相似职位或者进行相关标签的引导,让用户更加明确自己的意图。例如用户在第一次引导以后点击了“商场保安”,那么我们会为他推荐“商场保安”这一专题的职位,同时更精细化地为他进行标签引导。值得注意的是,后续的标签引导不能与前期的标签有重合,而应从职位的另外一些角度进行标签推荐。通过这一过程,用户逐渐从各个维度明确自己的意图。经过实验,智能标签的引导为后续的双边连接率的提升非常明显,达到了5%。

图片

  • 知识图谱可以辅助认知推荐
    在搜索场景下,多元化、口语化的诉求表达较多,例如“外贸”、“网约车”、“宝妈工作”、“没学历送外卖”等。对于“宝妈工作”,我们会利用知识图谱对query进行分析,形成图谱中标准的知识节点,如“女性”、“时间自由”、“双休”等,最后基于这些知识对用户生成推荐。此外,我们还会将解析出的知识加入创意标题。Query检索承载了平台约一半的流量,知识图谱辅助的认知推荐占比达到1/5,后续的双边连接率相对提升了约2.5%。

04 未来展望

首先,58招聘的未来核心目标是持续沉淀招聘领域的知识,将知识图谱打造得更完善。另外,由于疫情的关系,招聘这一垂直领域的产业格局发生了很大的变化。所以,我们需要继续优化知识图谱的工程能力,更灵活地适应业务的变化。对于知识图谱在业务中的应用,后续我们会赋能平台生态建设,依靠知识图谱促进建立和职位发布的智能化,提升BC两端的工作效率,提高其发布的信息质量。另外,我们会针对结合知识图谱的个性化推荐进行持续优化和模式迭代。最后,我们希望基于知识图谱的生态平台,赋能更多业务应用,如智能面试、QA、信质等。

05 Q&A

Q:求职者与企业的特征是如何与职业标签体系结合的?
A:求职者与企业对一个职位的表述角度不同。在构建标签体系时,我们会使用统一的标准。那么求职者对职位描述的特征与企业对职位描述的特征都会被映射到标准空间中,那么此时三者就可以在同一空间下进行建模,实现通过职位标签打通BC两端的目的。

Q:特征的映射是人工实现的还是机器实现的?

A:映射是由人工与机器共同实现的。前期由于缺乏数据与标签基础,我们需要借助专家知识来人工进行映射。在标签体系建设至一定的完备度时,我们会使用机器学习算法辅助人工,提高效率。


分享嘉宾:

图片


本文地址:https://www.6aiq.com/article/1656585917361
本文版权归作者和AIQ共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出