「OASIS」の詳細については、インタビューに登場する吉田さんが執筆したブログも併せてご覧いただきたい。
データ分析・活用に関わる専門開発組織「LINE Data Labs」
LINEに各種ファミリーサービスのデータを事業へ活用するための専門的な開発組織「LINE Data Labs」が新設されたのは2016年3月。現在、兼務を除き約50人の機械学習エンジニア、データサイエンティスト、データエンジニア、データプランナーなどが在籍する。LINE Data Labsは「Machine Learningチーム」「Data Analysisチーム」「Data Applicationチーム」「Data Platformチーム」「Data Planningチーム」の5つのチームで構成されている。
では具体的に各チームではどんなことをやっているのか。教えてくれたのはMachine Learningチームの菊地悠さん、Data Analysisチームの牟田博和さん、Data Applicationチームの吉田啓二さんの3人だ。
レコメンドエンジンを開発するMachine Learningチーム
「Machine Learningチームの所属メンバーは10人。ロールは大きく3つあり、機械学習のエンジニアとその周辺のサーバサイドやインフラに携わるエンジニア、そしてプランナーと呼ばれるプランニングやプロジェクトマネジメントに従事する人たちで構成されています。その中で私は、LINEスタンプやLINEマンガ、LINE NEWSなどのサービスで使われるレコメンドエンジン開発などのプロジェクトマネジメントに従事しています」
菊地さんは昨年10月にLINEに入社した。前職は通信キャリアの研究所であり、機械学習に触れたのは「ここ数年」。それまではUIやUX、セキュリティなどに携わっていたという。現在はMachine Learningチームでプロジェクトマネジメントに従事している。
「データの規模が大きいレコメンドの例だと、LINEスタンプになります。販売されているスタンプ数は約300万セット、月間のアクティブユーザー数は主要4か国だけでも約1億6500万人います。つまりLINEスタンプのレコメンドエンジンであれば、数億人に対して数百万あるアイテムのレコメンドをするためのデータを扱うことになる。実行しているジョブの量でいうと、機械学習のモデル更新は毎日数百回、予測・推定処理は1000を超える回数を実行しています。データが大きくなると、当然ながら1台のサーバには載らないですし、分散して処理をするにしてもデータの同期を極力減らす、といった必要が出てくる場合もあります。機械学習でよく使われるscikit-learnなどのライブラリなどにはあまり頼らず、数学に強い機械学習エンジニアが数式から解いて、スクラッチに近いところからレコメンドエンジンを作ったりしています」(菊地さん)
機械学習のエンジニアのおよそ半数がアカデミア出身。博士号を取得している人もいるという。
レコメンドエンジンの中にはディープラーニングを使っているものもある。「ユーザー自体をレコメンドするエンジン『Look a like』はその一つ。例えば過去のキャンペーンや広告に反応したユーザー(シードユーザー)とよく似た、まだリーチできていないユーザーを抽出するなどに使われるエンジンです。シードユーザーごとに別々に学習を走らせ、予測モデルを作る必要があること、また元データの性質なども考慮し、比較的シンプルなStacked Auto-Encoderという技術を使っています」(菊地さん)
レコメンドエンジンの提供のパターンは2つある。「事業部側から依頼をもらうケースもあれば、すでにレコメンドエンジンを提供している場合は、新しいモノに変えさせてほしいと提案するケースもある」と菊地さん。後者のケースでは、次に紹介するData Analysisチームと連携して動くこともあるという。「その場合は新しいものを数パターン用意して既存のものと、ABテストで比較検証を行います」(菊地さん)
意思決定に役立つデータ分析を担当するData Analysisチーム
Data Analysisチームはデータサイエンティストとエンジニアで構成されており、データサイエンティストは事業部の意思決定を支援するためのデータ分析、エンジニアはRなどを使って、データ処理を効率化するツールやA/Bテストの検証を自動化する仕組みなど、データサイエンティストが分析する効率を上げるための環境の開発・整備を行っている。最近ではLINE全社でデータ活用を推進していこうという動きがあり、「そういった活動を盛り上げることも私たちのチームの役割」と、同チームのマネジャーを務める牟田さんは説明する。
牟田さんは半導体エンジニアとして勤務したあと、データを活用した経営コンサルティングの経験を経て、2015年11月にLINEに転職。現在は、複数のデータサイエンス関連のプロジェクトマネジメントに従事している。
「私たちのチームでは、広告やLINEスタンプなどのサービスまたはプロジェクトに専任という形で関わっているメンバーが多く、それぞれの状況に応じてさまざまな支援をしています。例えば私が関わっているLINEマンガでは、継続に強く影響するユーザーの行動を分析によって明らかにしたり、それを活かしたUIの仕様検討のための分析をしたり、その効果検証のためにA/Bテストを実施したり、また大型キャンペーンの効果検証をしたりしています」(牟田さん)
BI・レポーティングツール「OASIS」などの社内向けツールを開発するData Applicationチーム
Data Applicationチームではデータ基盤のデータを活用しやすくするための社内ユーザー向けアプリケーションの開発を行っている。今年4月にリリースされた内製BI・レポーティングツール「OASIS」はその代表例。同ツールの開発、運用を担当しているのが吉田さんだ。吉田さんは新卒でSIerに入り、金融系システムに従事。その後Web系ベンチャーなどを経て2017年2月にLINEに入社。「前職でデータ基盤の構築に携わったことで、データと深く関わるようになり、興味を抱いた」と吉田さんはデータと付き合うようになったきっかけを語る。
OASISは「Data Lake」と社内で呼ばれるHadoopクラスタのデータを、各社員がSparkアプリケーションを実行することで自由に抽出したり、分析したりできるツールだ。なぜこのようなツールを開発することになったのか。実はこれまで、各サービスから収集したデータを集計して、レポートを作成する業務をData Labsが全て担当していた。
「このような体制だと、サービス担当者が自由にデータを分析したり、レポートを作成したりできません。しかもレポートが提供されるまで時間がかかるので、スピード感もありませんでした。このようなレポーティング業務の課題を解決するために作ったのがOASISです」(吉田さん)
Apache Zeppelinを参考にスピーディーにOASISを開発
このようなレポーティング業務の課題解決に取りかかったのは昨年10月。当初はOSSのApache Zeppelinを使うことを考えていたという。しかし実際に運用してみたところ、「私たちが掲げていた安定稼働と厳密なデータアクセス制御という要件には合わないと判断した」という。そこで2018年1月より、Apache Zeppelinを参考に独自開発し、同年4月にリリースした。
「Apache Zeppelinに修正パッチを送ることを何度か行っていたので、ソースコードも読み込んでいました。そういう実績があったので、特に開発で苦労したことはありません」と吉田さん。例えばPythonとScalaとRが同じSparkアプリケーションを共有するという特殊な仕組みやクエリの結果をグラフ化する仕組みなどはApache Zeppelinを参考にしたという。
「レポートの作成をサービス側で完結できるようになったことが最大の効果です。例えばキャンペーンなどの効果測定のレポーティングも、サービス側でスピーディーに行えるようになっています」(吉田さん)
本格稼働して1年経っていないのにもかかわらず、OASISはすでに多くの人に使われているという。全社でデータリテラシーを上げていこうという取り組みは行われてはいるとはいえ、これだけ早く普及したのには理由があるという。
「使い勝手の良さもありますが、何より吉田さんのサポートの手厚さですね。SlackにOASISのサポートチャンネルがあるのですが、『こういう機能が欲しい』と問い合わせると、5分後には実装されていたという話も聞こえてくるくらい。質問を投げるとすぐ返ってくるんです。サービス側だけで試行錯誤ができるOASISのような環境は、会社のデータ活用レベルを上げるためにとても重要だと思います」(牟田さん)
菊地さんは、「OASISは社内のデータリテラシーを上げたり、分析担当者間で情報を共有したりする上でとても有効だと思います。サービスの企画運営に関わる人が日々目にするためのダッシュボードなど、グラフを綺麗に並べて見せることもできるし、実際どういう集計処理を行っているかについても、すぐに抽出ロジックが確認できます。必要なデータが何で、どう加工するとどんなデータが得られるか、表形式でもグラフ形式でも表示できるようになっているし、ちょっと見たいものが違っても、直接コードを修正すれば良いので、とても使い勝手が良いです」と絶賛する。
これだけの規模のデータを扱えるところはそうそうない、エキサイティングな環境
LINE Data Labsで働く魅力について尋ねてみた。
「働いているエンジニアがみんな、すごく優秀なんです。そんなエンジニアとプロダクトやサービスが作れ、それをユーザーまで届けられるのはすごくエキサイティングです」(菊地さん)
「データの種類、量がとにかく豊富なのはデータに携わる人にとっては魅力的。これだけの規模のデータを扱えるところは他にはありません。LINEなら、魅力的な技術を実現できるデータと環境があります。もう一つは、裁量がすごく大きいこと。裁量を持って仕事を任せてもらえるのはやりがいになります」(牟田さん)
「社内向けツールの開発・運用に携わっているので、フィードバックがすぐ返ってくるのが面白いですね。自分がアプリケーションを開発・運用することで、社内ユーザーへダイレクトに価値を提供できている、という実感が得られます。また、社内ユーザーとのやりとりを通じて、アプリケーションをさらに磨き上げられることが非常に楽しいです。楽しいから、自然とサポートが手厚くなる。データ分析の効率化という目標に向かって、全力で携われるのが今の業務の魅力です」(吉田さん)
LINE Data Labsは新設されてまだ3年弱。今後もメンバーを拡充し、LINEサービスのデータドリブンな成長を支えていくことになる。最後にこれからの意気込みについて語ってもらった。
「大きいサービスのレコメンドエンジンはビジネス側のニーズが強いのが現状です。ですが、もう少し一歩踏み込んでユーザーの使いやすさの提案を含めて、機械学習で解くことにチャレンジしていきたい。そしてもう一つ、LINEアプリ内で動くモバイルの機械学習のエンジンの強化にもチャレンジしたいですね」(菊地さん)
「個人としては、優秀なチームメンバーにきちんと気持ちよく成果を出してもらうような環境を整えていくことにチャレンジしたい。チームとしてはデータサイエンスの文化を全社に浸透させたい。経理や人事などバックオフィスまで含めてデータドリブンにして、良い仕事ができる環境を作りたいですね」(牟田さん)
「例えばFacebookのPresto、LinkedInのKafkaのように、プロダクトを公開し、発信したいと思っています」(吉田さん)
菊池さん、吉田さんが登壇したLINE DEVELOPER DAYの動画と資料を公開中!
今回インタビューで伺ったMachine Learningチームの取り組み、およびOASISの開発の裏側については、LINE DEVELOPER DAY 2018においてその詳細が語られました。もっと詳しく知りたい方は、以下のリンク先に動画と資料が公開されていますので、ぜひご覧ください!
- Machine Learning at LINE(菊池さんによるセッション)
- OASIS - Data Analysis Platform for Multi-tenant Hadoop Cluster(吉田さんによるセッション)