LinkedIn 招聘之搜尋和推薦系統背後的 AI

dicksonjyl560101發表於2019-05-17


2019-05-16 09:17:49

在這篇文章中,簡要概述了我們的模型探索之旅以及 LinkedIn 中人才搜尋系統所使用的架構。這些模型對我們的關鍵業務指標產生了影響。更重要的是,LinkedIn 會員和客戶的搜尋效果得到了改善。

正文

LinkedIn Talent Solutions(人才解決方案)提供了僱主接觸潛在候選人和求職者尋找職業機會的市場。LinkedIn Recruiter產品是幫助實現這些目標的關鍵機制,它幫助招聘人員和招聘經理尋找合適的人才,並使他們能夠識別“人才庫“,提高了僱用成功的可能性。在本文中,我們將首先重點介紹與人才搜尋和推薦系統相關的一些獨特的資訊檢索、系統和建模中的挑戰。然後,將介紹我們如何規劃和解決這些挑戰,如何設計和架構整體系統,實踐中遇到的問題,以及從 LinkedIn 這些系統的生產部署過程中吸取的經驗教訓。

介紹

LinkedIn Recruiter 產品以查詢、職位釋出或推薦候選人的形式,提供與搜尋請求相對應的候選人排序列表。給定一個搜尋請求,選擇與請求匹配的候選人,然後根據各種因素(例如,崗位經驗 / 技能與搜尋範圍的相似度、職位釋出的位置,以及感興趣的候選人響應的可能性)使用機器學習的模型在多個過程中進行排序。該應用的螢幕截圖如圖 1 所示。

LinkedIn 招聘之搜尋和推薦系統背後的 AI


圖 1:來自 LinkedIn Recruiter 產品的(模擬)螢幕截圖

  • 對於每個推薦的候選人,招聘人員可以執行以下操作:
  • 檢視候選人的個人簡介,
  • 將個人簡介儲存到招聘專案中(作為潛在的匹配項),
  • 向候選人傳送 InMail。

在本文中,將討論在 LinkedIn 的人才搜尋系統中使用的多種方法。這些方法旨在解決與人才搜尋和推薦系統相關的一系列獨特的資訊檢索挑戰,具體如下:

  1. 與傳統的搜尋和推薦系統不同,傳統的只關注如何評估一條內容和給定查詢的相關度,人才搜尋領域需要招聘人員和候選人就本崗位互相彼此感興趣。換句話說,我們不僅需要所顯示的候選人必須與招聘人員的查詢相契合,而且需要招聘人員聯絡的候選人必須對崗位機會表現出興趣。因此,使用適當的指標來最佳化模型以及線上的 A/B 測試至關重要。於是我們定義了一個新目標,即 InMail Accept(InMail 接受度),當候選人從招聘人員那裡收到 InMail 並給出肯定回覆時,就會觸發目標達成。我們將 InMail Accept 作為雙向興趣的指標,這可能會促使候選人收到崗位機會並接受它。在 Recruiter 產品的新模型上進行實驗時(參見BigData’15,CIKM’18和SIGIR’18論文詳情),我們使用接收並接受 InMail 的前 k 名候選人的評分作為主要評估指標(稱為 Precision@k)。
  2. 此外,人才搜尋系統的底層查詢可能非常複雜,它結合了一些結構化欄位(如規範化頭銜、規範化技能和公司名稱)和非結構化欄位(例如自由文字式關鍵字)。根據應用的不同,查詢可以由顯式地輸入的查詢文字和所選內容(透過招聘人員搜尋或研究文獻中所謂的“人才搜尋”)組成,也可以隱式地以崗位機會或理想應聘者的形式(推薦匹配)組成。在招聘人員搜尋的過程中,為了幫助使用者制定查詢公式,我們會建議哪些相關物件使用者可能感興趣,例如,對搜尋“機器學習工程師”頭銜的招聘人員,我們就推薦具備“資料科學家”頭銜和“資料探勘”技能的人才。透過給定的查詢,我們的目標是透過數億個半結構化候選人的個人簡介實時確定最相關的候選人的排序列表。因此,可靠的標準化、智慧化的查詢和查詢建議、可擴充套件索引、候選人選擇的高召回率(high-recall)、有效的排序演算法、以及高效的多通道評分 / 排序系統是必不可少的(參見SIGIR’16和WWW’16論文詳情)。
  3. 最後,個性化對於人才搜尋系統而言非常重要,我們需要根據招聘人員所尋找應聘者的型別來模擬他們的意圖和偏好。這可以透過離線學習儲存的招聘人員所使用資料的個性化模型來實現,或透過了解招聘人員線上使用系統期間的偏好來實現。有時候,招聘人員甚至可能不確定要搜尋什麼技能,這必須透過一系列候選人的推薦和評估的階段來學習(關於如何在 LinkedIn 上應用個性化搜尋人才的更多細節,參見CIKM’18和WWW’19論文詳情)。

藉助本文中描述的建模方法,我們已經能夠穩步提升我們的關鍵業務指標。例如,在兩年的時間裡,我們能夠將求職者的 InMail Accept 數量增加一倍。所有這些努力也有助於實現我們為全球每一位勞動力創造經濟機會的願景。

方法

使用梯度提升決策樹(Gradient Boosted Decision Trees)進行非線性建模

我們的早期機器學習模式是一種線性模型,它的優點是易於解析、解釋和部署,在起步階段是一個很好的選擇。但是線性模型不能很好地捕捉非線性的特徵互動,我們現在使用Gradient Boosted Decision Trees(GBDT)來釋放資料的力量。GBDT 模型透過樹結構顯式地實現了互動。除了更大的假設空間外,GBDT 還具有其他的一些優勢,例如能很好地處理特徵共線性(feature collinearity),處理不同範圍的特徵以及特徵值的缺少等。我們使用 GBDT 進行招聘人員搜尋排序線上實驗,實現了結合(engagement)度(招聘人員和候選人之間)指標統計上顯著地改進了幾個百分點。

基於 Pairwise 排序學習(Pairwise LTR)的情景感知排序(Context-aware Ranking)

為了將對搜尋情景的認識新增到我們的 GBDT 模型中,我們進行了以下改進。對於搜尋人員的情景,我們新增了一些個性化功能。對於查詢的情景,我們新增了更多候選人查詢的匹配功能,其中一些功能直接來自 LinkedIn 的旗艦搜尋產品。非常重要的是,我們使用具有 Pairwise 排序目標的 GBDT 模型來比較相同情景(即相同搜尋請求)中的候選者。Pairwise 最佳化器會比較相同搜尋查詢中的成對的結果,而 Pointwise 最佳化器會假設所有的結果都是獨立的,無論它們是否在相同的搜尋查詢中。出於這個原因,Pairwise 排序能更加體現情景的資訊。情景的特徵和 Pairwise GBDT 模型的應用,幫助我們在招聘者 - 候選人的結合度指標上提升了十幾個百分點。

深度學習和表示學習方面的努力

如上所述,因為梯度提升決策樹(GBDT)模型具有優於線性模型的特點, 現有的排序系統採用它為 LinkedIn Recruiter 產品提供支援。雖然 GBDT 提供了相當強大的效能,但它帶來了以下挑戰:

  1. 使用其他可訓練元件(例如離散特性的嵌入)來擴充樹的整合模型(Tree Ensemble Model)是非常重要的。這種做法通常需要對模型與元件 / 特徵進行聯合訓練,而樹的整合模型假定不需要對特徵本身進行訓練。
  2. 樹模型不能很好地處理稀疏 ID 的特徵,如技能 ID、公司 ID 和成員 ID,但我們希望將它們用於人才搜尋的排序。由於稀疏特徵只有相對少部分是非零的,因此在每個提升步驟中選擇這種樹生成的可能性很小,特別是這樣訓練出來的樹的深度通常是比較淺的。
  3. 樹模型在模型工程中缺乏靈活性。可能需要用到新的損失函式,或用其他條件來增強當前的目標函式。使用 GBDT 模型不容易實現這樣的修改,但是對於基於可微分程式設計(differentiable programming)的深度學習模型而言,這些修改相對簡單。最終具有(廣義)線性層的神經網路模型,還使得采用諸如遷移學習和線上學習之類的方法更容易。

為了克服這些挑戰,我們探索了基於神經網路模型的使用,這些模型在設計和規範中提供了足夠的靈活性。我們對最多三層的 Pairwise 深度模型進行的離線實驗表明,與我們的基線 GBDT 模型相比,後者有了很大的進步,以結合度為標準,我們觀察到改進了幾個百分點。

我們目前正在探索利用 LinkedIn 的最新模型來改進基礎設施,以部署神經網路模型。

人才搜尋建模的另一個重大挑戰是,招聘人員如何將大量可用的實體作為搜尋的一部分,以及如何利用它們進行候選人選擇和排序。例如,招聘人員如何從成千上萬的 LinkedIn 標準化的技能中進行選擇。由於不同的實體在不同程度上可以相互關聯,因此使用句法特徵(例如,候選者只擁有查詢技能的一小部分)有侷限性。相反,更需要利用實體的語義表示,例如,以低維嵌入(low dimensional embedding)的形式。這種表示能將許多稀疏實體更好地合併為機器學習模型的一部分。在 Recruiter 中,我們利用經過大規模資訊網路嵌入(LINE)方法訓練的無監督網路嵌入。LINE 可以最佳化一階近似和二階近似,適用於有向圖和無向圖,並且擴充套件性很好。網路嵌入使用修改版的LinkedIn 經濟圖譜(Economic Graph)進行訓練,根據兩個實體存在於多少個 LinkedIn 成員的個人簡介中,來生成這兩個實體之間邊的權重(例如,他們共有的技能,或者都曾在一條邊兩端的兩個公司工作等)。下面給出了公司實體的圖表說明:

LinkedIn 招聘之搜尋和推薦系統背後的 AI


圖 2:公司實體圖的圖示

我們利用生成的嵌入作為我們訓練 GBDT 模型的功能的一部分,這種基於網路嵌入語義相似度特徵的 GBDT 模型的線上實驗顯示,以結合度指標做比較,提升了幾個百分點。但是,這種提升在統計意義上並不顯著。假設檢索過程是基於頭銜 id 進行精確匹配的,所以基於嵌入的相似度不會對檢索結果產生太大的差異,這促使我們把它應用到檢索階段。我們採用了一種擴充套件查詢的策略,當原始查詢返回的結果太少時,該策略會新增具有相似語義的頭銜,例如“軟體開發人員”之於“軟體工程師”。

基於 GLMix 的實體級個性化(Entity-level Personalization)

在招聘人員進行搜尋的領域中,多個實體(如招聘人員、合同、公司和候選人)發揮了作用。為了將實體級偏好納入非線性模型,我們在混合模型中結合了兩者的優點。對於實體級的個性化,我們使用廣義線性混合(GLMix)模型,並在招聘人員的搜尋領域中對多個實體進行個性化實驗。為了實現非線性的特徵互動,我們在實際環境中使用 GBDT 模型作為特徵變換器,來生成樹的互動特徵(Tree Interaction Features)和 GBDT 模型評分。根據我們的離線實驗,我們在最終的 GLMix 模型中使用了招聘人員級和合同級的個性化方案。圖 3 顯示了使用 LTR 特徵、樹互動特徵和 GBDT 模型評分構建 GLMix 模型的管道。LTR 特徵用作預訓練 GBDT 模型的輸入,產生被編碼成樹互動特徵的樹集合和每個資料點的 GBDT 模型評分。然後,利用原有的 LTR 特徵,以及它們在樹互動特徵和 GBDT 模型評分的形式下的非線性轉換,建立了一個具有招聘人員級和合同級的個性化 GBDT 模型。

LinkedIn 招聘之搜尋和推薦系統背後的 AI


圖 3:具有樹互動功能的 GLMix 模型的管道

在線上實驗中,我們將最佳 GLMix 模型的變體“GLMix 全球 + 每個合同 + 每個招聘人員”模型與當時的生產模型進行了基準測試,這是一種 Pairwise GBDT 模型。與 Pairwise GBDT 基礎模型相比,使用具有樹互動特徵的 GLMIX 模型的線上實驗結果,使得結合度在統計學意義上的顯著地改進了幾個百分點。

會話中的線上個性化

利用離線學習模型的一個缺點是,當招聘人員檢查推薦的候選人並提供反饋時,在當前的搜尋會話期間不會考慮這個反饋。因此,Recruiter 團隊開發了適應使用者反饋的系統,經過一些處理步驟(依次對候選人給出即時反饋),推薦最佳候選人。

下面是我們為這樣一個系統使用的架構。它首先將崗位潛在的候選人空間按技能進行分組,然後,利用多臂gamble機(multi-armed bandit)模型,根據招聘者當前的意圖,瞭解哪個組更合適,並且根據反饋更新每個技能組內的候選人排序。

LinkedIn 招聘之搜尋和推薦系統背後的 AI


圖 4:多臂強盜線上個性化系統的架構

下面是我們使用這種推薦演算法進行的初步實驗的一些結果。當更多的候選人被呈現給使用者時,我們還可以展示推薦的準確度(候選人是否被使用者正面評價)。圖中顯示,隨著推薦模型中更多的反饋,候選人推薦的質量得到了提高(獲得越來越多的正面反饋)。注:根據公司政策,對標記為“良好匹配”的候選人的準確百分比進行了修改。

LinkedIn 招聘之搜尋和推薦系統背後的 AI


圖 5:每個指數的優秀候選人的百分比

最近我們團隊中線上學習方向的另一項努力,是學習各種個人簡介的屬性(例如技能、頭銜、行業和資歷),基於應聘者對這些屬性的的反饋,找到和招聘人員最相關的那些屬性 。如果招聘人員一直對那些有領導能力的會計師或者擅長社交媒體的專案經理感興趣,我們的目標是推薦更多這樣的候選人,並隱式地學習招聘人員的搜尋查詢來了解他們的意圖。這一切都是線上實時發生的,因此可以即時地考慮收到的反饋。有關此方法的更多詳細資訊,感興趣的讀者請檢視另一篇最近的LinkedIn 工程部落格文章。

系統設計與架構

LinkedIn 在 Lucene 上構建了一個名為Galene的搜尋堆疊,併為各種外掛做出了貢獻,包括實時更新搜尋索引的功能。搜尋索引包含兩種型別的欄位:

  • inverted 欄位: 從搜尋詞到包含它們的實體(成員)列表的對映。
  • forward 欄位: 從實體(成員)到後設資料的對映。

這些搜尋索引欄位有助於評估搜尋排序中的機器學習特徵值。搜尋索引欄位中資料的新鮮度對於機器學習功能也是非常重要的。

LinkedIn 招聘之搜尋和推薦系統背後的 AI


圖 6:人才搜尋架構和流程

招聘人員搜尋具有分層的排序架構:

  • L1: 進入人才庫,對候選人進行評分 / 排序。在這一層中,候選檢索和排序是以分散式方式完成的。
  • L2:最佳化 入選人才,使用外部快取實現更多動態功能。


LinkedIn 招聘之搜尋和推薦系統背後的 AI


圖 7:詳細的搜尋檢索和排序架構

Galene 代理系統將搜尋查詢請求分散(fan out)到多個搜尋索引分割槽。每個分割槽檢索匹配的文件,並將機器學習模型應用於檢索的候選物件。每個分割槽對候選物件的子集進行排序,然後代理收集排序後的候選物件並將其返回給聯邦者(Federator)。聯邦者使用動態或從快取記憶體引用的附加排序特徵(這是 L2 排序層),進一步對檢索到的候選物件進行排序。有關我們的聯邦搜尋體系架構的更多詳細資訊,請參閱先前與此主題相關的LinkedIn 工程部落格文章。

結論

在這篇文章中,我們簡要概述了我們的模型探索之旅以及 LinkedIn 上人才搜尋系統所使用的架構。這些模型對我們的關鍵業務指標產生了影響。更重要的是,LinkedIn 會員和客戶的搜尋效果得到了改善。最近,出於 LinkedIn為全球每一位成員創造經濟機會的目標以及確保客戶能夠獲得多樣化人才的濃厚興趣,我們還將性別代表性排序作為我們人才搜尋的一部分,部署給全球 LinkedIn 招聘產品的所有使用者。

檢視原文連結 :The AI Behind LinkedIn Recruiter Search and Recommendation Systems


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2644697/,如需轉載,請註明出處,否則將追究法律責任。

相關文章