パーソナライズメールプロジェクトの舞台裏
昨年度リクルートが実施したレコメンドへの取り組みの1つである、パーソナライズメールプロジェクトに関して、実際の手順に沿って詳細を振り返ってみます。
Step0:必要データを確認し、取得する
レコメンドのアルゴリズムを開発するにあたっての必須要素はデータですが、必要なデータが取得できていないケースが散見されます。日々のモニタリングでは、膨大な指標を追い切れませんので、むしろ分析者が必要とするような詳細なデータが揃っていることの方が稀だと思います。
つまりプロジェクトスタート時点では、アルゴリズム開発に必要な最低限のデータすらないという状態を想定しておく必要があり、まず真っ先にデータの現状確認、可能な限りの準備をしておくべきと考えます。
またデータを取得するにあたり、可能な限りのデータを取得したい! と思いがちですが、「目的を達成するために必要なデータ」と「保険のためのデータ」を分けて考えて、データ取得にかかるコストを元に取得したいデータを最終決定する必要もあります。
さらにデータが溜まるまでは一定の期間を要しますので、プロジェクト開始の兆しが見えたら、すぐにこのステップを実行に移しておきましょう。
Step1:体制を確保する
ビジネス側責任者
プロジェクトオーナーとして、ビジネス側のリソースの決定をする役割を担います。分析側で代替できないリソースに関しては確実に用意してもらえるよう、判断材料をきちんと提示しましょう。
ビジネス側担当者
わざわざ事業特性に特化した自前のアルゴリズムを作成しますので、ビジネス要件を深く理解し、課題意識を持っている担当者であることが必須です。この担当者との密なコミュニケーションが、アルゴリズム開発の期間/コストを短縮する鍵になります。
ビジネス側システム開発者
データを正しく選択し精度の高い分析を行うためには、事業データに関して各論で質問できる相手が必要です。データの抽出作業なども担当します。
メール配信作業者
メールテンプレートの作成やメール配信作業を実施する役割です。
分析者
アルゴリズム開発全般を担当します。
全体統括マネジメント
タスクの洗い出し、スケジュール管理など、いわゆるプロジェクトマネンジメントをする立場となります。事業側、データサイエンスチームの双方を見渡せるこの機能なしでプロジェクトを事業側に完全に任せてしまうと、リソース不足といった理由でスケジュールが大幅に押したり、配信が実現できないというケースに陥りかねませんので注意が必要です。
Step2:アルゴリズムを開発する
アルゴリズム開発において、常にトレードオフの関係にあるのは精度と演算時間です。
データソースが多ければ多いほど精度の向上は見込めますが、たくさんのデータを用いると演算時間は指数関数的に伸びていきます。
たくさんのデータを使うと精度は増すが時間がかかる
重要指標を選択するのはもちろんのこと、セグメントごとに利用する指標を変える、指標のウェイトを変えてみる、分析手法をハイブリッドにしてみる、など日々試行錯誤しながら、限られたリソースの中での最適解を見つけていく姿勢が重要です。
当該プロジェクトではIBM社のSPSS Modelerを用いてアルゴリズムを作成しました(参考:IBM SPSS Modeler Professional)。SPSS Modelerはデータ加工からモデル作成までを一気通貫でできるツールです。
GUI(グラフィカルユーザーインターフェース)上で操作でき、ストリームと呼ばれる領域にさまざまな処理(条件抽出、データ結合、各種統計モデリングなど)を組み込んだ「ノード」と呼ばれるアイコンをつないで処理フローを作成することができます。
また、スクリプトと呼ばれる言語でパラメータの指定やループ処理などを実行させることも可能で、これらの機能を組み合わせることにより、分析者が自由度高く分析処理を実施することができます。
当該プロジェクトでは、Modelerのノードに組み込まれていないような統計値も独自の関数を記述することで、アルゴリズムの作成を実現しました。
そして、SPSS Modelerのバッチ起動モードを利用し、更にファイルのコピーや設置なども組み込んだバッチを作成しました。これら詳細なタスクを積み上げることにより、アルゴリズムチューニングやF/Sにかかる工数の大幅な削減を実現しています。
Step3:F/Sメール配信
アルゴリズムが完成したら、演算結果を用いていよいよメール配信を実施します。リクルートでは多くのサイトで 外部のメール配信サービスを利用しており、それらに標準で実装された差し込み機能を最大限に活用し、一人ひとりにパーソナライズされたメール配信を実現しています。
差し込み機能を利用する際は、「表出項目とメールテンプレートの項目が一致しているか」という点を確認する必要があります。メールの配信時刻、サブジェクト文言なども検証の対象になります。
Step4:結果モニタリング
アルゴリズム開発の際、机上での検証も当然行ってはいますが、実際にユーザーの反応を見ることができるのがF/Sのよい点です。開封数、クリック数、クリック箇所など、可能な限りの指標を計測し、複数の側面から検証すべきでしょう。
検証の前に注意すべき点として挙げられるのが、トラッキングコードの設定です。そもそも取得できていないデータは検証できないため、Step3のメール配信時に検証を見据えた取得データの確認が必要です。
また、意外に忘れがちなのが配信停止数や退会数の計測です。得られるレスポンスに対してマイナスレスポンスが多すぎる場合は、メールの配信をやめるというジャッジもしなくてはならず、その判断材料として必要となります。

