Transcript

Copyright © 2017 Oracle and/or its affiliates. All rights reserved.

Oracle Advanced Analyticsデータベースを用いた高速な機械学習 2017 年 3 月 30 日 更新

日本オラクル株式会社クラウド・テクノロジー事業統括

Copyright © 2017 Oracle and/or its affiliates. All rights reserved. 2

以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。

Oracle と Java は、 Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。

Copyright © 2017 Oracle and/or its affiliates. All rights reserved. 3

機械学習と予測分析

Copyright © 2017 Oracle and/or its affiliates. All rights reserved.

従来型 BI から Business Analytics へのシフト

4

VALUE

D I F F I C U LT

INFORMATION

OPTIMIZATION

何が起きたのか?Descriptive Analytics

どうして起きたのか?Diagnostic Analytics

何が起きるのか?Predictive Analytics

どうやって起こせるのか?Prescriptive Analytics

従来型 BI Business Analytics

Copyright © 2017 Oracle and/or its affiliates. All rights reserved. 5

分析ツールの種類・技術の例

用途 構造化データ

非構造化データテキストなど

帳票 •帳簿や伝票などの定型的な書類の作成、印刷 ○ - - -

レポーティング •定型レポートの作成、公開 (Web 等 ) 、配信•ダッシュボード ○ - - -

分析

•定型分析、非定型分析、アドホック・クエリ•実績・推移に基づくシミュレーション( What-If 分析)•事前定義された分析切り口•人手による分析

○ - - -

探索•反復的なデータ検索・絞込みによる分析•新たな分析切り口の発見•人手による分析

○ ○

統計解析機械学習

•データから意味のあるパターンやルール、相関関係を抽出する•大容量のデータを自動的/半自動的に解析

○ ○

帳票ツール

Discoveryツール

BI ツール(OLAP 分析ツール )

マイニングツール

Oracle BIEnterprise Edition (BIEE)

Oracle Endeca

Oracle Advanced Analytics

Copyright © 2017 Oracle and/or its affiliates. All rights reserved. 6

人工知能における機械学習の役割

センサやデータベースなどから、ある程度の数のサンプルデータ集合を入力して解析を行い、そのデータから有用な規則、ルール、知識表現、判断基準などを抽出し、アルゴリズムを発展させる

特化型 AI 各々のデータ

最近暖かくなりましたね

今年は桜の開花が早いそうです。楽しみですね

(人間なのかな…)

会話 天気

運転 地図

クイズ 辞書

https://ja.wikipedia.org/wiki/ 機械学習

Copyright © 2017 Oracle and/or its affiliates. All rights reserved.

顧客情報から、新規顧客が優良顧客か予測したい!

問題「顧客情報(属性値や、過去の購買履歴など)から、   その新規顧客が今後ある商品Xを買う可能性を求めたい」

7

分類モデル顧客データ

このモデルをどのように作成するのか?

この顧客は商品Xを買う?(その確率は?)

性別、所在地、他サービス使用状況、継続期間、前月請求額、前々月支給額、・・・

Copyright © 2017 Oracle and/or its affiliates. All rights reserved.

機械学習によるモデル作成の自動化

8

分類モデル顧客データ = 学習データ

予測された優良顧客リスト

性別、所在地、他サービス使用状況、継続期間、前月請求額、前々月支給額、…、商品Xを買ったかどうか

アルゴリズムを選択

予測モデルを適用

顧客データとアルゴリズムによって自動生成

アルゴリズム• 重回帰• SVM• 決定木 など

Copyright © 2017 Oracle and/or its affiliates. All rights reserved.

自動生成されるモデルのイメージ

9

前月請求額

<5,000円 >=5,000円

女性男性

性別

商品 X=No

商品 X=No

IF ( 前月請求額 >= 5000     AND 性別 = “女性”  ) THEN  商品 X = YesProb = 0.77 (信頼度)Support = 0.250 (組み合わせの出現率)

ID 性別 年齢 職業 前月請求額 商品X101 男性 31 会社員 10,000円 No102 女性 42 主婦 5,000円 Yes103 女性 36 主婦 200円 No104 男性 43 会社員 3,000円 No105 女性 22 会社員 7,000円 Yes

過去顧客データ

ID 性別 年齢 職業 前月請求額 商品X314 男性 40 会社員 4,000円 No315 女性 26 会社員 5,500円 Yes

新規顧客データ

商品 X=Yes

Copyright © 2017 Oracle and/or its affiliates. All rights reserved. 10

予測による個別化とデータベース

個人

ターゲット

マス(全ての人口)

データの活用価値

• One-to-one マーケティング• 個々人やモノに対する適切な犯罪抑止施策• 過去の病歴や生活習慣に応じた予防医療

• ターゲット・マーケティング• 対象や地域を選定し、集中した犯罪抑止施策• 遺伝子情報に応じた薬剤の使い分け

• 電車広告などマス・マーケティング• 全市民を対象とした防犯への啓蒙活動• 画一的な医療

• 市場競争優位• 安全な社会• 医療費の削減

Copyright © 2017 Oracle and/or its affiliates. All rights reserved. 11

機械学習の有効性の評価

全体の何割にアプローチするか100%0%

ターゲ

ット

へヒ

ット

する

割合

20%

50%20%

70%

50%

有効性

顧客をランダムで選択した場合

機械学習を使用して選択した場合

ROI (投資対効果)が向上している

100%

Copyright © 2017 Oracle and/or its affiliates. All rights reserved.

ビッグデータ: データを増やして予測精度を上げる

ランダム

100%0%

20 の属性からなるモデル

75 の属性からなるモデル

250 の属性からなるモデル

ビッグデータ(例えば数百の属性からなる入力)で生成されたモデル

• 統計データ• POS トランザクションデータ• テキストやコメント•位置情報•過去データと直近の行動データ• ウェブログデータ• センサーデータ      etc.

100%

全体の何割にアプローチするか

ターゲ

ット層

へヒ

ット

する

割合

8

Copyright © 2017 Oracle and/or its affiliates. All rights reserved. 13

データ活用における PDCA サイクル( CRISP-DM )

ビジネスの理解

データの理解

データの準備

データのモデリン

グ評価 展開

ビジネス目的の

決定する

状況を評価する

分析のゴールを決定する

プロジェクト計画を建てる

初期データを収集する

データを記述する

データを調べる

データの品質を

検証する

データを選択する

データを整理する

データを構築する

データを統合する

データを設定する

モデリング手法を選択する

テスト結果を生成する

モデルを構築する

モデルを評価する

結果を評価する

プロセスを審査する

次のステップを決定する

展開を計画する

運用を計画する

最終レポートを作成する

プロジェクトを審査する

ビジネスの理解

データの理解

データの準備

評価

展開

データのモデリング

CRISP-DM (Cross-Industry Standard Process for Data Mining)

Copyright © 2017 Oracle and/or its affiliates. All rights reserved. 14

ビジネスの理解

データの理解

データの準備

評価

展開

データのモデリング

データ分析サイクルの導入と継続運用を自動化・サポート

データ活用における PDCA サイクル( CRISP-DM )CRISP-DM (Cross-Industry Standard Process for Data Mining)

Copyright © 2017 Oracle and/or its affiliates. All rights reserved. 15

オラクルのデータ分析製品

Copyright © 2017 Oracle and/or its affiliates. All rights reserved.

Oracle Database Enterprise Edition Advanced Analytics

Oracle Data Mining• データベース内部でマイニング処理• 12個のマイニング・アルゴリズム• 予測分析のためのアプリケーションの開発• Oracle Data Miner (SQL Developer) を

用いた GUI による解析ワークフローの構築• PL/SQL API と Java API の提供• Exadata のパワーを利用したモデルの生成

Oracle Advanced Analytics オプション

高度な分析プラットフォームをデータベースに内包

Oracle R Enterprise• オープンソースの統計言語• 一部の処理をデータベースにオフロード

することで大規模なデータを分析可能• 広範で高度な統計解析のための関数を提供• R の機能をアプリケーションや OBIEE に統

合• 対話的なデータ分析と優れたグラフ描画機能• オープンソース R パッケージ (CRAN) の利

16

Copyright © 2017 Oracle and/or its affiliates. All rights reserved. 17

Oracle のデータ分析機能の歴史

データ分析 SQL をデータベースに

1998 1999 2002 2005 20082004 2011 2015

• シンキングマシンズ社より“ Darwin” データ・マイニングソフトウェア+ 開発チームを獲得

• データ・マイニングSQL 関数 , 7 つの新しいアルゴリズム , GUIウィザード型 GUI Oracle Data Miner “Classic” を提供

• 3 つの新しいアルゴリズム(EM, PCA, SVD) を追加• SQLDEV/Oracle Data

Miner 4.0 において SQLスクリプト作成機能 +SQLクエリーノード機能、 R 連係機能が提供• OAA/ORE 1.3 + 1.4 スケールする新しい R アルゴリズムを提供• Hadoop と連携する

Oracle R Advanced Analytics for Hadoop を提供

•二つのアルゴリズム (NB, AR) を Java API として提供

• 自動データ準備 (ADP),テキストマイニング機能追加• SQL Developer プラグイン

Oracle Data Miner 3.2 を提供• Oracle R Enterprise による

Oracle Database と R との連係 • Oracle Advanced Analytics

(ODM + ORE) に名称変更

Copyright © 2017 Oracle and/or its affiliates. All rights reserved. 18

BIEE 、 BICS

Oracle Database Enterprise Edition

Oracle Advanced Analytics の位置づけ

Advanced Analytics オプションSQL によるデータ分析機能と高性能な R の統合

データベース内で拡張可能で分散されたパラレル処理を実行可能

SQL Developer HCM 、 CRM などR Client

データ分析担当者 R プログラマー マネージメント エンドユーザー

Copyright © 2017 Oracle and/or its affiliates. All rights reserved. 19

Advanced Analytics 製品概要

「 Data Mining」

Copyright © 2017 Oracle and/or its affiliates. All rights reserved. 20

Oracle Data Mining

• DB内でデータマイニングを実行– PL/SQL API と Java API–予測分析アプリケーションの開発と運用

• Oracle Data Miner (GUI)–ウィザードを利用した、ガイド付きの

マイニングツール

Copyright © 2017 Oracle and/or its affiliates. All rights reserved. 21

Oracle Data Mining アーキテクチャ

ODMRSYS Data Miner リポジトリ

USERS 機械学習用 テーブル /ビュー

サービス Data Mining XML DB Scheduler Text

SQL Developer( Data Miner プラグイン)

SQL, PL/SQL

Copyright © 2017 Oracle and/or its affiliates. All rights reserved.

Oracle Data Miner GUI• クライアントツールで操作、処理はデータベースで実行

• GUI でワークフローを設計、複数のユーザーで共有可能

• SQL による ETL 処理をワークフローとして記述可能

• 自動的に入力データを加工(欠損値補完など)

• 複雑な機械学習のパラメータを自動的に調整して実行

ドラッグ

&ドロップ

分析対象データ

モデル構築

新規データの分析(モデルの適用)

結果出力

Copyright © 2017 Oracle and/or its affiliates. All rights reserved. 23

In-Database Data Mining アルゴリズムアルゴリズム 応用範囲の例

分類Logistic Regression (GLM)Decision TreesNaïve Bayes Support Vector Machines (SVM)

ロイヤルカスタマーの予測稼働会員から外れる会員の予測優良商品へ成長する製品の予測インバウンドニーズのある店舗の予測

回帰 Linear Regression (GLM)Support Vector Machine (SVM)

特定商品の売り上げを予測特定顧客の消費金額を予測

異常検出 One Class SVM 不正検知や異常値の検出

属性重要度 Minimum Description Length (MDL)Principal Components Analysis (PCA) 属性の絞り込み、ノイズの低減

相関ルール Apriori バスケット分析 / NBO(Next Best Offer) 分析

クラスタリングHierarchical k-MeansHierarchical O-ClusterExpectation-Maximization Clustering (EM)

製品のグルーピング / テキストマイニング遺伝子 - タンパク質分析

特徴抽出 Nonnegative Matrix Factorization (NMF)Singular Value Decomposition (SVD) テキスト分析 / 因子分析

A1 A2 A3 A4 A5 A6 A7

F1 F2 F3 F4

Copyright © 2017 Oracle and/or its affiliates. All rights reserved. 24

Advanced Analytics 製品概要

「 R Enterprise」

Copyright © 2017 Oracle and/or its affiliates. All rights reserved. 25

従来の R の制限• メモリの制約• データをメモリ上に展開しての演算処理• 処理データ量に制限• 大規模データの扱いには向いていない

• 処理に応じて繰り返されるメモリへのデータロード• メモリ・リソースが枯渇しやすい

• シングル・スレッド処理• マルチコア環境で性能のスケーラビリティが低い

Copyright © 2017 Oracle and/or its affiliates. All rights reserved.

Oracle R Enterprise

26

• データベースの機能として R の実行環境を提供–データフレーム上または Oracle表 /View上で R を実行可能–コマンド、コンソール、ワークスペースは R と同じものを提供

• 企業のデータベースを R で利用–データベース内のデータに対してダイレクトかつ透過的に処理–大規模データセットを R で扱うことが可能

• 高いパフォーマンス–プログラミングレスで並列処理を DB内にて実行

R

Copyright © 2017 Oracle and/or its affiliates. All rights reserved. 27

R の処理を透過的に Oracle Database 内で実行します。

Oracle R Enterprise アーキテクチャ

R言語の処理を透過的に Oracle Database内の処理に変換することで、大規模な分析を実現します。

また DB内処理に変換できない部分も DB サーバ上で R プロセスを実行します。

R EngineR Engine R Engine

   Other R packages

R の処理を DB内の処理に変換・オフロードします。

Oracle R Enterprise packages

接続

結果

DB サーバー内で外部プロセスとして R を実行することが可能です

R クライアント• R スクリプトを Oracle Database で実

行するようにスクリプトを発行します。

• グラフの描画や処理フローの制御は、通常の R の機能を利用し、クライアント側で実行します。

データベース・サーバー上の R 実行

• データベースが複数の R のプロセスをデータベースサーバー上に外部プロセスとして起動しますので、追加機器が不要です。

• SQL や PL/SQL から R のスクリプトを呼び出し可能です。

分析者

データベース・サーバー

外部プロセス

Oracle Database内部での実行• R の関数を SQL に変換して実行します。• Oracle Database の並列実行の仕組みを活用し、大量のデータに対応します。

• Oracle Database の持つ統計関数、データマイニング機能を内部的に活用します。

DB起動

結果

R Engine

   Other R packages

Oracle R Enterprise packages

Copyright © 2017 Oracle and/or its affiliates. All rights reserved. 28

高速化のために ORE透過層を利用した検証事例

• データの加工、モデルの作成、スコアリングなどの処理を透過層にて処理できる場合は、さらなる高速化が期待できます

• 一例として、新日鉄住金ソリューションズ様による検証では、透過層の利用により、 OSS R と比べ処理時間を約 40 分の1 に短縮可能なことを確認できました

• 参考記事• 検証結果の特集記事(左の画像)

• 新日鉄住金ソリューションズ様のプレスリリース

Copyright © 2017 Oracle and/or its affiliates. All rights reserved. 29

ORE を使用する

library(ORE)

ORE のライブラリを読み込みます

ore.connect( user="ore_user", sid="orcl", host="192.168.56.101", password="oracle", port=1521, all=TRUE)

データベースのユーザーで接続します

ore.ls()

データベース上の表に R プロセスからアクセスできます

Copyright © 2017 Oracle and/or its affiliates. All rights reserved. 30

どこにあるデータでモデルを生成するか

model <- lm(Sepal.Length ~ ., data = iris)pred <- predict(model, iris, se.fit = TRUE, interval = "prediction")result <- cbind(iris, pred)head(result[c(1,6)])

クライアントの R でモデルを生成・適用します

R EngineR Engine R Engine

   Other R packages

Oracle R Enterprise packages

接続

結果分析者 外部

プロセスDB

起動

結果

R Engine

   Other R packages

Oracle R Enterprise packages

Copyright © 2017 Oracle and/or its affiliates. All rights reserved. 31

どこにあるデータでモデルを生成するか

iris_db <- ore.push(iris)

データベースの一時的な表にデータを複製します

model2 <- ore.lm(Sepal.Length ~ ., data = iris_db)pred <- ore.predict(model2, iris_db, se.fit = TRUE, interval = "prediction")result <- cbind(iris_db, pred)head(result[c(1,6)])

データベース上でモデルを生成・適用します

R EngineR Engine R Engine

   Other R packages

Oracle R Enterprise packages

接続

結果分析者 外部

プロセスDB

起動

結果

R Engine

   Other R packages

Oracle R Enterprise packages

Copyright © 2017 Oracle and/or its affiliates. All rights reserved. 32

どこにあるデータでモデルを生成するか

ore.create(iris, table="iris_tab")

データベースに表を作成してデータを複製します

model3 <- ore.lm(Sepal.Length ~ ., data = iris_tab)pred <- ore.predict(model3, iris_tab, se.fit = TRUE, interval = "prediction")result <- cbind(iris_tab, pred)head(result[c(1,6)])

データベース上でモデルを生成・適用します

R EngineR Engine R Engine

   Other R packages

Oracle R Enterprise packages

接続

結果分析者 外部

プロセスDB

起動

結果

R Engine

   Other R packages

Oracle R Enterprise packages

Copyright © 2017 Oracle and/or its affiliates. All rights reserved. 33

In-Database Analytics

Copyright © 2017 Oracle and/or its affiliates. All rights reserved. 34

データ分析の際のデータの「在り処」

データベースなどデータがある場所から、データをツールのある場所に移動または複製して分析を実行

典型的な統計解析ツール in-Database データ分析

データベースやHadoop などデータが存在する場所で分析を実行

Copyright © 2017 Oracle and/or its affiliates. All rights reserved.

データ分析の導入における課題

35

データ分析用のハードウェアの導入やソフトウェアのインストールの作業

データベースからデータを出力し、必要に応じて変換し、データ分析用ソフトウェアにロードする作業

作業工数

データ分析用ソフトウェアの選定と導入

データ分析用ハードウェアの導入と、データ量の変化と分析の要件に応じた拡張

S/W と H/W のコスト

データがデータベース外に複製されることによるデータの拡散リスクの増加

データを分析するユーザーに対するアクセス制御の低下

セキュリティ

インフラ担当者 データベース・サーバー 分析用サーバー 分析担当者

データの拡散リスク

H/W や S/W の導入

データ加工の手間

Copyright © 2017 Oracle and/or its affiliates. All rights reserved.

in-Database で迅速なデータ分析

36

データベースにデータが格納されている場合、新たなソフトウェアやハードウェアは不必要

この場合、データ分析がデータベース・サーバーないで完結するためデータの変換や移動も不必要

作業工数

データベースの Advanced Analytics オプションが必要

新たなデータ分析用ハードウェアの導入は不必要

S/W と H/W のコスト

データがデータベース外に複製されないため、データの拡散を防止可能

データを分析するユーザーに対するアクセス制御が可能

セキュリティ

インフラ担当者 データベース・サーバー 分析担当者

計算リソースの活用

アクセス制御

Copyright © 2017 Oracle and/or its affiliates. All rights reserved.

Cloud でクイック・スタート

37

OS やデータベースのセットアップなしに環境構築が可能

作業工数

データベースの Advanced Analytics オプションは High Performance インスタンスに含まれている

オンプレミスに移行できるハイブリッド・クラウド

S/W と H/W のコスト

データの暗号化も可能 オンプレミス同様、データを分析

するユーザーに対するアクセス制御が可能

セキュリティ

インフラ担当者 クラウド 分析担当者

構築作業削減 暗号化

Copyright © 2017 Oracle and/or its affiliates. All rights reserved.

機械学習はシステムに組み込める時代に

従来の分析ソフトウェアでは• 既存のデータベース・サーバーと別に

分析用サーバーやソフトウェアが必要• 予測分析の結果が得られても、すぐに

システムに組み込むことができない

データベースの分析機能を使えば• 既存のデータベース・サーバーを

用いてデータの前処理からモデル生成、モデルを活用したアプリ開発ができる

• 予測分析の結果をシステムに組み込みユーザーのフィードバックを得ることで、予測精度を向上させるサイクルができる

Yes68%

アプリケーション

データベース・クラウド

システム担当者

分析担当者 

予測モデルの生成とデプロイ

フィードバック

速いPDCA サイクル

In-Database

Copyright © 2017 Oracle and/or its affiliates. All rights reserved.

オラクル DB で機械学習を使う3つの理由

1. データの前処理が効率的• データのエクスポート/インポートが不要• SQL を使って集計やフィルタリング

2. 非常に高速、高い拡張性• データベース内で高速にモデル生成• クラウド環境であれば簡単に拡張できる

3. アプリケーションへの導入が容易• SQL でモデルによる予測を取得できる• 予測の正否をフィードバックできる

データの前処理が分析全体の工数の 80% を占めることもしばしばと言われます

モデル生成に必要なスペックを見積もるのは難しいのでクラウドが便利です

モデル適用後の予測を表示したりユーザーの評価を収集するアプリを作れます

Copyright © 2017 Oracle and/or its affiliates. All rights reserved.

Advanced Analytics 顧客事例

Manufacturing

FinanceProfessional Services

Media, Communication

CPGScienceHealth, Public Sector http://www.oracle.com/technetwork/database/options/advanced-analytics/odm/odm-customers-086483.html

http://www.oracle.com/technetwork/database/database-technologies/r/r-enterprise/overview/index.htmlhttps://www.oracle.com/search/customers?Dy=1&Nty=1&Ntk=S3&Ntt=Advanced+Analytics

公開されている事例でも 20 社以上、その他多くの企業でデータ分析基盤として、また、 Oracle の SaaS アプリケーションでも使用されています。

Copyright © 2017 Oracle and/or its affiliates. All rights reserved.


Recommended