CodeZine(コードジン)

特集ページ一覧

Sansan CTO 藤倉氏が導き出した、データ分析に必要な3つの要素とは?【デブサミ2018 夏】

【C-5】人脈の情報はどうやって蓄積されるのか?Sansan/Eight のデータエンジニアリング

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2018/09/05 14:00

 クラウド名刺管理サービス「Sansan」や名刺アプリ「Eight」を提供するSansan株式会社。同社は、優れたデータエンジニアリング基盤を構築し、長きにわたって名刺の解析技術を向上させ続けてきた。いまや、日本でも有数の「データ分析が強い企業」であることは間違いないだろう。紙というアナログな物質を高精度でデジタルデータに変換するために、いかなる手法を用いているのか。蓄積されたデータを活用するにあたり重視すべきポイントとは何なのか。セッション「人脈の情報はどうやって蓄積されるのか? Sansan/Eight のデータエンジニアリング」では、同社のCTOである藤倉成太氏がそのポイントを語った。

Sansan株式会社 最高技術責任者(CTO) 藤倉成太氏
Sansan株式会社 最高技術責任者(CTO) 藤倉成太氏

Sansan/Eightの屋台骨を支えるデータ化のプロセス

 紙の名刺を画像データとして取り込み、デジタルデータに変える。多くの人が知るように、Sansan社は創業から現在に至るまでこの技術を洗練させてきた企業だ。では、Sansan/Eightによる名刺のデータ化はいったいどのようなステップを経て行われるのだろうか。

Sansan/Eightにおけるデータ化の流れ
Sansan/Eightにおけるデータ化の流れ

 Sansan/Eightではまず専用のスキャナやスマホアプリから名刺を読み込む。スキャナは精度の高いものを使用しているため、画質に課題が生じることはほぼないものの、問題はスマホアプリにあるという。

 「手でスマホを持ってスキャンすると手ブレが発生します。また、画像から矩形を認識しなければならないということもあり、撮影機能では画像は静止画ではなく動画のストリームを扱わなくてはなりません。そして、動画ストリームの各フレームをリアルタイムで計算する必要があります。スマホアプリで名刺を撮影するという機能だけでも、研究開発が必要なくらいに難易度が高い領域なのです」

 取り込まれた画像データは、スマホアプリ経由の場合は矩形を切り取ったり補正したりといった画像加工処理をクライアントサイドで施したうえでサーバーサイドに送られる。

 だが、スマホのコンピューティングリソースは限られているため、できることは限定的だ。そのため、サーバーサイドで改めてホワイトニングやエッジング、拡大縮小といった画像の前処理が行われるのだという。

 次にあるのが、「マイクロタスク化」や「マイクロソーシング」といった工程だ。これは、名刺という機微な情報を、高い機密性を確保しながら処理するために施されるプロセスである。

 同社が処理している名刺の数は、年間で数億枚にも及ぶ。名刺情報の入力には多くの人の力が必要であり、社内のメンバーだけでは到底全ての作業を賄うことはできない。外部のビジネスパートナーとも連携しながらデータ処理を進めていくことになる。その際に、情報漏洩のリスクを最小限に抑えるための仕組みとして同工程は存在するのだという。

 「『マイクロタスク化』の工程では、名刺全体の画像データを会社名や氏名、Eメールアドレス、住所などのパーツ単位に切り分けます。この処理には画像解析や機械学習の技術が導入されており、『画像内の各要素がどんな種類の情報を指し示しているか』が自動判別されるようになっているのです。さらに、名前やメールアドレス、電話番号など個人を一意に特定しうるものに関しては、より詳細にパーツを細分化し、誰の情報なのかわからないような状態にします。この処理を行うことで、個人情報を安全に扱うことができるようになっています」

 パーツ単位まで細分化された名刺の情報は、入力作業が完了したものから順にSansanのサーバーサイドへとデータが戻り、「マージ(結合)」に至る。その後、最終チェックや補正のプロセスを経たうえで完成版のデータになるという。

データを扱ううえで重要なポイントとは何か?

 藤倉氏は約10年にわたり、Sansan/Eightのデータと向き合ってきた。その経験を通じて、データに対して大きく3つの点を理解してきたという。

 1つ目は、データの種別によって取り扱いに求められる慎重さが異なり、かつ創出できる価値も変わってくるということだ。例えば、名刺データは一つひとつが個人情報である。一方で、もともと公になっている気象や交通などのデータも存在する。そして当然ながら、それらは入手の難易度が全く異なる。

 「入手が容易なデータの場合、それを用いることで新しい価値を見出していくことは非常に困難です。考えてみれば当たり前で、誰もがアクセスできるデータならば、長い人類の歴史のなかで数多くの人がそのデータを利用して価値を生み出そうと挑戦してきた可能性が高い。そこから全く新しい価値を生み出すには、他の誰もが真似できないほど高度な技術を活用するなどしか道は残されていません。一方で、名刺情報といった極めて慎重に扱うべきデータは取り扱いが難しく、そもそも向き合ってきた人の数自体が少ないです。そのデータから価値を見出していく作業には多くの余地が残されていると考えています」

 企業や個人が何かのデータと対峙する場合には、その情報がどんな性質を持つものなのかをよく理解したうえで扱うことが重要となる。つまりデータの特性そのものが、ビジネスのアイデアやサービスの設計、必要コストなどに多大なる影響を与えるのだ。

 2つ目は、データ構造の複雑度合いが、使用可能な(または使用すべき)データストアを規定するということ。

 直近10年ほどの間で、データストアの技術は飛躍的に進歩し、数多くの新しいツールが登場した。だが、データが持っている特性とツールが前提する設計思想が異なるならば、用いられている技術がどれほど優れているとしても、両者はアンマッチであり運用には耐えない。だからこそ、RDBMSやグラフDB、NoSQL、KVSなどを選定する際には、扱うデータの持つ「構造」に着目することが重要になるのだという。

 3つ目が、データには「集める(入口)」と「価値を提供する(出口)」という2つのフェーズが存在しており、両方を対にして考える必要があるということ。

 入口のフェーズにおいては、収集する主体が何らかの報酬を払って集めてくる場合と、逆に提供主体が能動的にデータを提供する場合がある。ユーザーに商品券などを配布してアンケートに答えてもらうのは前者にあたり、ユーザーの行動ログを収集するのは後者に当たるだろう。

 また、その情報をどのような方法で出口に結びつけるかにもいくつかのパターンがある。例えば、入口で得たデータの分析結果をそのままプロダクトにフィードバックするのか、全く別のプロダクトに変換するのか。

 目的が不明瞭なまま入口と出口の設計を行ってしまえば、ちぐはぐな結果しか出てこないこともあり得る。データは「なんとなく」で分析をしても良質なアウトプットを生み出すことはできないからだ。

 どのような出口に向かいたいかに応じて、使うべき分析の手法や基盤は全く異なってくる。その意識を持つことが、効率的かつ効果的にデータ分析を行ううえで大切なのだという。

データの理解における3つのポイント
データの理解における3つのポイント

 Sansan社のデータ基盤を長きにわたり支えてきたものが技術であることは間違いない。しかしそれだけではなく、「データとの向き合い方」にもその秘訣があった。

お問い合わせ

 Sansan株式会社

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • CodeZine編集部(コードジンヘンシュウブ)

    CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

All contents copyright © 2005-2022 Shoeisha Co., Ltd. All rights reserved. ver.1.5