Pensieve: An embedding feature platformの要約

要約

近年では、特徴量自体もmanualではなく、機械学習手法で作成されることが主流になってきている。

LinkedInにおいて、embedding feature platformとして使われているPensieveについて紹介する。Pensieveは教師あり機械学習として学習され、潜在表現を利用したランクモデルに使われる。Talent solution・Careerで利用されている。

Introduction

LinkedIn Talent solution and career teamの目標は、仕事を探している人にマッチするpostを見つけさせることである。

我々は、embedding featureの計算に時間がかかることを解決するために、Pensieveというembedding feature platformを導入した。

Pensieve platform

1. Offline training pipeline

特徴量を作成する(MLは使わない?)。

2. Pensieve modeling

1の特徴量から、低次元のembedding表現を出力するモデルをtrainingする。

3. Embedding serving framework

学習済みのモデルをembedding servingとして提供する。

Pensieve model

model input

LinkedIn knowledge gparhがInputに用いられる。TItle, skill, company, geolocations, resumeなどがsparse categorical featuresとして利用される。

weighted bipartite graphにおいて、u(user), v(job), e(co-occurrence)を使う。

network architecture

Pensieve modelはDeep structured semantic modelにinspireされたDNNである。

member embedding、job embeddingを利用して、eを学習させる。

MLPにおいて、前の層で使った特徴量を使うことで性能を上げている(skip connection)。diagram-depicting-skip-connections-in-the-architecture

model deployment

学習が終わったら、member側のモデル、job側のモデルとして、それぞれdeployされる。

Nearline embedding serving framework

system architecture

効率的に出力できることと、実験を高速に回すことを意識して設計されている。

Apache BeamとSamzaを使っている。

job postingが作成・更新されると、Beam pipelineが動いて、modelが特徴量を生成して、Key value storeとKafka topicにpublishされる。

 

flowchart-showing-the-stages-of-feature-standardization-processors

system optimization

heap sizeを増やしたり、並列処理数を増やすことで対応している。

multi-data-center strategy

計算を全データセンターで行うことで単一障害点となることを防ぐ。

diagram-showing-the-improved-multi-data-center-strategy