Slide 1

Slide 1 text

〜⼩さく始めて⼤きく育てる〜 データ分析基盤の開発から活⽤まで クラスメソッド株式会社 データアナリティクス事業本部

Slide 2

Slide 2 text

⾃⼰紹介 niino • データアナリティクス事業本部 インテグレーション部 機械学習チーム • 2023 Japan AWS Top Engineer(Analytics) • データ分析基盤に関するコンサルティング • 最近の⾼い買い物︓ベース • 奈良県出⾝ ⼤阪オフィス所属 この辺の出身

Slide 3

Slide 3 text

もくじ ● はじめに ● データ分析をもっと簡単にするために ○ データ品質(Glue Data Quality) ○ データの保存(Apache Iceberg) ○ オーケストレーション(dbt) ○ データ共有(Redshift Data Sharing) ● マネージドサービスを使って⼿軽にデータ活⽤を 始める ● 機械学習の例(レコメンド)

Slide 4

Slide 4 text

機械学習チームのミッション 事業会社のあらゆる機械学習課題を解決する

Slide 5

Slide 5 text

データアナリティクス事業本部が⽀援するもの 強⼒に⽀援︕

Slide 6

Slide 6 text

機械学習案件の対応実績 (概要) • 機械学習のコア部分 • 機械学習モデル開発、評価 • AI・機械学習関連のクラウドサービス(SaaS)の適⽤ • MLOpsを考慮した機械学習基盤の構築⽀援 • クラウドサービスを活⽤した機械学習基盤の構築 • データ前処理、後処理 • 機械学習パイプライン • CI/CD • AI・機械学習関連のクラウドサービスのレクチャー • Amazon SageMaker(AI・機械学習の開発環境)と周辺サービスの活⽤ • そのほか対応可能なAI・機械学習関連のクラウドサービス 本⽇はレコメンドの機械 学習課題の例と、機械学 習に⼗分な品質のデータ を⽤意するための観点・ ツールをご紹介します。

Slide 7

Slide 7 text

データ分析に求められる要素 インフラ、ワークロードの 変更に迅速に対応 データの収集、蓄積 データ利活⽤を促進 より多くの⼈がデータ分析 を触れられるようにする より多くの⼈が正しい データに触れられるように する <課題>

Slide 8

Slide 8 text

データ分析に求められる要素 クラウドサービス上でのデ ータ分析基盤構築・ コード管理 データレイクの活⽤ データカタログやデータ リネージで可視化・検索 SQLによるデータモデルの 実装 <解決策> インフラ、ワークロードの 変更に迅速に対応 データの収集、蓄積 データ利活⽤を促進 より多くの⼈がデータ分析 を触れられるようにする より多くの⼈が正しい データに触れられるように する <課題>

Slide 9

Slide 9 text

データ分析に求められる要素 クラウドサービス上でのデ ータ分析基盤構築・ コード管理 データレイクの活⽤ データカタログやデータ リネージで可視化・検索 SQLによるデータモデルの 実装 <解決策> インフラ、ワークロードの 変更に迅速に対応 データの収集、蓄積 データ利活⽤を促進 より多くの⼈がデータ分析 を触れられるようにする より多くの⼈が正しい データに触れられるように する <課題> 結構⼤変

Slide 10

Slide 10 text

データ分析をもっと簡単にするために ● データ品質(Glue Data Quality) ● データの保存(Apache Iceberg) ● オーケストレーション(dbt) ● データ共有(Redshift Data Sharing)

Slide 11

Slide 11 text

データ品質

Slide 12

Slide 12 text

データ分析においてデータの品質は重要︕ データパイプラインがエ ラーになった… 分析結果が 間違ってる…

Slide 13

Slide 13 text

AWS Glue Data Qualityとは • ユーザーが定義したルール に従って、 データの品質検査を実施で きる機能 • AWSが開発したOSSであ るDeequを利⽤ • ルールの定義にはDQDL (Data Quality Definition Language)を利⽤ 品質検査ルール92%合格 検査ルールを定義

Slide 14

Slide 14 text

Data Qualityの便利なところ • DQDLを使って簡単にデータ品質検査のルールを定義可能 • CloudWatchやSNSを組み合わせることで通知可能 • 既存データを⾃動で分析して最適なルールを レコメンド • Glue Job同様、ワーカーを増やしてスケールアップが 可能 • 静的なルールに合致しないデータを検出するだけでなく、 意図しない変化や異常を⾃動的に検出可能(プレビュー 機能)

Slide 15

Slide 15 text

ユースケースその1 テーブルへ投⼊する前のデータ ファイルの品質をチェック ● Glue ETL Jobの中でData Qualityを利⽤ ● データ異常を検知→通知 ● ルールに沿っていればデータ レイクへ投⼊ ポイント ● 実装が複雑になりがちな データ品質検査をマネージド サービスにお任せ ● 投⼊前にデータ内容をチェッ クできる

Slide 16

Slide 16 text

ユースケースその2 データの変化を把握する(2023年11⽉に発表のプレビュー機能) ● 過去のデータと⽐較して変化を検知 ● 異常を検知するだけでなく、データの傾向の変化を把握できる ポイント ● 時間と共に変化するデータ品質の要件に柔軟に対応でき、潜在的なデータの問題にもいち早く 気づける どんな変化を検知 したいか定義 グラフでデータの変化を 確認

Slide 17

Slide 17 text

データの保存

Slide 18

Slide 18 text

Icebergとは データウェアハウスのように使える データレイクのテーブルフォーマット 従来のテーブルフォーマット Iceberg データファイルを編集できない UPDATE/DELETE/MERGEによる データの編集・削除が可能 トランザクションがサポート されておらずデータの⼀貫性を保てない ACIDトランザクションによる 同時アクセス時の整合性を担保 過去のデータの状態を復元できない テーブルのタイムトラベル機能 ファイルの物理的な構造を元にパーティ ション構造を参照 メタデータを元にパーティション構造 を把握する、より精度の⾼い パーティショニング

Slide 19

Slide 19 text

IcebergにおけるHidden Partition カラムの値を関数で変換し、パーティション値を⽣成可能 CREATE TABLE iceberg_table (id bigint, data string, category string) PARTITIONED BY (day(date_stamp), bucket(5, id)) LOCATION 's3://DOC-EXAMPLE-BUCKET/your- folder/' TBLPROPERTIES ( 'table_type' = 'ICEBERG' ) date_stamp=2024-04-10 10:00:00 date_stamp=2024-04-10 11:00:00 date_stamp=2024-04-12 10:00:00 date_stamp_day=2024-04-10 date_stamp_day=2024-04-12 データ パーティション 004d7e64/ id=0001 id=0002 パーティション 1c795a1a/ 224702fd/ 24052aa/ 37893aw/ id=0003 id=0004 … day(date_stamp) bucket(5,id) データ

Slide 20

Slide 20 text

ユースケースその1 Athena + Iceberg + Step Functions ● データ変換をAthena上のSQLで実施 ● データの投⼊(UPDATE・MERGE)実⾏ ● SQL実⾏や通知などをすべてStep Functions でワークフロー化 ● CDKを利⽤したコード管理 ポイント ● 可読性の⾼いSQLを使った変換処理で 属⼈化を防ぐ ● GUIベースでワークフローを簡単に 作れてコード管理もできる ● Athenaを利⽤することで⽐較的コストを抑え られる

Slide 21

Slide 21 text

オーケストレーション

Slide 22

Slide 22 text

dbt(data build tool)とは ELT(データ抽出→ロード→変換)のT(変換)を担う SQLを使えればデータマート開発ができるサービス ● データモデルをSQLで作成 ● モデルのテストを⾃動化 ● モデルの依存関係やDAGに基づいてテーブル情報や データリネージのドキュメントを⽣成 ● バージョン管理、CI/CD、テスト⾃動化など、アプリ開発の ⼿法でデータマートの開発が可能 ● 様々なデータソースに対応

Slide 23

Slide 23 text

ドキュメント(テーブル情報) 引用:https://dev.classmethod.jp/articles/dbt-athena-document-data-linage

Slide 24

Slide 24 text

ドキュメント(データリネージ) 引用:https://dev.classmethod.jp/articles/dbt-athena-document-data-linage

Slide 25

Slide 25 text

ユースケース︓dbt-Athena dbtをAthenaで利⽤するための アダプタを利⽤ ● テーブルフォーマットはIcebergを 使⽤し、データの編集・削除を実施 ● Step Functionsによる ワークフロー化 (図はステートマシンの⼀部) ポイント ● Athenaを使ったデータレイクを データウェアハウスのように使い、 コストを抑える ● ワークフローで実⾏・テスト・ ドキュメント⽣成・通知を⾃動化

Slide 26

Slide 26 text

データ共有

Slide 27

Slide 27 text

データ共有(Amazon Redshift Data Sharing) データのコピー・移動をせず、他のクラスタに ライブデータを共有する CREATE DATASHARE salesshare; ALTER DATASHARE salesshare ADD SCHEMA public; ALTER DATASHARE salesshare ADD TABLE public.tickit_sales_redshift; GRANT USAGE ON DATASHARE salesshare TO NAMESPACE '13b8833d-17c6-4f16-8fe4- 1a018f5ed00d'; 引用:https://dev.classmethod.jp/articles/amazon-redshift-serverless-data-sharing-sample/ https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/share_datashare.html

Slide 28

Slide 28 text

ユースケース BIアクセス⽤クラスタを分ける ● データハブ⽤アカウントのRedshiftで データ変換し、データシェアリングで BIツールから参照するクラスタへ ライブデータ共有 ポイント ● BIからのワークロードを負荷分散可能 ● データのコピーなどを待たず ライブデータに即座にアクセス可能

Slide 29

Slide 29 text

再掲︓データ分析をもっと簡単にするために ● データ品質(Glue Data Quality) ● データの保存(Apache Iceberg) ● オーケストレーション(dbt) ● データ共有(Redshift Data Sharing)

Slide 30

Slide 30 text

⾃⼰紹介 ⽒名 鈴⽊ 那由太(スズキ ナユタ) 所属 データアナリティクス事業本部 インテグレーション部 機械学習チーム システムエンジニア 受賞 Japan AWS Top Engineers (Analytics) (2022-2023) Japan AWS All Certifications Engineers (2022-2023)

Slide 31

Slide 31 text

機械学習案件の対応実績 (概要) • 機械学習のコア部分 • 機械学習モデル開発、評価 • AI・機械学習関連のクラウドサービス(SaaS)の適⽤ • MLOpsを考慮した機械学習基盤の構築⽀援 • クラウドサービスを活⽤した機械学習基盤の構築 • データ前処理、後処理 • 機械学習パイプライン • CI/CD • AI・機械学習関連のクラウドサービスのレクチャー • Amazon SageMaker(AI・機械学習の開発環境)と周辺サービスの活⽤ • そのほか対応可能なAI・機械学習関連のクラウドサービス 本⽇はレコメンドの機械 学習課題の例と、機械学 習に⼗分な品質のデータ を⽤意するための観点・ ツールをご紹介します。

Slide 32

Slide 32 text

33 マネージドサービスを使って⼿軽にデータ活⽤を始める 機械学習 • データのパターンを⾒出し、対応の⾃動化を⾏う。 • 過去の実績から、未来の予測やデータの理解を⽀援する。 パブリッククラウドのマネージドサービスを利⽤することで低いコストで実現できる。 例︓Amazon Personalize

Slide 33

Slide 33 text

タスクごとのサービス例 タスクごとに必要なデータを⽤意し、対応するサービスを利⽤できる。 • テーブルデータ(トランザクションデータなど) • KPIのモニタリング、分類、予測、異常検知、レコメンデーション • テキスト(⾃然⾔語) • アンケート分析、ドキュメント分類、キーワード抽出、回答⽣成など • 画像・動画 • 画像分類、物体検出 など Amazon QuickSight Amazon Forecast Amazon Comprehend Amazon Personalize Amazon Rekognition Amazon Bedrock <マネージドサービスの例>

Slide 34

Slide 34 text

適⽤領域毎の課題への適⽤ 適⽤領域ごとの課題に合わせて機能を適⽤する。 • 流通・⼩売 • 需要・売上・在庫の予測・分析、⾃動発注、レコメンデーション など • 製造 • 異常検知、故障予測、予知保全 など • ⾦融 • 契約数の推移の分析、不正検出、与信判定 など • エンターテイメント・ゲーム • 実施施策の決定、⾒込み顧客判定、離反予測、不正検出、レコメンデーション など Amazon Rekognitionでは画像に写っている現場の状態が 安全か危険かを判別する機能もある。 • https://aws.amazon.com/jp/rekognition/workplace- safety/

Slide 35

Slide 35 text

機械学習の例(レコメンド)

Slide 36

Slide 36 text

レコメンデーション • ECサイトでおすすめ商品を表⽰する • レコメンド⽅式として、以下を実現したい。 • アイテムベース︓この商品を買った⼈へのおすすめ商品 • ユーザーベース︓あなたへのおすすめ商品 • 機械学習ベースのレコメンドシステム導⼊メリット • そもそもレコメンドの仕組みがない環境 • 商品やコンテンツの訴求施策として打ち⼿が増える • ルールベースのレコメンドを実施している環境 • 全ユーザー、全アイテムに対して個別のレコメンドが可能になる • 顧客の購買⾏動に基づくレコメンデーションにより、効果を最⼤化する • Amazon Personalizeを活⽤したレコメンデーション導⼊ • レコメンドアイテムのクリック率が倍増した例も

Slide 37

Slide 37 text

レコメンデーション Amazon Personalizeで具体的に出来ること •ユーザーのパーソナライズ •ユーザーの⾏動に基づき、ユーザーに合わせた製品やコンテンツをレコメンドする (ユーザーベース) •類似アイテムのレコメンデーション •ユーザーの⾏動に基づいて、あるアイテムに対する類似のアイテムをレコメンドする (アイテムベース) •パーソナライズされたランキング •ユーザー毎にアイテムのランキングを⽣成する Amazon Personalizeを活⽤ • Amazonがレコメンデーションを20年以上 提供してきた経験と機械学習を活⽤して⾏った 調査をベースにしたレコメンデーションサービス

Slide 38

Slide 38 text

レコメンデーション • 必須のデータ • USER_ID︓会員ID など • ITEM_ID︓⼀意な商品コード(JANやSKUなど) • TIMESTAMP︓購買処理⽇時 など • 任意で追加可能なデータ • ユーザーの属性データ︓年齢、性別 など • 商品の属性データ︓商品カテゴリ、⾊、サイズ など ⼊⼒データ 出⼒データ 各ユーザーに対するレコメンドアイテムの リストが出⼒される(ユーザーベースの例) 加⼯や対向システム(アプリ)との データのやり取りが必要 最終的には このような表⽰に反映

Slide 39

Slide 39 text

レコメンデーション ETL処理 レコメンド⽣成処理 データソース アーキテクチャ例 AWS Cloud ECサイト等 リアルタイムレコメンド (APIリクエスト) バッチレコメンド (S3に結果をまとめて格納) Amazon API Gateway バッチレコメンド結果の⼀括取得 (APIリクエスト) • S3バケットをインターフェースに、Personalize向けの⼊⼒データを受け渡しする。 • レコメンド⽣成はバッチ推論およびAPIリクエストによるリアルタイムレコメンドができる。

Slide 40

Slide 40 text

41 まとめ データ分析に求められる要素と、より簡単に実現するための技術をご紹介した。 • データ品質 • データ共有 • dbt • Icebergフォーマット データの活⽤に便利なマネージドサービスをご紹介した。 • 機械学習︓Amazon Personalize 発表の内容や対応実績についてご興味があれば、 相談ブースにてお待ちしております︕

Slide 41

Slide 41 text

42