Upgrade to Pro — share decks privately, control downloads, hide ads and more …

『一休.com』が実践するユーザーデータ活用の事例

Avatar for Yu Suzuki Yu Suzuki
October 09, 2019

 『一休.com』が実践するユーザーデータ活用の事例

高級宿泊施設やレストランの予約サイトを運営する一休は、900万人以上のユーザーによる予約・閲覧履歴、クチコミデータを保有。「検索の向上、リコメンデーション、クーポン配布や営業の最適化」等の施策に活用し、一休の成長要因となっている。本講演では具体的な活用事例や、その中でのPythonの役割を紹介する。

Avatar for Yu Suzuki

Yu Suzuki

October 09, 2019
Tweet

Other Decks in Programming

Transcript

  1. 2 一休におけるPythonの活用 一休は以下の領域でPythonが使用されている VB.NET / C# 宿泊 旧: VBScript 新:

    Python レストラン VBScript ギフト (旧: PHP) 新: Python スパ データサイエンス Python
  2. 6 新しい言語に求められる条件 1. 学習コストが低いこと • 一休では、デザイナーとエンジニアが一緒に開発を行っている • 既存のシステム(Classic ASP +

    VBScript)と大きなギャップがないこと 2. 大人数での開発に適していること • 他人の書いたコードが分かりやすいこと 3. 既存システムと併用できること • Windowsプラットフォームと接続できること (SQL Serverとの接続性) • フルスタックではないフレームワークやライブラリがあること
  3. 8 理由① ― 言語自体の優位性 Pythonは以下の点で、一休でのニーズを満たしている 1. 学習コストが低い • 言語仕様がシンプル 2.

    大人数での開発に適している • 自由度が低く、誰が書いても同じようなコードになる • 型ヒントによって、他人の書いたコードが理解しやすくなる
  4. 11 言語の優位性 どの言語が優れているかは、言語だけでは決まらない プログラミング言語 プログラミング言語 ツール ツール コミュニティ コミュニティ どんなプログラマーがいるか?

    どんなプログラマーがいるか? どんなライブラリや フレームワークがあるか? どんなライブラリや フレームワークがあるか? プログラミング言語 ツール コミュニティ どんなプログラマーがいるか? どんなライブラリや フレームワークがあるか? Pythonは言語として優れているだけでなく、ツールが豊富で、プログラマーの質も高い
  5. 13 一休が保有するデータ 一休は、主力事業である宿泊・レストラン予約に関する膨大なデータを保有する 約1000万人 登録会員数 約800万件 / 年 宿泊予約 約500万件

    / 年 レストラン予約 ユーザー情報 施設・店舗情報 予約履歴 閲覧履歴 クチコミ 画像 一休が保有するデータ
  6. 15 自社データの活用 営業支援ツール マーケティングツール 本番システム レコメンデーション Airflow 本番DB 分析用DB (DWH)

    営業 / マーケティング 店舗の実績の可視化 データの 加工・集計 営業 メール配信 クーポン表示 機械学習 マーケティング施策の管理 マーケティング 一休は自社データをさまざまな形で活用している
  7. 16 データサイエンス部でのPythonの役割 Pythonはデータサイエンス部の共通言語 多数のPython ライブラリを使用 バックエンドに Flaskを使用 営業支援ツール マーケティングツール 本番システム

    レコメンデーション Airflow 本番DB 分析用DB (DWH) 営業 / マーケティング 店舗の実績の可視化 データの 加工・集計 営業 メール配信 クーポン表示 機械学習 マーケティング施策の管理 マーケティング Pythonで タスクを記述 バックエンドに Flaskを使用 自社開発 自社開発 オープンソース
  8. 17 営業支援ツール マーケティングツール 本番システム レコメンデーション 本番DB 分析用DB (DWH) 営業 /

    マーケティング 店舗の実績の可視化 営業 メール配信 クーポン表示 機械学習 マーケティング施策の管理 マーケティング Airflow データの 加工・集計
  9. 19 営業支援ツール 本番システム レコメンデーション 本番DB 分析用DB (DWH) 営業 / マーケティング

    店舗の実績の可視化 営業 メール配信 クーポン表示 機械学習 マーケティング Airflow データの 加工・集計 マーケティングツール マーケティング施策の管理
  10. 21 マーケティングツールの機能 • ユーザーごとにパーソナライズされたメールを配信できる • 対象ユーザー • メールの文面、デザイン • 配信スケジュール

    • 1人のユーザーに過剰にメールを送信しないようにしている • 各ユーザーに1日に送信できるメールの数には上限がある • 制限範囲の中で、優先度が高いものから配信
  11. 22 本番システム レコメンデーション 本番DB 分析用DB (DWH) 営業 / マーケティング 営業

    メール配信 クーポン表示 機械学習 マーケティング Airflow データの 加工・集計 マーケティングツール マーケティング施策の管理 営業支援ツール 店舗の実績の可視化
  12. 23 営業支援ツール • 一休内でレストラン営業を行う社員のためのツール • 店舗の実績をさまざまな切り口で表示 【メリット】 • 資料の作成にかかる手間を削減 →

    より多くの店舗を回ることができる • 外出先からもアクセスできる → 店舗の人と話しながら、iPadでデータを見せることができる
  13. 26 営業支援ツール マーケティングツール 本番システム レコメンデーション 本番DB 分析用DB (DWH) 営業 /

    マーケティング 店舗の実績の可視化 営業 メール配信 クーポン表示 機械学習 マーケティング施策の管理 マーケティング Airflow データの 加工・集計
  14. 29 一休における機械学習の活用事例 営業支援ツール マーケティングツール 本番システム レコメンデーション 本番DB 分析用DB (DWH) 営業

    / マーケティング 店舗の実績の可視化 営業 メール配信 クーポン表示 機械学習 マーケティング施策の管理 マーケティング Airflow データの 加工・集計
  15. 30 一休における機械学習の活用事例 営業支援ツール マーケティングツール 本番システム レコメンデーション 本番DB 分析用DB (DWH) 営業

    / マーケティング 店舗の実績の可視化 営業 メール配信 クーポン表示 マーケティング施策の管理 マーケティング Airflow データの 加工・集計 機械学習 この部分について 1. クーポン施策 2. あいまい検索 の2つの事例を紹介する
  16. 32 機械学習の応用例① ― クーポン施策 • 一休では、より多くのユーザーに宿泊施設やレストランを体験していただくため、 積極的にクーポンを発行している • サイトを訪問中で迷っているユーザー •

    サイトを訪問したが、予約しなかったユーザー • 休眠ユーザー • クーポンの多くは一休原資 • むやみに発行すれば損失を被ってしまう • 機械学習を用いて効果的に発行したい
  17. 33 最適なクーポン配布の定式化 • クーポン配布を配布することで、取扱高は上昇する(=リフト) • 損益 = (クーポンによる手数料収入のリフト) - (クーポンにかけたコスト)

    • 損益 ≧ 0 の範囲で、リフトを最大化する → 赤字にならない範囲で、できるだけ多くのユーザーに使っていただく クーポンを配布しなかった ユーザー群 クーポンを配布した ユーザー群 取扱高 リフト
  18. 34 機械学習のアルゴリズム 機械学習の一般的なアルゴリズムは無償で公開されている 分類 回帰 タイタニック号乗客の生存/死亡 ボストン住宅価格 カテゴリーを予測 数値を予測 ロジスティック回帰

    SVM ニューラルネットワーク 決定木ベースの各手法 重回帰 ニューラルネットワーク 決定木ベースの各手法 目的 有名な例 アルゴリズム 0 or 1 モデル 特徴量1 特徴量2 特徴量3 特徴量4 特徴量5 152.78 モデル 特徴量1 特徴量2 特徴量3 特徴量4 特徴量5
  19. 36 与える特徴量の工夫 機械学習は、どのような特徴量を与えるかが鍵となる 予測値 モデル 特徴量1 特徴量2 特徴量3 特徴量4 特徴量5

    一般に広く使われているアル ゴリズムを使用 改善の余地はあまりない 何をインプットするかでモデル の性能は大きく変わる 分野ごとの知識が必要
  20. 39 機械学習の応用例② ― あいまい検索 抽象的な単語でレストランを検索できるようにしたい お洒落 優雅 家庭的 シックな モダンな

    広々とした ゴージャス 上品 落ち着いた 異国情緒 アットホーム 活気がある 和の雰囲気 スッキリ 都会的 ゆったり
  21. 44 ステップ1 ― 文章を単語に分解 • コンピューターに文章をそのまま理解させることは難しい • 文章を単語の集まりとして扱う(Bag of Words)

    • 日本語の場合、形態素解析という処理が必要になる 友人と話しながらスパゲッティーを食べていた 友人 と 話す ながら スパゲッティ を 食べる て いる た
  22. 45 ステップ2 ― 単語をベクトル化する • 単語はそのままでは扱いづらい • 単語を多次元ベクトルとして表現する(分散表現) • つまり、複数の値の羅列として表す

    • 意味の関係と、ベクトル空間内での距離が対応するようにする • 意味が近い単語はベクトル空間上でも近く、 意味が遠い単語はベクトル空間上でも離れているようにする 食べる = 0.176 0.335 0.752 0.447 0.817 0.462 0.520 0.636 0.212 0.153 話す = 0.174 0.204 0.175 0.330 0.992 0.751 0.082 0.541 0.743 0.552 N次元空間 食べる 話す
  23. 47 単語ベクトルを用いたあいまい検索の実現 1. 一休のクチコミを基に、単語をベクトル化する 2. クチコミに出現する単語のベクトルを集約し、レストランをベクトル化する 3. 検索語をベクトル化し、レストランのベクトルとの類似度を計算する 上品 華やか

    豪華 = (0.61, 0.55, 0.43, …… , 0.26) = (0.75, 0.63, 0.09, …… , 0.81) = (0.56, 0.21, 0.74, …… , 0.34) … クチコミの文章群 (コーパス) 単語ベクトル レストランベクトル ゴージャス = (0.75, 0.51, 0.36, …… , 0.32) 検索語ベクトル = (0.84, 0.36, 0.51, …… , 0.47)