conSultantBERT: Fine-tuned Siamese Sentence-BERT for Matching Jobs and Job Seekersをまとめる

書いてる理由

転職サービスにおけるテキストデータの活用方法が知りたい。

参考

conSultantBERT: Fine-tuned Siamese Sentence-BERT for Matching Jobs and Job Seekers

目次

  • 調べた理由詳細
  • conSultantBERTの論文の紹介
  • Abstruct
  • Introduction
  • Related Work

詳細

調べた理由詳細

転職サービスの求人のレコメンド などに用いるデータは、行動履歴や人/求人の属性情報がメインだが、 テキストデータを用いてマッチング精度向上ができないか?? 他のサービスはどう使ってるんだろう?? 調べたろ。 Recsys2021のHR workshopから持ってきた。

conSultantBERTの論文の紹介

Abstruct

求人と候補者のマッチングを目的としたモデルにテキストデータを特徴量として追加することを狙う。 パース済みの履歴書データを用いる・異なるデータソースのデータを用いる・多言語を扱いそれぞれを相互に変換するタスクになっている。 これを実現するため、27万を超える候補者のレジュメと求人情報のペアへの親和性を転職スタッフがアノテーションし、Seamise Sentence-Bertをファインチューニングした。 この取り組みで、TF-IDFやbertへの組み込みで従来を上回るパフォーマンスを発揮した。 また多言語データの扱いや言語の変換も可能であった。

1. Introduction

著者らが所属するRandstadは、グローバル展開するHRカンパニー。 2020年では200万人を超える候補者と、23万6千の企業を取り扱う。 世界で38のマーケットを展開し、その半分でTOP3のサービスとなっている。 2020年時点で、34680人の従業員がおり、2兆円を超える売り上げがある。

候補者に求人を紹介する仕事と、逆に企業に候補者を紹介する仕事をしている。 その中でレコメンド をしており、候補者のレジュメ・求人のテキスト・両方の属性情報を混ぜて利用している。 最大目的は、ポディションが開いている候補者に最適な求人を推薦することである。 本論文では、候補者のレジュメや求人のテキストをレコメンド に組み込むことを検証する。

これをするために、以下を要件として検証する。 1) グローバル展開しているため、多言語を扱うことができること。 2)大量のテキストを効率よく利用できること。

最終的には、これをレコメンドシステムに組み込みより良い推薦をすることを狙う。

1-1. Problem setting

候補者と求人のマッチングにテキストデータを活用するためには、以下の課題がある。 1) データがフォーマット化されていない。 レジュメは候補者が自由に作成し、基本的にPDFであることあ多いがいつもそうであるとは限らない。 またレジュメのテキストをパースする必要があるが、これも難易度が高い。本論文ではパースの方法については対象外とする。 求人のテキストはフォーマット化されていることが多い。

2) データの性質が多様。 テキスト解析でよくあるのは、二つの文章が意味的に近いかどうかを取り扱うことが多い。 しかし転職におけるテキストは同じものを説明するためのテキストではなく、相互に補完する(マッチする)かどうかが興味対象となる。 そのため、我々が扱う正解データはマッチするかや似ているかが焦点となる。

3) 多言語を扱う難しさ。 グローバル展開をしている場合、複数の言語を取り扱わなければいけない。 言語ごとのモデルを作る方法もあるが、ビジネスを考えるとスケールが難しくできれば一度に扱いたい。 それゆえ、一つのアルゴリズムで複数言語を扱いたい。 またレジュメと求人のテキストの言語が異なるケースも多数ある。 例えば、レジュメは一般的に英語で作成されることが多いが、求人は各国の言語で記載されることが多い。

本論では、以下の構成で進める。 2章で、HRドメインにおけるテキストデータの活用の関連研究を述べる。 3章で、レジュメと求人のペアへのアノテーションについてと、これを用いたファインチューニングについて述べる。 4章で、上記で挙げた課題を私たちのアプローチで解決したことを示し、マッチングシステムに組み込めることを述べる。

2. Related Work

自然言語データをレコメンド に組み込むことは近年増えておりデファクトになりつつある。 そこで我々も自然言語データをレコメンド に組み込むことを目的とする。 レコメンド に組み込むとは、所在地などの属性情報と一緒にレコメンド に利用できるようにすることを指す。 そのためにはドメインに特化した文書の組み込みを模索する必要がある。 テキストデータの活用には、文脈を考慮した埋め込みが研究としては進んでいるが、産業界ではまだBag Of Wordsでの利用がメインになっている。

Bianらは、2つのモデルを組み合わせた手法を提案している。 1つ目のモデルでレジュメと求人のテキストの関係をエンコードし、2つ目のモデルでレジュメと求人をエンコードする。 この際文章は1文ごとに解析され、BERTのCLSトークンが全ての文の先頭に付与する。 文章を1文ずつBertでベクトル化してそれらをFull Connectすることで文章のベクトルとして扱う。

Bhatiaらは、文章のペアが同じ候補者や求人から発生した文章かを学習することで、一人の人の持つ経験を距離で表現する学習を提案している。 この方法は、レジュメ・求人のテキスト間のラベルが不要であり、これで作成したモデルを通して利用することで、テキストのベクトル化及びレコメンド への組み込みを実現している。

Zhaoらは、W2Vでレジュメと求人のテキストを学習し、文章を単語ごとにベクトル化してそれをConvlution層の入力としている。 Convolutionのアウトプットをattentionに流し込み、最終的にFCで一つのベクトルにする。 これを候補者と求人のマッチ度と比較することで、マッチング率を計算している。

Ramanathらは、企業からの問合せに対して候補者を推薦する際のランキングに、教師無しの埋め込みと教師有り埋め込みを利用している。 教師無しの埋め込みは、テキストではなくリンクトインのグラフデータを用いている。 グラフデータは、スキル、教育機関、雇用者、従業員の関係が表現され、これをグラフニューラルネットを用いて候補者やクエリを埋め込む。 教師ありの埋め込みは、テキストデータを用いており、企業の問合せテキストと候補者のプロフィールのテキストをDSSM(Deep Structured Semantic Models)で扱っている。 DSSMはテキストをトリグラムで扱い、候補者のプロフィール/企業の問い合わせをそれぞれ別のモデルに通して埋め込むベクトルを獲得する。 DSSMは企業からの問い合わせとそれにどの候補者を推薦したかで学習される。

Zhuらは、skip-gramを用いてレジュメを64次元、求人のテキストを256次元で表現し、Convolutionの入力に利用している。 Convolutionに通して、レジュメはmax pooling、仕事のテキストはmean poolingをしてベクトルをそれぞれ作成している。 これを用いてレジュメと求人のテキストの親和性をcos類似度で表現する。

Qinらは、テキストを求人に必要な経験とレジュメの経験を分割して取り扱っている。 それぞれを双方向のLSTMに入力しベクトルを作成する。 これを二つのモデルで扱うパイプラインで処理する。 LSTMの出力をアテンションにかけ、その出力を用いて再度双方向LSTMに入力している。 さらに分野ごとに特定のスキルを際立たせるための仕組みも提案している。

本論の取り組みは、取り扱うデータが異なるため、これらの取り組みと直接比較はできない。 例えばBhatiaやQinはレジュメの構造化を重視しており、Ramanathらは企業からの問い合わせに対するレコメンド であり、Bhatiaらは制限された範囲内でのアプローチとなっている。 一方本論では、異なる言語で書かれたレジュメや仕事のテキストを扱うことを目的としており、異なる目的となっている。 また複数のモデルを繋げるパイプラインでのアプローチもしておらずレジュメと仕事のテキストを同じモデルで扱うアプローチとなっている。 私たちはグローバルリーダーとして、既存のデータセットを用いることをせず自前でデータを構築した。

3. Method

3-1でデータをどう作成したかを述べ、3-2でこれの利用について述べる。

3-1. Dataset creation

筆者らは、企業と候補者の履歴を膨大に持っている。 その企業と候補者のやりとりの中で、電話や面接や内定をポジティブな信号を定義する。 逆に候補者がレジュメを送ったが企業からリジェクトされたらそれをネガティブな信号と定義する。 またデータが不均衡であるため、ネガティブデータとして企業ごとにポジティブではない候補者をランダムにサンプリングしてネガティブデータとして利用した。 結果的に、274407の候補者求人のペアのデータを作成し、うち126679がポジティブなペア、109724がネガティブなペアである。 ネガティブなペアの中の38004はネガティブサンプリングで生成した。 156256のユニークな候補者のレジュメ、23080のユニークな求人のテキストが含まれ、求人のテキストと候補者のレジュメは1:Nの関係にある。

求人ごとの候補者のペア数の分布は以下。 f:id:raishi12:20220220160454p:plain

10.5%の求人が一つの候補者しかペアがおらず、また30%の求人でも3つの候補者ペアしかいないような分布になっている。

レジュメは候補者が作成したPDFからApach Tikaを用いてパースした。 レジュメの構造は多様で、個人情報・学歴・職歴・趣味などの欄があり、その順序性や表の形式等も異なる。 一方求人のテキストは構造化されている。 大体、2100のトークン(単語)で作られ、その構造は求人情報、仕事の内容、必要なスキルを含む仕事の条件、報酬などを含む仕事の利点、会社の説明が記述されている。

3-2. Architecture

我々が抱えるコンサルタントが付与したデータを用いてプレトレインをしたため、consultantBERTと名付け、wikipediaで100カ国の文字で書かれた記事をクローリングしてプレトレインをしている。 プレトレインはsiamese networksを使っていて、マッチングに対してこのネットワークは効果的である。

オリジナルのSBERTは入力をテキストのペアとし、文章を単語に区切って扱い、それらをpoolingして統合する。 この出力をcos類似度で計算し同じ/異なるという結果との差異をMSEで計算して最小化したり、ラベルとみなしてCloss Entropyを計算して最小化する。

このどちらもレジュメと求人の親和性の計算には利用できるため、seamiseとClassificationの両方の実験をした。

3-2-1. Document representation

SBERTを含むトランスフォーマーの大半は文をベクトル化することを狙っているが、我々は文書をベクトル化したい。 上述したプレトレイン済みのモデルを用いて様々な文書のベクトル化を実験した。 まず文書から文に分割し、それをベクトル化することを試みた。 文は文書に複数あるため、文のベクトルを単純に平均する方法や、文の長さで重み付けする方法をとった。

次に各文章に付与した[CLS]トークンを最後の4文の平均を取得してこれを文書のベクトルとした。 この時の平均化も単純な平均や加重平均なども試した。

このように色々試したが最終的には、文書の最初の512単語をSBERTの入力に使うことに落ち着いた。(文で切らずに連続したものとして扱った) パースした結果が入力となり、これを過剰に削らないように前処理して扱った。

3-2-2. Fine-tuning method

全データの80%を学習に利用し、epoch:5、バッチサイズ:4にして学習をした。 レジュメと求人のテキストは平均プーリングがよかったため、これを用いた。

BERTのモデルのファインチューニングは512単語で実施した。(wikipediaのデータ)

4. Expetimental Setup

4章では、学習用・検証用・テスト用に利用したデータセットを4.1で説明し、ベースラインとそれをベースラインに利用する理由を4.2で説明し、consultantBERTを4.3で説明し、評価を最後にする。

4-1. Dataset

3章で説明した通り、274407の候補者求人ペアを持っている。 これを80%を学習、10%を検証、10%をテストに分割した。 学習データは埋め込みのためのファインチューニングとランダムフォレストの作成のために利用し、検証データはハイパーパラメータの探索、テストデータはこの論文での精度結果を確認するために利用した。

4-2 Baselines

本論では、テキストを有用な形で組み込める特徴量を作成することが目的であるため、比較するためのいくつかのアプローチも試す。

4-2-1 教師無し まず教師無しの手法での特徴量作成をした。 具体的には、TFIDFとBERTのプレトレーニングで特徴量を作成する方法をとった。 これらの手法でベクトル化し、候補者と求人をcos類似度で距離を計算することでこれをマッチングスコアとみなす。 TFIDFは768次元で表現し、BERTでの次元数と合わせた。 学習データでTFIDFのベクトル変換器を作成し、テスト用の候補者と求人のテキストをベクトル化した。一方BERTを用いる方は、FuggingFaceのwikipediaのデータで学習された事前学習済みモデルを用いた。

この試行は、語彙のギャップの評価に利用できました。例えば候補者と求人の利用単語が完全に異なる場合、TFIDFで得る結果からのcos類似度は低くなります。 逆に語彙の重なりが多ければ、TFIDFでも十分良いベクトルを得ることができる。

4-2-2 教師あり ここではTFIDFとBERTでベクトル化したデータをRandom Forestに利用した実験をした。 学習データの80%を用いて、Random Forestのデフォルトパラメータで学習した。 これを教師無しと比較することで、語彙のギャップだけで親和性を予測するのと、そのギャップを親和性の正解と比較しながら学習するのではどちらが良いかを判断する。

4-3. conSultantBERT

最後に、consultantBERTを比較し、Classificationのタスクとして学習するかRegressionのタスクとして学習するかを比較した。

分類問題として解く理由は、マッチングが親和性有り or 無しの二値分類とみなせるからです。 また同時に、本研究は、マッチングに利用できるテキストの埋め込みの探索であるため、分類タスクだけでなく、Regressionとして距離を出すことにも意味があるため、Regressionタスクとしても実施する。

4-4 Evaluation

上記の方法を比較するため、ROC-AUCのスコア及びマクロPrecisoin/Recall/F1-scoreを用いて比較する。 最後に有意差を独立性のあるt検定で検定する。

5. RESULTS

表1に結果を示す。

f:id:raishi12:20220222153306p:plain

5-1. Overall Performance

予想通り、BERTとTF-IDFを教師なしで使用した場合、あまり良い結果は得られなかった。 これは、転職において候補者と求人のテキストに利用されるテキストが一定ではなく、異なる傾向にあるという性質の推測を裏付ける。 3,4行目は教師あり学習の結果で、1,2よりも大きくスコアが増えていることから、教師あり学習をした方が良い精度が得られることがわかり、学習可能なタスクであることを意味する。

5-1-2 conSultantBERT

5~8行目にconSultantBERTの結果を示す。 5,6行目はclassificationのタスクとして学習した結果で、1と5の比較から、私たちが用意したデータが大きな改善をもたらしていることがわかる。

また3,4との結果の比較から、consultantBERTを用いたベクトルを利用したほうが精度の上昇が大きく、3と6の比較ではROC-AUCが12%も上昇している。 私たちの目的は、レコメンドに有用な特徴表現を生成することであり、教師ありで良い精度を出すのも重要であるが、cos類似度をとった時にどうかという教師無しのアプローチの結果が重要となる。

最後にRegressionタスクとして学習した結果を7,8行目に示す。 ここでは、Random Forestを使うより、単純にcos類似度での判別をしたほうが精度が良いという結果になった。 しかし統計的な有意差があるほどの差異ではない。

注目すべきは、cos類似度を用いた方法が最も良い結果となったことである。 これがRFを後続に持つアーキテクチャよりも精度が良いということは、最終層で分類を実施するよりもこれがない状態で予測する方が良いということであり、分類箇所の学習がなくとも親和性を取得できる良い表現ができていることを示している。

5-2 Precision & Recall

PrecisionとRecallに着目すると、1,2行目ではTFIDFの方がBERTに比べてrecallを保ちつつprecisionが少し高いという結果となった。 3,4行目の結果はほぼ変わらず、TFIDFもBERTもベクトル化をした後に分類タスクをかけるとこの二つのベクトルには差異が大きく存在しないという結果となった。 5~8のconsultantBERTを用いた方法は、1~4に比べて精度が向上しており、特に6,7,8はprecision/recall/F1-scoreがバランス良く高い結果となっている。

6 Analysis and Discussion

前のセクションで結果を分析した後、このセクションでは、ポジティブマッチとネガティブマッチにまたがる予測スコアの分布を調べることで、さまざまな手法を詳しく見る。 また、埋め込み空間に求められるもう一つの特性である多言語性について言及する。

6-1. Distibutions

各手法におけるポジティブデータとネガティブデータのスコア(cos類似度は距離、RFは親和性ありの確率)の分布を示す。オレンジがポジティブデータで青がネガティブデータ。

f:id:raishi12:20220223011906p:plain

consultantBERTを用いた方がポジとネガを綺麗に分割できそうである。 用いない左二つは、cos類似度/RFの両方で分布の大部分が重なってしまっている。 また、cos類似度では、BERTはTFIDFに比べて全体的に類似度が高く出力されている。

最もよく分離できていそうなのは右上のconsultantBERTRegressorのCosine類似度をとったものである。

6-2 Multilinguality

私達のグローバル展開を考えると、多言語対応できることが望ましい。 サービスを展開する国では、候補者が求人の企業の国籍が母国ではないケースが増えている。 例えばオランダでは求人のほとんどがオランダ語ですが、候補者のレジュメの10%が英語を使って作られている。 テキスト解析でよく用いられるTFIDFやw2vは一つの言語を扱うのが普通であり、言語を跨いだ解析は困難である。

例えば英語での「logistics」はオランダ語では「logistiek」となるが、これは異なる単語として扱われることが普通である。 これをconsultantBERTで学習した結果、異なる単語を利用しているが文章の類似度がとれたことを以下に示す。

f:id:raishi12:20220223014054p:plain

左側が英語の文章で、下がオランダ語の文章。 各手法で、それぞれの文章の類似度をとった結果が各箱のスコア。 TFIDFでは単語の重なりから計算するので、スコアは0となるが、BERTは単語が異なっていても意味が近しいと判断されればその類似度が計算できるため、通常のBERTでもスコアが算出されている。 これと比較し、consaltantBERTを用いると通常のBERTに比べて似た文章はさらにスコアが高く、似ていない文章はスコアが低くなるようになっている。

7 Conclusion

本論では、様々な方法で候補者のレジュメと求人のテキストを埋め込むための実験をしました。

我々は、コンサルタントがラベル付した、レジュメと求人のテキストの大規模な実世界データセットを用意し、これをSiamese SBERT フレームワークを使用してBERT モデルをプレトレインした。 このモデルは、TF-IDF特徴と事前に訓練されたBERTでの結果よりも良い精度を出すことが明らかとなった。 さらに、このモデルが多言語を同時に扱える可能性を示した。 最後に、私達のモデルに通したベクトルをコサイン類似度をとる方法で最大の精度となったことから、レコメンドへの組み込みが可能なベクトル化モデルを構築したと考える。

以上。