Slide 1

Slide 1 text

株式会社アイスタイル @cosmeにおけるビッグデータの これまでとこれから テクノロジー本部 R&D部 芝 星帆

Slide 2

Slide 2 text

自己紹介 芝 星帆(SHIBA SEIHO) 株式会社アイスタイル テクノロジー本部 R&D部 技術開発グループ所属 @cosmeアプリのバックエンドAPIの開発 スマホ版@cosmeの速度改善プロジェクト 今後のビッグデータ統括に向け収集基盤の開発 言語 Go/PHP/Scala

Slide 3

Slide 3 text

アジェンダ ● istyleとは ● istyleにおけるビッグデータ基盤 ● istyleにおけるビッグデータ活用例 ● これからのビッグデータ活用

Slide 4

Slide 4 text

● istyleとは ● istyleにおけるビッグデータ基盤 ● istyleにおけるビッグデータ活用例 ● これからのビッグデータ活用

Slide 5

Slide 5 text

istyleとは ● @cosme(コスメ・美容総合サイト)や 関連する他サービスの運営

Slide 6

Slide 6 text

istyleとは ● @cosme以外にもこんなことをやっています ○ ECサイト(@cosme shopping)運営 ○ 全国の小売店(@cosme store)や プライベートブランドの展開 ○ 海外の化粧品サイトとの連携 ○ 海外への小売店の展開

Slide 7

Slide 7 text

istyleとは

Slide 8

Slide 8 text

istyleが持っているデータ

Slide 9

Slide 9 text

istyleの目指すもの 商品とヒトをつなぐ ブランドとヒトをつなぐ 店舗とヒトをつなぐ 美容関係者と ヒトをつなぐ 美容に関わるあらゆる モノ・コト・ヒト・場所をつなげること

Slide 10

Slide 10 text

istyleだから出来ること 20年蓄積した情報 20年培ったつながり ビッグデータを活用したビジネスへの進化

Slide 11

Slide 11 text

これまでのistyleにおけるビッグデータ活用① ● レコメンデーションシステム ○ ユーザー閲覧情報から推測したお すすめコンテンツの表示

Slide 12

Slide 12 text

これまでのistyleにおけるビッグデータ活用① ● 抱える課題 ○ 精度の低さ ■ レコメンドエンジンは外注 ■ そのため更新頻度、データの粒 度、学習アルゴリズムを容易に 変更できない

Slide 13

Slide 13 text

これまでのistyleにおけるビッグデータ活用② ● ブランド向けユーザーデータ解析ツールの展開 ○ ALCOS ■ Analyzer for Cosmetics の略。@cosmeのデータ とソーシャルメディア情報を連携した、美容特化のASP 型の⾏活者⾏動分析ツール

Slide 14

Slide 14 text

これまでのistyleにおけるビッグデータ活用② ● 抱える課題 ○ データの取得範囲 ■ 今まではSNSへの連携・投稿と、アクセス行動から割り 出せる範囲でのユーザーデータ分析 ■ 期間・コンテンツも限定的 ユーザーとブランドやメーカーとのつながりを強めるには より多くのデータと、より多彩な分析が必要!

Slide 15

Slide 15 text

課題を解決するために ● 社内でもビッグデータ収集が開始 ○ サービスを超えたログデータ収集基盤の構築 ○ ユーザー行動トラッキングデータの収集 ■ アクセス数から算出されるフィードの表示数が理論値で は100億を超える。そのためGoogleAnalyticsは使用でき ず、独自イベントでの計測を行う

Slide 16

Slide 16 text

● istyleとは ● istyleにおけるビッグデータ基盤 ● istyleにおけるビッグデータ活用例 ● これからのビッグデータ活用

Slide 17

Slide 17 text

社内ビッグデータ環境の変遷 2017年1月:データ基盤構想が開始(Hadoop環境の構築) 2017年同月:自社トラッキングシステムから、インプレッションの収集を開始 2018年6月:アクセスログ収集開始 2019年3月:機械学習プロジェクト開始 新しく一部のログ基盤とアクション基盤を作り変える 集積データの活用を開始 2019年4月:トラッキングデータの一部を解析に利用開始

Slide 18

Slide 18 text

データを扱うためには収集から この商品好き! この商品持ってる! アクセスログ クチコミ投稿 ブログ投稿 この商品を紹介したい! トラッキング イベント

Slide 19

Slide 19 text

使った技術 ● Spark ○ 巨大なデータに対して高速に分散処理を行う ためのフレームワーク ○ Resilient Distributed Datasetsによって分 散共有メモリを実現し、インメモリでデータ にアクセスする ○ Hadoop上のYARNによってSparkのリソースを 管理している

Slide 20

Slide 20 text

使った技術 ● Apache Kafka ○ 分散メッセージキューを行うミドル ウェア ○ リアルタイムアプリケーションとマ イクロサービスを実現する ○ スケーラブルでユースケース規模に よらず高い耐障害性で利用可能 ○ 個別の処理用クラスタが不要 ○ Java、Scalaアプリケーションの作成 ができれば誰でも使える

Slide 21

Slide 21 text

データ集約からデータ活用のフェーズへ ● Hadoop上にログ基盤、ユーザーアクション データ基盤を構築 ● 4ヶ月で集約したデータサイズ:11TB程度 ● データ活用のフェーズへと移行

Slide 22

Slide 22 text

● istyleとは ● istyleにおけるビッグデータ基盤 ● istyleにおけるビッグデータ活用例 ● これからのビッグデータ活用

Slide 23

Slide 23 text

データ活用例 ● 機械学習によるレコメン デーションシステムの構築 ○ 今まで外注していたものの内製 化によって、ユーザーの体験を 向上させる

Slide 24

Slide 24 text

レコメンデーションの改善 ● 内製化することで得られるメリット ○ 学習に扱えるデータの多様性が増す ○ パラメータ調整やアルゴリズム検証が容易となる ○ データ更新頻度を上げることができる

Slide 25

Slide 25 text

概要図 ユーザーの行動データを集約 ユーザー行動データから ALSによって クラスタリング化を行う レコメンデーション データを提供 ユーザーの求める コンテンツを表示

Slide 26

Slide 26 text

使った技術 ● PySpark ○ Sparkを実行するためのPythonAPI ○ ワーカーノードでの処理をPythonプロセス で実行する ○ PyDataのライブラリと組み合わせて実行で きる ○ MLのライブラリもほぼ使用できる

Slide 27

Slide 27 text

得られた効果 ● 飛躍的な効果はまだ見られない ○ クリック率向上 → × ○ 回遊率の向上 → × ● 原因として考えられる内容 ○ コンテンツの表示方法? ○ 表示件数? ○ レコメンデーションとしての精度の低さ 今後の課題となる POINT

Slide 28

Slide 28 text

レコメンデーション精度の向上にむけて ● 学習データの拡充 ○ 内製化によって扱うデータの多様化 ○ データの変更や調整が容易 ○ これまで週次だった学習モデル化を日次で行えるよう になりユーザーへの反映頻度が向上 ● 学習データの調整 ○ 都度数字の動向をみてパラメータ調整を行える ○ 各種アルゴリズムの適応や検証が可能に

Slide 29

Slide 29 text

運用を開始して… ● ファイルフォーマットの変更 ○ 開発初期はログフォーマットとしてAvroを採用 ■ 理由 ● スキーマ定義が必要だったためJSONは除外 ● ORCも使えるソフトウェアが限られるため除外 ● kafka streamsとの高い互換性によってAvroを採用 ○ 中盤で標準をParquetに変更 ■ 理由 ● Spark2.2ではAvroの読み込みにパッケージインポートが必要で あり保守が困難であった ● 今後追加されていく予定の大量なデータを見据えてカラムナ フォーマットに変更したかった

Slide 30

Slide 30 text

運用を開始して… ● ログ収集が一時停止した ○ 原因 ■ 設定変更の反映のためHDFS再起動が必要となった ■ Kafka connectorを停止せずに再起動したため、 connectorのログファイルが破損 ■ Kafka側エラーが発生しログの取得が停止 ○ 解決方法 ■ HDFS再起動時は接続するKafka connectorの停止をして から実施

Slide 31

Slide 31 text

実現までに苦労したこと ● 学習コスト ○ 開発開始時、ほぼ全員ビッグデータ運用未経験 ● 初期基盤構築 ○ 構築時の情報が社内ナレッジに残されていない ○ 物はあるのに使えない状態からのスタート それぞれが学んだ内容をレビューや ディスカッションで共有していく 知識の定着もかねてナレッジへの文書化

Slide 32

Slide 32 text

実現までに苦労したこと ● 適切な設定値が分からない ○ リソースの割当 ○ 実行メモリ ○ パーティション設定 ● ファイルブロック数の肥大化 調査しながらトライ・アンド・エラーで 設定していく ファイル作成頻度の見直し・ 定期的なコンパクションの実行

Slide 33

Slide 33 text

● istyleとは ● istyleにおけるビッグデータ基盤 ● istyleにおけるビッグデータ活用例 ● これからのビッグデータ活用

Slide 34

Slide 34 text

これからのデータ活用方法 ● ユーザーに対しておすすめできるのはコンテ ンツだけではない ○ 肌質や髪質、年代といったユーザー固有の情報から より高精度な商品とのマッチング ○ ユーザーの行動からリアルタイムなデータの活用に よってサロンや美容スペシャリストとのデータ連携 ○ つながりを活かしてその瞬間ユーザーが求めている情 報を提供する

Slide 35

Slide 35 text

これからのデータ活用方法 ● ビジネスパートナーへの展開 ○ @cosmeに集まるデータをビジネスパートナーの ニーズに合わせて集約 ○ これまでのデータ解析ツールでは実現しなかった情報 を分析できるようにする ○ そのためにはより多くの情報を集積や、分析方法の確 立をおこなう

Slide 36

Slide 36 text

目指すところ ● 社内でバラバラに存在しているデータを集約 して一元化されたデータレイクを構築 ● サービス内でどんな変化があったかをリアル タイムに蓄積し続ける ● より多彩な分析・解析や機械学習を行うため の基盤となる

Slide 37

Slide 37 text

理想のアーキテクチャ図

Slide 38

Slide 38 text

理想の実現に向けての課題 ● 取得データの多様化 ○ 既存サービスとの連携 ○ これまでの過去のデータの発掘 ○ 今後必要となるデータの選別 ● リソース ○ 人・時間・サーバーの十分な確保 ● ナレッジの充足 ○ 技術知識の吸収と社内エンジニアへの展開

Slide 39

Slide 39 text

今日お話したこと ● istyleとは ○ 事業紹介、これまでのistyleについて ● istyleにおけるビッグデータ基盤 ○ データ集約基盤と使った技術について ● istyleにおけるビッグデータ活用例 ○ レコメンデーションシステムのための機械学習による データ活用について ● これからのビッグデータ活用 ○ 今後のVisionについて

Slide 40

Slide 40 text

istyleでは下記のような方を募集しています! これからのビッグデータ基盤を支えたい! ビッグデータ基盤を一緒に作り上げたい! ビッグデータについて新しく学びたい!