- 问题描述
在人岗匹配中,JD文档由多句工作描述和岗位要求组成,CV文档主要由求职者的工作经历组成。传统人岗匹配中通过对求职者简历的工作经历文本和JD岗位信息进行文本挖掘,两者的技能和能力是否契合作为判断JD和CV是否匹配的重要依据。早期的人岗匹配版本基于term重要性,bm25以及职能标签等信息做简单的匹配模型,但是这些方法很难挖掘特征与特征之间的关系以及潜在的信息交互特征,难以表达完整的岗位(JD)和简历(CV)的语义信息。鉴于此,本文提出了基于LSTM+double Attention网络的语义匹配模型[1]。
- 模型介绍
句子相似度计算是自然语言处理中重要而又基础的研究工作。例如:在对话系统中,用于查找最可能的答案;在文档检索中,用于查找最为相似的文档;在双句关系判断任务中,用于判断两个句子之间关系的类别等。目前常见的句子相似度计算方法大体上可以分为三类:
(1)基于表层信息的相似度计算,其主要是通过句子中词性相似度、词序相似度和句长相似度等信息来综合计算两个句子的相似度[2]。
(2)基于句子结构的相似度计算。这种方法主要考查量句子在结构上的相似性,如基于本体机构、词类串结构、词性及词性依存关系等进行相似度计算[3]。
(3)基于词向量的语义表征来计算相似度。其通过垂直领域的文本数据训练得到word embedding, 借助词向量得到句子表征,然后计算cosine距离[4]。
JD和CV的语义相似度计算,其本质是双文档关系判断任务或是长文本相似度匹配问题,和句子相似度计算不同之处在于文档是由多个句子组成。句子表征是文档表征的基础,本文的句子表征学习通过LSTM网络[5-6]学习到每个词或字语义表示,同时通过attention 机制[7-8]学习到每个词语义的权重。长短期记忆(Long short-term memory, LSTM)是一种特殊的RNN,主要是为了解决长序列训练过程中的梯度消失和梯度爆炸问题。简单来说,就是相比普通的RNN,LSTM通过对文本序列的不断迭代有选择继承历史信息以获得当前更好的语义表征,所以其能够在更长的序列中有更好的表现。attention 机制的作用是给不同的词或字分配不同的注意力,比如“高级java开发工程师”,显然“java”这个词更重要,需要分配更多的注意力,相反,如果对其进行简单的语义叠加,那么重要词的信息就会被抑制,从而会丢掉很多关键的语义特征,造成信息损失。
得到句子的语义表征后,同样可以利用attention机制得到文档的语义表征,通过对JD和CV 的数据分析发现,其实JD和CV是否相关,其重要特征多集中在title和内容的几个句子当中,并不会分布在所有的句子当中,也就是说捕获那些含有重要语义特征的句子是关键,这也是为何要在句子层面引入attention机制的原因。
目的:
判断JD和CV 的语义相关程度,分为0:不相关,1:内容相关,2:内容和领域都相关。
技术方案:LSTM+double Attention 孪生网络模型,如图一所示。
1 捕获关键句子和关键词, double+attention 机制。
2 利用LSTM模型提取句子的语义特征。
图一↑
实现流程:
1 构建训练数据(JD, CV)对,构造合理负样本(JD, CV)对。
2 对JD和CV进行分句,以句子为单位进行分词,去除停用词,JD和CV的title进行char cut操作,id化。
3 加载pre_trained embedding,通过embedding layer 得到 word embedding。
4 通过LSTM+attention 得到 sentence vector。
5 得到JD和CV的sentence vector后,继续加一层attention layer,得到document vector。
6 全连接+softmax, 得到分类结果。
- 结果分析
模型经过训练后,在测试集上分类准确率为89.36%,f1 score为83.96%,如果不考虑领域是否相关,即语义相关和不相关,二分类准确率为96.39%,f1 score为96.25%。稍加改造在实际应用也有不错效果。图二是一个“自动驾驶深度学习算法工程师”的岗位信息及推荐系统推荐的结果展示,可以发现推荐结果排名靠前的CV其内容和领域都是和JD语义很相关的,这也验证了模型的效果。
图二↑
图三是JD和CV的sentence attention的可视化热力图,左侧是JD sentence attention热力图,右侧是CV sentence attention热力图,颜色越深表明句子的权重越高。可以看出JD和CV的title的句子权重比较高,其实在一般的JD和CV中title都是权重比较高的部分,但是像:“技术经理”,“研发小微主”,“专员”,“工程师”等JD case,其title 句子权重比较小,重要的句子要在描述内容中寻找。从图三中可以看出,JD, CV内容中和“算法”,“自动驾驶”相关的句子权重都比较高,说明sentence level 的attention机制是符合预期的。
图三↑
图四↑
图四是JD, CV 句子层面的char level或word level的attention可视化热力图 ,其中只展示了部分重要句子中词的权重分布,颜色越深,表示字或词的权重越高。通过简单的计算term weight = sentence_attention*char_attention 即可得到top words,展示如下:
JD top words: [(深度学习, 20.822678), (自动驾驶, 12.59064), (三维点云, 6.618764), (环境感知, 5.927), (cloud, 3.1689138), (算法, 3.0718648), (模块, 2.660974), (计算机视觉, 2.4465554), (立体视觉, 2.443054), (网络结构设计, 2.0044193), (物体检测, 1.897428)]
CV top words:[(算法, 17.713745), (深度学习, 10.472152), (研究, 9.460823), (惯导, 3.709963), (导航算法, 2.04389), (嵌入式, 1.4608734), (无人驾驶, 1.1148125), (总体设计, 0.6105186), (gps, 0.5366095)]
char level attention 机制的作用就是找出句子中的关键语义特征,通过热力图可以发现,在重要的句子中相关的关键词权重确实比较高。
- 总结
句子相似度计算在自然语言处理领域中是一项基础性研究工作,并衍生出文档相似度计算任务。本文对前人的研究进行了总结和归类,并提出了LSTM+double attention孪生网络模型,通过对结果的分析,表明了本方法在人岗匹配中对候选人的简历和企业招聘岗位进行精准匹配的有效性,有助于提升人岗匹配推荐系统的效果。
参考文献:
[1] Huang P S, He X, Gao J, et al. Learning deep structured semantic models for web search using clickthrough data[C]//Proceedings of the 22nd ACM international conference on Information & Knowledge Management. ACM, 2013: 2333-2338.
[2] Zhang Lin, Hu Jie. Sentence similarity computing for FAQ question answering system[J]. Journal of Zhengzhou University: Natural Science Edition, 2010, 42(1): 57-61.
[3] Lan Yanling, Chen Jianchao. Chinese sentence structures similarity computation based on POS and POS dependency[J]. Computer Engineering, 2011, 37(10): 47-49.
[4] Chen Lisha. The research and implementation on WordNetbased sentence similarity of automatic question answering system[D]. Guangzhou: South China University of Technology, 2014.
[5] Sundermeyer M, Schlüter R, Ney H. LSTM neural networks for language modeling[C]//Thirteenth annual conference of the international speech communication association. 2012.
[6] Karpathy A, Joulin A, Fei-Fei L F. Deep fragment embeddings for bidirectional image sentence mapping[C]//Advances in neural information processing systems. 2014: 1889-1897.
[7] Cho K, Van Merriënboer B, Bahdanau D, et al. On the properties of neural machine translation: Encoder-decoder approaches[J]. arXiv preprint arXiv:1409.1259, 2014.
[8] Yin W, Schütze H, Xiang B, et al. Abcnn: Attention-based convolutional neural network for modeling sentence pairs[J]. Transactions of the Association for Computational Linguistics, 2016, 4: 259-272.