我最近从零开始构建了一个职位-候选人匹配系统。这不是玩具。这是一个生产系统接收真实的简历并将它们与数万个真实的职位发布进行匹配。这种系统必须运作良好才能影响人们的职业发展。在我构建它之前我和其他人一样。我会打开LinkedIn看到与我背景毫无关系的职位推荐然后想这能有多难我有个人资料。你有职位描述。只是……匹配它们。现在我明白了。这确实是、几乎荒谬地困难。我的沮丧已经转变为更接近于同理心的东西。以下是让我最惊讶的五个问题。1、语言问题当你尝试将简历与职位匹配时首先学到的是职位广告是混乱的。我不是说它们写得很差虽然确实很多是这样。我的意思是公司描述同一角色的方式完全没有标准化。两份营销经理的发布可能几乎没有共同词汇。一份读起来像公司政策文件。另一份读起来像随意的Slack消息。一份用项目符号列出15个要求。另一份将所有内容埋在一面没有任何结构的文字墙中。现在将其乘以数万个职位发布。每家公司都有自己的语气、自己的格式、自己的内部术语。有些明确列出所需技能。其他则描述职责并期望你推断技能。有些包括薪资信息、资历级别和团队规模。其他的只给你一个标题和两句话。挑战不在于阅读一份职位广告。而在于将成千上万份标准化为可比较的东西。你需要从 wildly 不同的输入中提取相同的结构化信息然后以一种让50人创业公司的营销经理和财富500强公司的营销经理都有意义且独特的方式来表示它。我用NLP技术解决了这个问题。命名实体识别来提取技能、头衔和资格。LLM智能体将非结构化文本解析为结构化模板。它大部分时间都有效。但是人们如何描述同一工作的纯粹多样性让我感到谦卑。每次我以为我处理了所有边缘情况新的一批职位广告就证明我错了。这是整个问题的不性感基础。在你可以匹配任何东西之前你必须理解你在匹配什么。而理解成千上万份非结构化、不一致、有时自相矛盾的职位发布本身就是一项工作。2、分类法问题一旦你解析了职位广告就会遇到下一个障碍这些角色实际上意味着什么数据科学家与AI工程师相同吗有时是的。个人司机有资格驾驶卡车吗取决于执照和上下文但基本技能重叠比你想象的要多。法律顾问与律师相同吗在某些司法管辖区是的。在其他司法管辖区它们是具有不同资格的完全不同的角色。职位头衔本身几乎毫无意义。它们是公司根据内部惯例分配的标签而不是基于任何共享标准。五人创业公司的工程副总裁和Google的工程副总裁除了名片上的文字外几乎没有共同之处。这就是我的工业组织心理学背景派上用场的地方比我学过的任何ML技术都有用。I/O心理学几十年来一直为这个问题构建框架。霍兰德职业代码根据工作类型和在该角色中蓬勃发展的人员类型对工作进行分类。O*NET为数千种职业提供详细的技能、能力和活动分类法。能力框架绘制了人们实际需要知道和做的事情无论他们的头衔怎么说。这些框架给了我纯NLP无法提供的东西一种有原则的方式来说这两个角色相关或这两个角色听起来相似但实际上不。没有这种心理学支架你只是在做带有额外步骤的字符串匹配。分类法问题不是数据问题。它是领域知识问题。领域是人类工作这意味着专家是心理学家而不是工程师。3、相似性问题假设你已经解析了所有职位广告并将所有内容分类到适当的分类法中。现在你需要衡量匹配度。这个候选人与这个角色有多相似标准方法是基于嵌入的相似度。你将候选人和职位编码为向量计算余弦相似度并按分数排名。听起来很优雅。在实践中这是我在项目中最令人沮丧的几周里花时间的地方。首先是嵌入什么的问题。完整的简历结构化摘要单个技能每个选择都会极大地改变你的结果。嵌入太多你会得到噪音。嵌入太少你会失去上下文。然后是模型问题。我测试了多个嵌入模型包括OpenAI、Google Gemini和多语言BERT变体的选项。它们的性能差异显著哪个模型效果最好的排名与我从基准测试中预期的不同。基准测试主要在英语数据上进行训练和测试。我的数据是希伯来语。这是没人警告你的另一件事。如果你在非英语语言工作尤其是具有较少NLP工具、较少训练数据和不同形态结构的语言你的里程将与排行榜所建议的截然不同。希伯来语形态丰富从右到左书写并且针对它调整的预训练模型要少得多。我从英语NLP研究中导入的每种技术都需要适应有时是轻微的有时是重大的。即使你选择了一个模型你也需要在数千个职业类别中计算相似度。在这个规模上你需要仔细考虑效率。暴力成对比较无法扩展。你最终构建检索管道、基于RAG的分类系统和分层过滤方法只是为了使计算可处理。数学很简单。工程不是。4、资格问题这个问题最让我惊讶它也让我相信这个问题需要心理学而不仅仅是工程。大多数匹配系统将匹配度视为一个谱系候选人与职位之间的重叠越多分数越高。但这是错误的。匹配度不是线性的。它是曲线的。一位销售副总裁申请初级销售开发职位并不是95%匹配因为他们拥有所有必需的技能和更多。他们是一个糟糕的匹配。他们会在一周内感到无聊一个月内感到沮丧三个月内离开。过度资格是一种真实现象在I/O心理学中得到了充分研究它预测人员流动、不满意和适得其反的工作行为就像资格不足一样可靠。同样拥有五年后端工程经验的人并不是CTO角色的好匹配仅仅因为技能关键词重叠。资历差距很重要。责任范围很重要。轨迹很重要。一个好的匹配系统必须对此进行建模。它不能只是问这个人有这些技能吗它必须问考虑到他们在职业发展中的位置这个角色对这个人的合理下一步是什么这是一个基本的心理学问题。它需要理解动机、发展轨迹和人与环境的匹配水平这是关键词重叠永远不会捕捉到的。我最终将明确的过度资格和资格不足信号构建到算法中利用数十年的I/O心理学关于工作满意度和人-工作匹配的研究。这使得匹配度显著提高。但如果你纯粹将此视为信息检索问题你永远不会发现这种改进。5、大规模分类问题最后一个主要挑战是任何大规模使用LLM的人都会识别出的分类漂移。LLM在分类非结构化文本方面非常出色。给一个提示良好的模型一个职位描述并要求它对角色进行分类它会做得很好。问题是在规模上的一致性。当你分类成数千个类别跨越数万个文档时小的不一致会复合。模型可能在一个语境中将数据分析师角色分类为商业智能在另一个语境中分类为数据科学具体取决于周围文本。它可能漂向流行类别而远离罕见但有效的类别。它可能基于微妙的上下文变化以不同方式解释相同的希伯来语术语。更深层次的问题是这种规模的分类需要反馈循环。你需要监控漂移捕获错误分类并不断改进你的提示词和参考集。这更像是训练模型更像是管理一组初级分析师他们大多很棒但偶尔自信但错误。6、我学到了什么构建这个系统改变了我对职位匹配问题的思考方式。这不是搜索问题。它甚至不是真正的NLP问题。这是一个伪装成工程问题的心理学问题。技术工具很重要。嵌入、NER、LLM、RAG所有这些都很必要。但没有一个是足够的。困难的部分不是计算相似度。而是在人类工作、人类动机和人类职业的背景下定义相似度意味着什么。这需要大多数工程团队不具备的领域专业知识也是大多数产品路线图没有考虑到的。我开始这个项目时对LinkedIn的糟糕推荐感到轻微的恼火。我结束这个项目时带有真正的同理心。每个试图将人与职位匹配的平台都在努力解决这些相同的问题通常是在比我处理的规模大得多、跨越更多语言的情况下。他们的推荐平庸不是懒惰或无能的迹象。这是这个问题确实是迄今为止最难的应用AI挑战之一的迹象。好消息是它是可解决的。但解决它需要将工程人才与工作心理学的深层领域知识相结合的团队。它需要将I/O心理学视为一种核心能力而不是锦上添花。它需要接受如果你不了解你试图衡量什么世界上最好的嵌入模型也无法拯救你。我将在未来的文章中深入探讨技术实现。目前我只想分享概念格局因为我认为太多团队在理解心理学之前就跳到了工程。而这恰恰是相反的。原文链接为什么LinkedIn简历匹配很糟糕 - 汇智网