リクルート式Hadoopの使い方
           2ndEdition



       株式会社リクルートテクノロジーズ
  ITソリューション部 ビッグデータグループ
                  石川 信行
分社化について

    主な事業会社    (株)リクルートキャリア

              (株)リクルートジョブズ

              (株)リクルートスタッフィング

(株)リクルート      (株)リクルート住まいカンパニー
   ホールディングス
              (株)リクルートライフスタイル

              (株)リクルートマーケティングパートナーズ

              (株)スタッフサービス・ホールディングス


     機能会社     (株)リクルートアドミニストレーション

              (株)リクルートコミュニケーションズ

              (株)リクルートテクノロジーズ
                                      2
リクルートグループのご紹介
~リクルートについて

   ライフイベント領域      ライフスタイル領域

                       旅行
         車購入
        住宅購入
                 お稽古    ファッション
      転職
   出産/育児
    結婚           時事         飲食
   就職
  進学
    「選択・意思決定・行動」を支援する
           情報サービスの提供
リクルートグループのご紹介

カスタマーとクライアントを新しい接点で結び、「まだ、ここにない、出会い」の場
を創造する。



    カスタマー(ユーザー)          クライアント
自己紹介
□名前
石川 信行
(   ground_beetle)

□出身
福島県 いわき市
大学時代は、害虫制御学、生物統計学、
進化生態学専攻

□経歴
・2009年リクルート新卒入社
・営業支援システムのコーダー(java)、DBAとして参加。
・2010年~Hadoop推進担当
・現Hadoop案件推進・新用途開発チームリーダー

□ 趣味
・外国産カブト虫飼育
・スキューバダイビング
・海水魚・サンゴ飼育
2011年Hadoopカンファレンスにて




Hadoop導入のストーリーと課題感、初期の事例紹介、
エコシステムの利用状況などを中心にお話しましたが、

この時点と比べてどのようにデータ活用が進んできたか。
そんな話をできたらと思っています。

                              6
アジェンダ


1
    • 体制と環境の進化


2
    • 利活用事例紹介


3
    • 新しい技術・用途開発


4
    • 誰もが利用できるHadoopへ


5
    • まとめ
体制と環境の進化
アナリスト定義

ビッグデータに対峙する2種類のアナリスト


【役割】
事業の抱える課題解決に向けた仮説を立て、大量データをマイニングし具
体的な解決案を提案する。現場に近いところで超具体的な方針を示す
【スキル・知識】
分析力、論理的思考力、仮説力、統計/マーケティング知識、SQL、Rなど




【役割】
データマイニングや機械学習を行った結果をもとに、ユーザーの行動特性
など一定の規則性を見出し、提供サービスの品質向上に努める
【スキル・知識】
Hadoop、MapReduce、Mahout、Java、R、統計解析、時系列解析、デー
タマイニング、機械学習、自然言語処理など

     出展:http://engineer.typemag.jp/knowhow/2012/02/-13-2.php
ビッグデータG創設

(「コンサル型」+「エンジニア型」)×マーケター
協力できる体制が整備されました。


                事業担当者
ビッグデータグループ      ≒マーケター
   コンサル型           エンジニア型




分析者                  Hadoopエンジニア




                               10
そんな中で僕の業務は




     事業担当者        事業担当者
     ≒マーケター       ≒マーケター


要件定義                  技術提案
集計・分析依頼               案件提案
事業戦略共有                集計・分析
                      事業の担当者と直接要件
                      のやりとりをし、
 分析者          エンジニア     構築・運用
                      実装や分析を通じて共に
                      価値を見出していく
                      最前線の部隊。




                                    11
これまで数多くの失敗と成功を経験してきた

 とある調査会社の資料には8割の会社が情報活用を失敗する
            と記載がある。


   リクルートでも正直失敗は繰り返されていた。
   ・分析しっぱなし。
   ・予算がとれない。
   ・データを信用しない。



  しかし、リクルートにはボトムアップの文化があった。
 事業担当者もエンジニアも分析者も現場レイヤーの人間が
 それはもう泥臭く要件だし、実装、効果把握、報告を繰り
      返したことでここまでやってこれたし、
     社内での認知度もあがってきたといえる。
ビックデータの認識


 Volume     –大量データを格納・処理–
 サンプリングではなく全量データを対象に可視化と予測が可能に。
 会員×原稿全パターンの最適化・パーソナライズなど。



 Variety –多様な種類のデータを格納・処理–
 非構造データ(ログやテキスト)を扱うことができ、人でなければ不可能だった
 処理を機械で実行可能に。テキスト分類、画像解析など。



 Velocity   –データを速く処理–
  リアルタイム処理でwebのインタラクティブ性を向上。個々のユーザの利用に
 応じて進化するレコメンドや、アクティブユーザの物件閲覧数をサイトに表出さ
 せる。



                                     13
システム構成概要①



リサーチ段           実験・検証         第1世代環境       第2世代環境
  階
                     20台           120台   40台 (今後拡大)
  3~4台
                             プライベートクラウド    プライベートクラウド




                            部分的な          完全なる
  実験機                ラボ環境
                            環境融合          環境融合


2008~9        2010          2011          2012

Webサイトのバッチ   システム移行などで     商用利用が可能な設計    プライベートクラウド
処理移植など、       余ったハードウェアを    (セキュリティなど非    環境との融合を進めた
処理性能の評価・      再利用           機能面)を施した環境    環境
研究

                                                 イマココ
システム構成概要②


                                                  第1世代                                                      第2世代

       Apache Hadoop / CDH                                         MapR / GreenplumMR
                    Heartbeat + DRBD



MasterNode1    MasterNode2    MasterNode3    MasterNode4     Node1         Node2             Node3      Node4
 JobTracker                                   JobTracker      CLDB          CLDB             CLDB        CLDB

                NameNode                      NameNode      JobTracker    JobTracker     JobTracker    JobTracker
                               Secondary      Secondary     TaskTracker   TaskTracker    TaskTracker   TaskTracker
                               NameNode       NameNode       FileServer    FileServer     FileServer    FileServer

                                                                                    Warden



SlaveNode1     SlaveNode2     SlaveNode3     SlaveNode4      Node5         Node6             Node7      Node8

 TaskTracker    TaskTracker    TaskTracker    TaskTracker
                                                              CLDB          CLDB             CLDB        CLDB

                                                            JobTracker    JobTracker     JobTracker    JobTracker
 DataNode       DataNode       DataNode       DataNode
                                                            TaskTracker   TaskTracker    TaskTracker   TaskTracker
                                                             FileServer    FileServer     FileServer    FileServer



Master4台+Slave15台+batch1台                                   3Nodeから、利用リソース
の20台構成をベースに利用リソー                                            に応じて増設
スに応じてSlaveを増設
エコシステムを活用

「エコシステム」をフル活用中。


     RDB

 問い合わせログ   PVログ
                                    レコメンド
                                     データ



            Quest® Data Connector




 SQLライクな操作言語として、Hive
 マイニングのライブラリとして、mahout
 データ連携ツールとして、sqoop
 そして、Hbaseも現在実装中。
利活用事例紹介
リスティング分
事業A                                施策シェア分析
                                                   析
                                                               クチコミ分析
                     サイト横断
事業B    サイト間          モニタリング         レコメンド       KWD×LP分析
       クロスUU           指標
事業C     調査                          予約分析

事業D
       13事業に対し、
           メルマガ施策                     BI
                                                KPIモニタリン
      メール通数分析        現行応募相関        ステータス分析
事業E                                                 グ



        半期で120件超の
       自然語解析         行動ターゲティング      LPO

事業F    レコメンド           ログ分析
                     メールレコメン
事業G    自然語解析
                        ド
                                    需要予測        クレンジング



         データ利活用
      領域間クロス         集客モニタリン
                                    需要予測         レコメンド         共通バナー
                        グ
事業H        UU
      カスタマープロファイル    商材分析         クライアントHP分析   カスタマートラッキング
      KPIモニタリン       アクション数予
事業I        グ            測
                                    効果集計

事業J     価格分析          レコメンド        クラスタリング      クチコミ分析
                                                     を展開中
事業K    レコメンド

事業L    レコメンド

事業M   効果見立て分析
                                                                        18
2012年度進めてきた案件パターン
Hadoopに関してはほぼ全事業に提供完了。
下図のように利用が概略化される。

              大量集計           モニタリング
               ・セグメント切りの     営業用資料
               軸を複数に。        戦略資料
               ・対象期間を増やす     機能開発判断材料
 ・RDBのデータ      etc
 ・行動履歴
 (サイトカタリスト、
              スコア計算・アルゴリズム
 独自ログ)         ・会員×原稿のスコ
 ・テキスト                        メール・WEB
               ア付             レコメンド
 ・外部データ        ・行動履歴から相関
               算出

              分析前集計           ロジック作成
               ・分析用の変数作成      シナリオ作成
                              etc
                                    19
パーソナライズド企業一覧




説明と効果

 個人の行動履歴をもとに会員にお勧め企業一覧を100件レコメンド。

 結果12/18~24までの7日間で18000ものエントリーがあり、そのうち一括エント
 リーが149回(13410件)という結果が得られた。



                                              20
転職仲間機能
     応募総数最大化に向けて、転職仲間機能を昨年の4/23にC/O。
近い属性のユーザーを対象ユーザーにレコメンドし、ブックマークする機能を提供。
             週に約70応募増の効果。




ためぞう
         アクティブユーザー選出、
       ノンアクティブユーザー選出@日次




                          DB


                  ユーザー属性ごとに
                  レコメンド対象ユーザーを算出
リクともLiteメール版

               1週間での効果




               転職仲間のロジックをリクナビに移
               行しメールで配信。
               リクナビ13で、卒業間近の2012年
               11月に送ったにも関わらず通常メー
               ルに比べCVRで約2倍の効果。
               リクナビ14での配信と画面化も予定。


                               22
オファー施策の改善のための戦略的分析
レコメンドような目に見える施策だけではなく、事業の今後の施策実行の
ための戦略的分析も行っている。
例えばオファー施策改善のための分析などがある。

                     ①オファーの送信
                                スカウト登録者数
                                  約180万人

                                RNN登録会員数
                     ②応募・返信       370万人
 クライアント   転職エージェント




  課題
 ・オファーはどのようなステータスのカスタマーに送信されているのか?

 ・ オファーを受信するタイミングにより、どの程度返信率が変化するのか?




                                           23
オファー施策の改善のための戦略的分析


        ・最新のステータス    1月1日のDB
                                 ・離脱のタイミングや
RDBMS                            レジュメの変更比較が
        (会員離脱状況や原稿
        掲載状況など)の保存               可能に。
                     1月2日のDB

        ・行動履歴の部分取得               ・種々の行動履歴を
                      1月3日のDB    長期間保存可能に。



例えば分析の中で使われる1つのクエリはメッセージ送信テーブル
(3500万件)と行動履歴テーブル(7億件)を 外部結合して120億
件の中間テーブルを作成する処理



通常の汎用RDBMSでは、37時間程度か
かる見込みの処理が30分で帰ってくる。

                        価値ある
                        Output
                                         24
事業でのHadoop案件推進体制
 ■エントリ~実施判断まで
                          案件を一か所に集約することで、
                共通チーム     分析の知見を集約する!

                   GM
                                        媒体1企画者


                                   案件

                                  案件    媒体2企画者

      事業         Hadoop        案件
     IT担当
                 事務局          案件
                                        媒体3企画者
                             案件
   ビッグデータG
     担当

                                        媒体4企画者




  過去事例などから      実施案件                    媒体5企画者
                          案件エントリ
   工数と効果予測       判断
事業での案件検討スキーム

「検討」「開発」「振り返り」のプロセスを
 標準化・効率化を目指し、開発フローを作成する。




  情報共有                          要件定義
            エントリ      優先度判断               モニタリング
  活性化                            開発




                                企画・開発を近
                      フレームワーク   づけ、ビッグ
  勉強会を定期的                                 開発評議会にて
            月次でエントリ   を元に、開発評   データGと各開
    に開催                                   モニタリングを
              締め切り    議会にて判断す   発Gが直接開発
  (Q毎ぐらい)                                    行う
                         る       を進める



    活性化      活性化      投資効率UP    開発効率UP    投資効率UP
現在取り組み中の案件も数多く、それも段々と難しく、
事業インパクトも強い案件が多くなっている傾向があります。



        シナリオマーケティング


          マッチング最適化


           テキスト解析




                           27
新しい技術・用途開発
新技術のR&D取り組みステップ




            Gate Review   Gate Review   Gate Review



  R-Stage    Dev-Stage       β-Stage     運用-Stage

・技術要素調査     ・効果的な仕組       ・正式にフィジ       ・実運用へ
・技術の実態を     みとしてプレ実       ビリティスタ
 把握する       装             ディとして推進
            ・活用方法をさ       ~展開をする
            らに開拓


            非構造データ
            ビッグデータ
            分析手法開発
             (Hadoop)
            リアルタイム
Chemical Reaction




                    30
はたらいくテキストマッチング


会員レジュメはらしさと仕事のクラスタ
原稿側もクラスタリング

    会員レジュメ             クライアント原稿

                      原稿クラスター

   らしさクラ               メイン
    スター
             マッチング      サブ1
             アルゴリズム

                        サブ2
   仕事クラス
     ター                 サブ3
Tryの数だけ成果があがる


 • 以下のような技術要素について、トライ&エラー・・・!

                 ・150文字以下のレジュメは除外
①データの定義          ・レジュメフォーマット使用疑い者を除外
※クラスタリングが        ・原稿側で、複数回掲載原稿でコピペしたような原稿
適切になされるように       について修正
                 ・原稿タイトル部分のウエイトを重くする
するために検討が必要
                 ・単語の重要度を定義し、使用用語を選定
                 ・階層クラスタリング(KH-Coderによる)
                 ・K-Means(Mahoutによる)
②クラスタリング手法       ・Fuzzy K-Means(Mahoutによる)
                 ・LatentDiricletAllocation(Mahoutによる)
                 ・アソシエーション
                 ・ロジスティック回帰(SPSS-Modelerによる)
③クラスタ間の関係の表現手法   ・SGD手法(Mahoutによる)
                 ・RandomForest(Mahoutによる)
                 ・Tree-Net(SLFDによる)
④評価指標            ・各種論文やモデリング指標を参考
分析ロジックをHadoopで実装する。




                        21
 レジュメ情報
                      重要後抽出
              11
            形態素解析
                        22         24
  原稿情報
                       辞書変換     クラスタリング

                        23
  応募履歴
                     ユーザスコア割当
              12                   23
           PVデータ抽出                        推薦結果
                                マッチング学習
  閲覧履歴




         マッチングアルゴリズム作成フェーズの演算を
                Hadoopに移植
Hbaseの利用
 現在Hbaseを利用した機能C/Oに向けて、開発を行っている最中。

                                          まずは行動履歴の保存先として
                                          例:ユーザのアクセスログ用テーブル
                 HBase Client
                                                          Keyを指定してValueを検索
                                          HBase
                                リアルタイムに
                                          Row    Column   Row   Column   Value
                                データアクセス
                                          User   IP       1     IP       x
                                                 URL      1     IP       x
                    HBase (列指向データベース)            Cookie   1     URL      /aaa
                                                          1     URL      /bbb
                                                          2     IP       y
                                                          2     Cookie   yyy
HBase &                                                   2     URL      /aaa
Hadoop Cluster
                                                          Keyでソート済



                   HDFS (分散ファイルシステム)

                                          画面への状態表示。
                                          例えばこのエリアを見た人が何人と
                                          か、ログインした人が何人とか。
                                          それとリアルタイムレコメンド
                                                                                 34
リアルタイムレコメンド

分析チームで作成したアルゴリズムをHadoopならびにHbaseに
移植。リアルタイムで差配が効くレコメンドアルゴリズムが
実装される。
                               スコア表
     IMAアルゴリズム                  更新
                                        WEBサーバー

            IMAレコメ 出現数
                  ンド
            PV数
推                        レ
薦                        コ
ア                              スコア表   行動履歴
                         メ
イ                        ン
テ                        ド
ム                        出   バルクロード   flush
P                        現
V                        数
数
                               スコア表
                                作成
       多←PV数→少




                                              35
コールドスタート問題を軽減

初来訪のユーザーに対してレコメンド物件がない(コールドスタート)
という問題に対し、外部データ(IPアドレスとエリアの紐付データ)を使う
ことで問題を軽減する。
                      IPアドレスと紐付エリア
      初来訪時
                      から市区町村レベルまで絞ってレコメンド




             エリアの
             おすすめ原稿
       閲覧




      一個でも閲覧したユーザー


                      リアルタイムレコメンド開始

                                       36
リアルタイムレコメンド概要 バッチ
会員×原稿の推薦リスト、原稿-原稿の関連性を作成する。(OffLineの処理)

                    原稿
   SCデータ
                   データ
   会員×原稿の推薦リスト
                             原稿の閲覧関連性スコア

  会員ID    原稿ID      スコア    原稿ID     原稿ID     スコア
  AAAAA   000001    1.0    000001   000002   0.2
  AAAAA   000002    0.8    000001   000003   0.52
  AAAAA   000003    0.6    000001   000004   0.55
  AAAAA   000004    0.55   000001   000005   0.8
  AAAAA   000005    0.52   000001   000006   0.5
  AAAAA   000006    0.5    000001   000007   0.5
  AAAAA   000007    0.4    000001   000008   0.8
  AAAAA   000008    0.2    000001   000009   0.2
  AAAAA   000009    0.1    000002   000003   0.52


                                                    37
リアルタイムレコメンド概要 オンライン

閲覧した原稿に紐づく、原稿-原稿の相関スコアを、他の原稿のスコアに合算。(Online
の処理)




                  この原稿を
                  閲覧




               とあるロジックで
               スコアを合算

                                         38
Hbaseをリクルートらしく!
リクルート内部には非構造系データがまだまだたくさん眠っている
これをもっと有効活用していきたい。
例えば、使いどころが難しいとされているHbase0.92 より追加された
コプロセッサ機能。これに種々のアルゴリズムを実装し事業へ提供するような
ことも考えている。


                  コプロセッサ

                   分類
                  類似検索

                  スコア計算




                                  39
誰もが利用できるHadoopへ
ユーザービリティ強化
Hadoopへ自由にアクセスできるようにWebhiveを利用。
事業の声を受けて改良中。
ある事業ではすでに60本ものクエリ登録がなされ頻繁に利用されている。




                                     41
機能追加をしていく!
Hiveのテーブル定義情報表示のように新機能を追加予定。




 マスタデータのインサート機能、コメント表示やデリミタの切り替え
 などの機能を追加。

                                   42
知見の集約・展開
WebHiveの画面にTips集を追加している。
Hiveの高速化知見、関数の使い方などを蓄積し随時追加していき
事業に公開している。(ただし、オープンソース版には追加していない。)




                                 43
事業と並走する
また、Hbaseの利用により、Tips集にメッセージ機能を追加予定。Q&Aにもベ
ストエフォートで対応する。また、ビッグデータグループのもつ
デモサイトの役割も果たし新機能をどんどん追加予定。




                                      44
SQL対応分散クエリエンジンも導入予定
このように事業担当者がクエリを流すことに馴れてきている今、
次はさらなる速さを求める動きもあり、 SQL対応分散クエリエンジン
の導入も視野にいれている。
使い手がHadoopに対する知識を持ち、Hiveでのクエリ処理に馴れてきたこの
タイミングが重要。




                                     45
まとめ
リクルート的ビッグデータ解析フロー。

リクルートにおけるビッグデータ解析はTryandError方式。
素早く環境を構築し、データを移行。実際のデータを用いて初回OUTPUT
を行い、結果を見ながら要件を詰めて施策へ結び付けていく。


                                       ある程度事業担
 本番DB                                  当のやりたいこ
               Hadoop
                                       とを汲み取り、
               検証環境
 ログ                                     迅速に初回
Hadoopエンジニア主                           OUTPUTを作成
   外部
    導で素早く
  データ
   データを蓄積




 効果を測定し、
エンハンスや次期           Output
新施策を検討する。                   実際のデータを         事業知見
                                  技術
                            見ながら、次の
               効果測定
                             要件を検討         分析
データ分析に関して必要なものとは。
事業担当者と最前線でやってきた立場から言えば、
データ分析に必要なものは分析力、技術力はもちろんのこと
事業の知見、
安易に「できない」と判断しない思考、
結果できた施策によってどんな世界が実現できるかを想像する力
などヒューマンスキルも重要な気がしている。
そしてこれらは実業でのTry&Errorで成長するものだと確信している。


                      分析スキル




      ヒューマンスキル
      マーケティング&
       ビジネススキル                テクノロジースキル
        ※社員を育成する場合は、分析スキルを
         中心としたOJTが必要。




                                          48
グランドデザイン

                                  マーケッター
   アナリスト   エンジニア
                                               検索



        リクルートでは今後もHadoop                      画面表示
                BIツール
       そしてデータ分析を使い倒す!!
                                              連携

                                                      Storm
                           Apache drill               行動ログ
                                                     リアルタイ


  今後世に出るサービスの裏でデータ分析
                                                      ム蓄積
                                                              ログ
                                                             日次蓄積
          Solr                            高速

  が、そしてHadoopが活躍していくこと                    オンライン処理



         でしょう。                     ・高速バッチ処理
                                   ・データストア




                   リクルート
                   外部データ                        RDB
                                                              49

Hadoopカンファレンス2013