SlideShare a Scribd company logo
1 of 19
より多く、より良く、より早く
「重複する実験インフラ」
最高のサービスを作るために試行を繰り返す
概要
● Web実験を行うための重要な3つの軸: More, Better, Faster
● 既存のWeb実験で行われているSingle layerの実験とMulti-
factorialの実験から重複した(Overlapping)実験へ
書誌情報
● タイトル:Overlapping Experiment Infrastructure: More, Better, Faster
Experimentation
● 著者:D. Tang, A. Agarwal, D. O’Brien, M. Meyer(←Googleの人たち)
● カンファレンス:KDD’10
● 出版年:2010
● 引用数:249 (2021/6 現在)
UXに影響がある変化はすべて評価
● Googleはどんな意思決定をするにせよ、データで決める会社
● ユーザーの体験 (UX) に影響を与える可能性のあるほとんどすべての変更を
評価している
● イノベーションのスピードについていくために、Web実験を行うサ
イクルを整えたい!3つの軸 (More, Better, Faster)をベースに考える
● サイクルを加速化させるために必要なものがOverlapping Experiment
Infrastructure (重複した実験インフラ)
● この論文はGoogle ウェブ検索について話しているが、取り掛かっている問題
は他の大規模な実験でも当てはまる問題
More, Better, Faster
● More
○ 多くの実験を同時に行うためのscalabilityと実験ごとの細かい条件分岐やサ
イズ変更ができるようなflexibilityが必要
● Better
○ 実環境で実験を行うので、妥当性ある実験かつ実環境に悪影響となる実
験はしない
○ 実験結果は標準化された指標で正しく評価
● Faster
○ 簡単かつ迅速に実験し、すぐに評価
○ エンジニアでなくてもコードを書かずに実験ができるようにする
一般的な実験の仕組み
● 実験対象を2種類にわける
○ 統制群(control):デフォルトのまま
○ 介入群(target):あるパラメータの値をデフォルトから変える
● 注目する(介入した)パラメータ以外の条件が同じなら、
targetとcontrolの結果の違いは、パラメータを変えたことによ
るものだと特定できる
● そのために、ランダム配置を行うことが不可欠
Web実験の仕組み:single layer バージョン
● 全体の中で、一つのパラメータだけを実験する
● 例えば、検索結果を並べるアルゴリズム:AとBを比較したい場合。
○ 検索クエリをランダムに半分に分け、それぞれ、A or Bを使って検索結果を
返す
○ 他のパラメータには介入しない。
● シンプルで心配が少ない!
● ただし、スケールアップしない
Web実験の仕組み:multi-factorial バージョン
● 実験したいパラメータ全てを同時に実験
● 例えば、①検索結果を並べるアルゴリズム:AとB、②検索結果の背景色、
③検索結果の文字色、の3つ全てを実験したい場合
○ 検索クエリをランダムに半分に分け、①についてcontrol群とtarget群にする。
○ ②・③についても同様のことを行う。ただし、①②③の分け方は直行するようにする。
● 1回の試行で最大パラメータ数を同時に実験
● ただし、互いに依存するパラメータを同時に変えたら不具合が起こる
○ 例えば、背景色と文字色をともに灰色にするセットができてしまうと、全く読めない
画面を返すことになってしまう!
Web実験の仕組み:【New】overlapping バージョン
● 実験したいパラメータのうち、依存関係のないセットを同時に実験
● 例えば、①検索結果を並べるアルゴリズム、②検索結果の背景色、③検索結
果の文字色、の3つ全てを実験したい場合
○ ②と③は互いに影響するので、同じレイヤー。(つまり、①のレイヤーaと②・③のレイヤー
bの、2つのレイヤーができる)
○ 検索クエリをランダムに半分に分け、①(レイヤーa)について介入群と統制群にする。
○ レイヤーbについても同様のことを行う。ただし、②or③のどちらかしか実験できない。
● 1回の試行で、最大レイヤー数を同時に実験
● 言われてみると単純だが、このアイディアが論文の肝
Web実験の仕組み:その他の論点
● 依存関係の見つけ方
○ バイナリに注目, 実験記録から逆算
● 各レイヤーの実験を直交させる、トラフィックを分割
○ → f(cookie, layer)のmodをとる
● 実験するトラフィックを限定する方法
○ 例えば、漢字のフォントを変えるか検討するために、中国・日本からの検索クエリのみを対
象とする実験をしたい場合。
○ → 分割した後で、条件分岐をできるように設計する。
● 条件分岐で使われなかったトラフィックは、他の実験に再利用できるか
○ → バイアスがかかる
● 関連するツールや教育プロセス
もっと詳しく知りたい方は元論文をぜひ読んでみてください
実験解析ツールとして重要なこと
● 正確性や完全性以外に実験解析ツールとして重要なこと
○ 信頼区間まで算出
○ 良いUIで表示
○ スライシングでの結果も見えるようにする
○ カスタムメトリクスやスライシングの追加が容易
まとめ
● More, Better, Fasterを考慮した実験インフラを構築する
○ スケーラブルで柔軟性が高く、実環境で悪影響がなく正しく評価
でき、迅速かつ簡単に実験ができるようにする
● Single layerの実験とMulti-factorialの実験を拡張し、重複した
(Overlapping)実験を提案
○ 依存関係のあるパラメータを同じレイヤーにいれることで、実環
境への悪影響とならないようにしつつ、多くの実験をする
● YAGNI (You ain't gonna need it) の原則を守りつつ、利便性や拡張性
を考慮した実験インフラを意識しておくことが大事
チャンネル紹介
● チャンネル名: 【経営xデータサイエンスx開発】西岡 賢一郎のチャンネル
● URL: https://www.youtube.com/channel/UCpiskjqLv1AJg64jFCQIyBg
● チャンネルの内容
○ 経営・データサイエンス・開発に関する情報を発信しています。
○ 例: アジャイル開発、データパイプライン構築、AIで使われるアルゴリズム4種類など
● noteでも情報発信しています → https://note.com/kenichiro
Appendix
Abstractからの抜粋
● Googleでは、ユーザーの体験に影響を与える可能性のあるほとんどすべての変更を評価するため、実験は事実上のマントラと
なっている。実験の対象となる変更には、ユーザーインターフェースのようなユーザーの目に見える明らかな箇所だけでなく、
ランキングやコンテンツ選択に影響を与える可能性のある機械学習アルゴリズムのような、より微妙な箇所も含まれる。実験
に対する飽くなき欲求から、私たちは、より多くの実験を行うにはどうしたらよいか、より良い判断をもたらす実験を行うに
はどうしたらよいか、より速く実験を行うにはどうしたらよいか、という問題に取り組んでいる。
● 本論文では、これらの目標(More・Better・Faster)を達成するための重要な要素である、GoogleのOverlapping
Experiment Infrastructureについて説明する。また、実験インフラだけにとどまらず、それを効果的に利用するために必要
な関連ツールや教育プロセスについても紹介する。最後に、これらの実験環境が成功していることを示す傾向をデータから説
明する。本稿では、特にGoogleで実施している実験システムと実験プロセスについて説明しているが、検索エンジンやその他
のウェブアプリケーションを改善するために実験を利用したいと考えている企業であれば、一般化して適用できる内容だろう。
背後の仕組み(ユーザーからのクエリの処理)
● ユーザーから”クエリ”(例えば
「『大リーグ 結果』で検索」・「URLをクリ
ック」)を受け取り、いくつかの”バイナリ”での
処理を経て、ユーザー画面への応答を返す。
● ”バイナリ”は、例えば「検索結果の表示順を決め
る」「表示する広告を決める」などの機能ごと
に分かれていて、それぞれ”パラメータ”(文字色
から推薦アルゴリズムのハイパーパラメータま
で)をたくさん持っている。
引用: https://storage.googleapis.com/pub-tools-public-publication-data/pdf/36500.pdf
教育プロセス
1. Experimental Council
● 実験を行う人は、簡単なチェックリストに事前に回答する
○ 検証したい仮説は?
○ 対象にするトラフィックの条件は?
○ どの指標を分析に用いる予定か? etc
● エンジニアで構成された”council”がレビューする
1. Discussion Forum
● 実験結果を持ってきて、統計や実装に通じた専門家と議論できる場所
○ 実験結果は妥当か?
○ いくつかの指標を総合的にどう解釈すべきか? etc
Googleでの実験の増加
● 2007年にスタート
● 左:実施された実験の数
● 真ん中:実験を実施した従業員の人数
● 右:実験を経てローンチされた機能の数
全て、めっちゃ右肩上がり。
引用: https://storage.googleapis.com/pub-tools-public-publication-data/pdf/36500.pdf
Overlappingにおける依存関係
● パラメータの依存関係をどう見つける?
1. バイナリに注目
異なるバイナリで使われているパラメータは依存関係にな
いはず。
2. 調べる
・過去の実験記録から逆算する
・シンプルに考える

More Related Content

Similar to より多く、より良く、より早く 「重複する実験インフラ」

Teratail Study  ~機械学習編#1~
Teratail Study  ~機械学習編#1~Teratail Study  ~機械学習編#1~
Teratail Study  ~機械学習編#1~Kosuke Fujimoto
 
「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜
「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜
「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜Teruo Adachi
 
ユーザーテスト体験イベント@株式会社メンバーズ 20150703
ユーザーテスト体験イベント@株式会社メンバーズ 20150703ユーザーテスト体験イベント@株式会社メンバーズ 20150703
ユーザーテスト体験イベント@株式会社メンバーズ 20150703Daisuke Hiraishi
 
WebEffective overview 2012 japanese
WebEffective overview 2012 japaneseWebEffective overview 2012 japanese
WebEffective overview 2012 japaneseYoichiro Takehora
 
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発Takashi Watanabe
 
Single sign-on system requiring authorization
Single sign-on system requiring authorizationSingle sign-on system requiring authorization
Single sign-on system requiring authorizationH MM
 
Introducing the new features of the Elastic 8.6 release.pdf
Introducing the new features of the Elastic 8.6 release.pdfIntroducing the new features of the Elastic 8.6 release.pdf
Introducing the new features of the Elastic 8.6 release.pdfShotaro Suzuki
 
Gui自動テストツール基本
Gui自動テストツール基本Gui自動テストツール基本
Gui自動テストツール基本Tsuyoshi Yumoto
 
SASより高速なRevolution R Enterprise
SASより高速なRevolution R EnterpriseSASより高速なRevolution R Enterprise
SASより高速なRevolution R EnterpriseSatoshi Kitajima
 
【BS10】Microsoft と GitHub の開発エコシステムで、開発にドライブをかけよう!
【BS10】Microsoft と GitHub の開発エコシステムで、開発にドライブをかけよう!【BS10】Microsoft と GitHub の開発エコシステムで、開発にドライブをかけよう!
【BS10】Microsoft と GitHub の開発エコシステムで、開発にドライブをかけよう!日本マイクロソフト株式会社
 
オイシックスIT勉強会20141030_テストデータ
オイシックスIT勉強会20141030_テストデータオイシックスIT勉強会20141030_テストデータ
オイシックスIT勉強会20141030_テストデータiwai-atsushi
 
Qs information20110615
Qs information20110615Qs information20110615
Qs information20110615Kei Nakahara
 
第11回rest勉強会 リファクタリング(クライアント編)
第11回rest勉強会 リファクタリング(クライアント編)第11回rest勉強会 リファクタリング(クライアント編)
第11回rest勉強会 リファクタリング(クライアント編)ksimoji
 
OpenShift Ansbile 活用法 アプリケーションライフサイクルからみる導入効果
OpenShift Ansbile 活用法 アプリケーションライフサイクルからみる導入効果OpenShift Ansbile 活用法 アプリケーションライフサイクルからみる導入効果
OpenShift Ansbile 活用法 アプリケーションライフサイクルからみる導入効果Hideaki Tokida
 
アジャイル事例紹介
アジャイル事例紹介アジャイル事例紹介
アジャイル事例紹介hiko99
 
Webサイト制作の環境構築(for Windows)
Webサイト制作の環境構築(for Windows)Webサイト制作の環境構築(for Windows)
Webサイト制作の環境構築(for Windows)MarlboroLand
 
最適なビックデータ・システムの構築のために
最適なビックデータ・システムの構築のために最適なビックデータ・システムの構築のために
最適なビックデータ・システムの構築のためにIBM Systems @ IBM Japan, Ltd.
 

Similar to より多く、より良く、より早く 「重複する実験インフラ」 (20)

Teratail Study  ~機械学習編#1~
Teratail Study  ~機械学習編#1~Teratail Study  ~機械学習編#1~
Teratail Study  ~機械学習編#1~
 
「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜
「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜
「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜
 
ユーザーテスト体験イベント@株式会社メンバーズ 20150703
ユーザーテスト体験イベント@株式会社メンバーズ 20150703ユーザーテスト体験イベント@株式会社メンバーズ 20150703
ユーザーテスト体験イベント@株式会社メンバーズ 20150703
 
WebEffective overview 2012 japanese
WebEffective overview 2012 japaneseWebEffective overview 2012 japanese
WebEffective overview 2012 japanese
 
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発
 
Single sign-on system requiring authorization
Single sign-on system requiring authorizationSingle sign-on system requiring authorization
Single sign-on system requiring authorization
 
Introducing the new features of the Elastic 8.6 release.pdf
Introducing the new features of the Elastic 8.6 release.pdfIntroducing the new features of the Elastic 8.6 release.pdf
Introducing the new features of the Elastic 8.6 release.pdf
 
Xpjug lt-20210918
Xpjug lt-20210918Xpjug lt-20210918
Xpjug lt-20210918
 
Quality characteristics
Quality characteristicsQuality characteristics
Quality characteristics
 
Gui自動テストツール基本
Gui自動テストツール基本Gui自動テストツール基本
Gui自動テストツール基本
 
SASより高速なRevolution R Enterprise
SASより高速なRevolution R EnterpriseSASより高速なRevolution R Enterprise
SASより高速なRevolution R Enterprise
 
【BS10】Microsoft と GitHub の開発エコシステムで、開発にドライブをかけよう!
【BS10】Microsoft と GitHub の開発エコシステムで、開発にドライブをかけよう!【BS10】Microsoft と GitHub の開発エコシステムで、開発にドライブをかけよう!
【BS10】Microsoft と GitHub の開発エコシステムで、開発にドライブをかけよう!
 
オイシックスIT勉強会20141030_テストデータ
オイシックスIT勉強会20141030_テストデータオイシックスIT勉強会20141030_テストデータ
オイシックスIT勉強会20141030_テストデータ
 
Qs information20110615
Qs information20110615Qs information20110615
Qs information20110615
 
第11回rest勉強会 リファクタリング(クライアント編)
第11回rest勉強会 リファクタリング(クライアント編)第11回rest勉強会 リファクタリング(クライアント編)
第11回rest勉強会 リファクタリング(クライアント編)
 
Qs info 002
Qs info 002Qs info 002
Qs info 002
 
OpenShift Ansbile 活用法 アプリケーションライフサイクルからみる導入効果
OpenShift Ansbile 活用法 アプリケーションライフサイクルからみる導入効果OpenShift Ansbile 活用法 アプリケーションライフサイクルからみる導入効果
OpenShift Ansbile 活用法 アプリケーションライフサイクルからみる導入効果
 
アジャイル事例紹介
アジャイル事例紹介アジャイル事例紹介
アジャイル事例紹介
 
Webサイト制作の環境構築(for Windows)
Webサイト制作の環境構築(for Windows)Webサイト制作の環境構築(for Windows)
Webサイト制作の環境構築(for Windows)
 
最適なビックデータ・システムの構築のために
最適なビックデータ・システムの構築のために最適なビックデータ・システムの構築のために
最適なビックデータ・システムの構築のために
 

More from 西岡 賢一郎

Amazon SageMaker Foundation Modelsで事前学習済みモデルを利用する
Amazon SageMaker Foundation Modelsで事前学習済みモデルを利用するAmazon SageMaker Foundation Modelsで事前学習済みモデルを利用する
Amazon SageMaker Foundation Modelsで事前学習済みモデルを利用する西岡 賢一郎
 
Amazon SageMaker Ground Truthを使って手動のラベル付けを簡略化する
Amazon SageMaker Ground Truthを使って手動のラベル付けを簡略化するAmazon SageMaker Ground Truthを使って手動のラベル付けを簡略化する
Amazon SageMaker Ground Truthを使って手動のラベル付けを簡略化する西岡 賢一郎
 
Amazon SageMakerのNotebookからJobを作成する
Amazon SageMakerのNotebookからJobを作成するAmazon SageMakerのNotebookからJobを作成する
Amazon SageMakerのNotebookからJobを作成する西岡 賢一郎
 
リモートワークで知っておきたい コミュニケーション時の過大な期待
リモートワークで知っておきたい コミュニケーション時の過大な期待リモートワークで知っておきたい コミュニケーション時の過大な期待
リモートワークで知っておきたい コミュニケーション時の過大な期待西岡 賢一郎
 
リモートワークで意識すべき7つのこと
リモートワークで意識すべき7つのことリモートワークで意識すべき7つのこと
リモートワークで意識すべき7つのこと西岡 賢一郎
 
Amazon SageMaker ML Governance 3つの機能紹介
Amazon SageMaker ML Governance 3つの機能紹介Amazon SageMaker ML Governance 3つの機能紹介
Amazon SageMaker ML Governance 3つの機能紹介西岡 賢一郎
 
Feature StoreのOnline StoreとOffline Storeの違いについて理解する
Feature StoreのOnline StoreとOffline Storeの違いについて理解するFeature StoreのOnline StoreとOffline Storeの違いについて理解する
Feature StoreのOnline StoreとOffline Storeの違いについて理解する西岡 賢一郎
 
機械学習の特徴量を管理するAmazon SageMaker Feature Store
機械学習の特徴量を管理するAmazon SageMaker Feature Store機械学習の特徴量を管理するAmazon SageMaker Feature Store
機械学習の特徴量を管理するAmazon SageMaker Feature Store西岡 賢一郎
 
機械学習用のデータを準備する Amazon SageMaker Data Wrangler - ノーコードで前処理から学習まで
機械学習用のデータを準備する Amazon SageMaker Data Wrangler - ノーコードで前処理から学習まで機械学習用のデータを準備する Amazon SageMaker Data Wrangler - ノーコードで前処理から学習まで
機械学習用のデータを準備する Amazon SageMaker Data Wrangler - ノーコードで前処理から学習まで西岡 賢一郎
 
Amazon SageMakerでカスタムコンテナを使った学習
Amazon SageMakerでカスタムコンテナを使った学習Amazon SageMakerでカスタムコンテナを使った学習
Amazon SageMakerでカスタムコンテナを使った学習西岡 賢一郎
 
Amazon SageMakerでscikit-learnで作ったモデルのEndpoint作成
Amazon SageMakerでscikit-learnで作ったモデルのEndpoint作成Amazon SageMakerでscikit-learnで作ったモデルのEndpoint作成
Amazon SageMakerでscikit-learnで作ったモデルのEndpoint作成西岡 賢一郎
 
Amazon AthenaでSageMakerを使った推論
Amazon AthenaでSageMakerを使った推論Amazon AthenaでSageMakerを使った推論
Amazon AthenaでSageMakerを使った推論西岡 賢一郎
 
Amazon Athenaで独自の関数を使う Amazon Athena UDF - AthenaでTweetの感情分析
Amazon Athenaで独自の関数を使う Amazon Athena UDF - AthenaでTweetの感情分析Amazon Athenaで独自の関数を使う Amazon Athena UDF - AthenaでTweetの感情分析
Amazon Athenaで独自の関数を使う Amazon Athena UDF - AthenaでTweetの感情分析西岡 賢一郎
 
TorchDataチュートリアル解説
TorchDataチュートリアル解説TorchDataチュートリアル解説
TorchDataチュートリアル解説西岡 賢一郎
 
Amazon SageMaker JumpStart
Amazon SageMaker JumpStartAmazon SageMaker JumpStart
Amazon SageMaker JumpStart西岡 賢一郎
 
Amazon SageMaker Studio Lab紹介
Amazon SageMaker Studio Lab紹介Amazon SageMaker Studio Lab紹介
Amazon SageMaker Studio Lab紹介西岡 賢一郎
 
Amazon SageMaker Canvasを使ったノーコード機械学習
Amazon SageMaker Canvasを使ったノーコード機械学習Amazon SageMaker Canvasを使ったノーコード機械学習
Amazon SageMaker Canvasを使ったノーコード機械学習西岡 賢一郎
 
PMFを目指すプロダクト開発組織が組織拡大するときににやるべきこと
PMFを目指すプロダクト開発組織が組織拡大するときににやるべきことPMFを目指すプロダクト開発組織が組織拡大するときににやるべきこと
PMFを目指すプロダクト開発組織が組織拡大するときににやるべきこと西岡 賢一郎
 
H2O Waveを使ったAIアプリケーション作成入門
H2O Waveを使ったAIアプリケーション作成入門H2O Waveを使ったAIアプリケーション作成入門
H2O Waveを使ったAIアプリケーション作成入門西岡 賢一郎
 

More from 西岡 賢一郎 (20)

Amazon SageMaker Foundation Modelsで事前学習済みモデルを利用する
Amazon SageMaker Foundation Modelsで事前学習済みモデルを利用するAmazon SageMaker Foundation Modelsで事前学習済みモデルを利用する
Amazon SageMaker Foundation Modelsで事前学習済みモデルを利用する
 
Amazon SageMaker Ground Truthを使って手動のラベル付けを簡略化する
Amazon SageMaker Ground Truthを使って手動のラベル付けを簡略化するAmazon SageMaker Ground Truthを使って手動のラベル付けを簡略化する
Amazon SageMaker Ground Truthを使って手動のラベル付けを簡略化する
 
Amazon SageMakerのNotebookからJobを作成する
Amazon SageMakerのNotebookからJobを作成するAmazon SageMakerのNotebookからJobを作成する
Amazon SageMakerのNotebookからJobを作成する
 
リモートワークで知っておきたい コミュニケーション時の過大な期待
リモートワークで知っておきたい コミュニケーション時の過大な期待リモートワークで知っておきたい コミュニケーション時の過大な期待
リモートワークで知っておきたい コミュニケーション時の過大な期待
 
リモートワークで意識すべき7つのこと
リモートワークで意識すべき7つのことリモートワークで意識すべき7つのこと
リモートワークで意識すべき7つのこと
 
Amazon SageMaker ML Governance 3つの機能紹介
Amazon SageMaker ML Governance 3つの機能紹介Amazon SageMaker ML Governance 3つの機能紹介
Amazon SageMaker ML Governance 3つの機能紹介
 
Feature StoreのOnline StoreとOffline Storeの違いについて理解する
Feature StoreのOnline StoreとOffline Storeの違いについて理解するFeature StoreのOnline StoreとOffline Storeの違いについて理解する
Feature StoreのOnline StoreとOffline Storeの違いについて理解する
 
機械学習の特徴量を管理するAmazon SageMaker Feature Store
機械学習の特徴量を管理するAmazon SageMaker Feature Store機械学習の特徴量を管理するAmazon SageMaker Feature Store
機械学習の特徴量を管理するAmazon SageMaker Feature Store
 
機械学習用のデータを準備する Amazon SageMaker Data Wrangler - ノーコードで前処理から学習まで
機械学習用のデータを準備する Amazon SageMaker Data Wrangler - ノーコードで前処理から学習まで機械学習用のデータを準備する Amazon SageMaker Data Wrangler - ノーコードで前処理から学習まで
機械学習用のデータを準備する Amazon SageMaker Data Wrangler - ノーコードで前処理から学習まで
 
Amazon SageMakerでカスタムコンテナを使った学習
Amazon SageMakerでカスタムコンテナを使った学習Amazon SageMakerでカスタムコンテナを使った学習
Amazon SageMakerでカスタムコンテナを使った学習
 
Amazon SageMakerでscikit-learnで作ったモデルのEndpoint作成
Amazon SageMakerでscikit-learnで作ったモデルのEndpoint作成Amazon SageMakerでscikit-learnで作ったモデルのEndpoint作成
Amazon SageMakerでscikit-learnで作ったモデルのEndpoint作成
 
Amazon AthenaでSageMakerを使った推論
Amazon AthenaでSageMakerを使った推論Amazon AthenaでSageMakerを使った推論
Amazon AthenaでSageMakerを使った推論
 
Amazon Athenaで独自の関数を使う Amazon Athena UDF - AthenaでTweetの感情分析
Amazon Athenaで独自の関数を使う Amazon Athena UDF - AthenaでTweetの感情分析Amazon Athenaで独自の関数を使う Amazon Athena UDF - AthenaでTweetの感情分析
Amazon Athenaで独自の関数を使う Amazon Athena UDF - AthenaでTweetの感情分析
 
未来のカタチ x AI
未来のカタチ x AI未来のカタチ x AI
未来のカタチ x AI
 
TorchDataチュートリアル解説
TorchDataチュートリアル解説TorchDataチュートリアル解説
TorchDataチュートリアル解説
 
Amazon SageMaker JumpStart
Amazon SageMaker JumpStartAmazon SageMaker JumpStart
Amazon SageMaker JumpStart
 
Amazon SageMaker Studio Lab紹介
Amazon SageMaker Studio Lab紹介Amazon SageMaker Studio Lab紹介
Amazon SageMaker Studio Lab紹介
 
Amazon SageMaker Canvasを使ったノーコード機械学習
Amazon SageMaker Canvasを使ったノーコード機械学習Amazon SageMaker Canvasを使ったノーコード機械学習
Amazon SageMaker Canvasを使ったノーコード機械学習
 
PMFを目指すプロダクト開発組織が組織拡大するときににやるべきこと
PMFを目指すプロダクト開発組織が組織拡大するときににやるべきことPMFを目指すプロダクト開発組織が組織拡大するときににやるべきこと
PMFを目指すプロダクト開発組織が組織拡大するときににやるべきこと
 
H2O Waveを使ったAIアプリケーション作成入門
H2O Waveを使ったAIアプリケーション作成入門H2O Waveを使ったAIアプリケーション作成入門
H2O Waveを使ったAIアプリケーション作成入門
 

より多く、より良く、より早く 「重複する実験インフラ」

Editor's Notes

  1. 今回は、重複する実験インフラというテーマでお話します。 ユーザに最高のサービスを提供するためにはどうすればよいか、この問いにたいして、明確な答えを持っている人はいないと思います。 もちろんサービス開発に熟練した人の意見をもとにサービスを作るということもありますが、多くの場合、ABテストなどで実験を繰り返し、データを元にアクションを決めることで、最高のサービスに近づけていきます。 つまり、実験でユーザのフィードバックを得て、競合よりも早く改善していくことが、競争に勝つための必要条件となってきているということです。 しかし、ひとえに実験すると言っても、アルゴリズムやUIなど細かいものも含めると実験する対象が多くなりすぎます。 そのため、同時に走らせられる実験の数というのが重要となってきます。 この動画では、大量の実験を同時に重ねるための方法をGoogleの論文を元に紹介しようと思います。 よいサービスを作るために実験を繰り返している人にとって参考になる話となるので、ぜひ最後まで見ていってください。 このチャンネルでは、データサイエンスや開発や経営の話をしていきます。 興味のある人はチャンネル登録をしてもらえると非常に嬉しいです。
  2. 今回は、Web実験を行うために重要な3つの軸More, Better, Fasterについて説明し、既存のWeb実験でよく行われている、Singleyerの実験とMultiFactorial実験、そして、この論文で紹介されている重複した実験について解説します。
  3. 紹介する論文は、「重複するインフラ、より多く、より良い、より早い実験」というタイトルで2010年にgoogleから発表された論文を紹介します。 全部で10ページ程度でシンプルにまとまった論文で大量の実験をするための重要な議論がなされている論文です。 僕もこの論文を読んで、実務においてどのように実験をするといいのかを考えるいいきっかけとなりました。 全部を紹介すると長くなってしまうので、この動画では論文のエッセンスを抽出して説明します。
  4. この論文を書いている人たちが所属するGoogleは、どんな意思決定をするときもデータで決めている、データドリブンの会社ということです。 そして、UXに影響を与える可能性のあるほとんど全ての変更を、実験し評価しているとのことです。 実験の対象となる変更は、ユーザーインターフェースのようなユーザーの目に見える明らかな箇所だけでなく、ランキングやコンテンツ選択に影響を与える可能性のある機械学習アルゴリズムのような、目に見えにくい箇所も含まれているようです。 凄まじい量のパラメータが存在し大量の実験が必要となることが想像できますね。 もちろん、大量の実験の先にはビジネスの成長があります。 Googleでは大量の実験をこなし、なおかつイノベーションを起こすことが求められているようです。 そこで、GoogleではイノベーションについていくためのWeb上での実験のサイクルを整えるために、More, Better, Fasterという3つの軸重視した、重複したインフラを使って実験をしているようです。 この論文は、Googleウェブ検索をベースとして論じた論文ではあるのですが、取り掛かっている問題自体は、他の大規模実験でも当てはまるものだと著者は主張しています。
  5. 大量の実験環境を作るときの軸になるMore, Better, Fasterとはなにかについて簡単に説明します。 まず1つめのMoreでは、多くの実験を同時に行うためのスケーラビリティと、実験の条件を細かく設定できるようなFlexibilityが必要ということを指しています。 2つめのBetterは、妥当かつ悪影響を与えない実験である必要があることを意味しています。 実環境で実験したときに、意味のない実験をしたり変なデータを流してサービスに悪影響を与えてはいけないということですね。 また、実験結果を正しく評価するために、標準化された指標が必要であることもこのBetterに含まれています。 最後3つめのFasterは、実験を簡単かつ迅速に実行しすぐに評価する必要があることを意味しています。 エンジニアでなくても、ノーコードで実験ができる環境などもここに含まれます。 コードを書かない非エンジニアでもできる実験は、多く場合後回しになっていることが多いと思いますが、さすがのGoogle、やはりこの部分も重要視しているようですね。
  6. 次に、一般の実験する仕組みについて説明します。 一般的な実験では、targetとcontrolと2種類の群にわけて実験をします。 Control群ではパラメータをそのままにし、Target群ではパラメータを変更して、両群を比較します。 変更したパラメータ以外のパラメータが一緒であれば、ControlとTargetを比較して出てきた差分は、パラメータを変えたことによる影響と言えるということですね。 例えば、ボタンの色を変えて、Target群のコンバージョン率が高いという結果が出た場合は、ボタンの色がコンバージョンに貢献したということがいえます。 ただし、Controlとtargetの分け方がランダムになるようなランダム配置をしていないと、群の分け方によるバイアスが結果に出てしまうことがあります。 そのため、ランダム配置になるように注意しないといけません。
  7. では、具体的にWeb上での実験はどんなものがあるかを紹介します。 まず一番単純なものとして、Single layerを使用した実験があります。 簡単に言うと、実験を1つのパラメータのみにするというものです。 例えば、検索のアルゴリズムを2種類用意して、ユーザをcontrolとtargetに分けてそれぞれ別のアルゴリズムを適用し比較するようなものです。 Single Layerの実験は、シンプルで簡単なものとなりますが、スケールアップしないという問題があります。
  8. さきほどの、Single Layerでは一つのパラメータのみを実験の対象としていました。 しかし、実際の実験では、複数のパラメータを実験する必要があります。 そこで、複数のパラメータを同時に実験する方法としてmulti factorialな実験があります。 Multi factorialな実験では、パラメータごとにcontrolとtargetを分けます。 それぞれの分け方は直行するように分ける必要があります。 multi-factorialな実験ではパラメータ数の実験を同時に行えるのですが、互いに依存するパラメータを同時に変えたら不具合が起きてしまいます。 例えば、背景色と文字の色を変更する実験をするときに、どちらも同じ色にしてしまうと全く読めなくなってしまいます。 これは、さきほどのMore, Better, Fasterのbetterで述べられていた悪影響となる実験となってしまうということです。 このような実験を実環境でやってしまうと、ユーザからクレームが来てしまいますので、避けなければなりません。
  9. そこで、この論文では、さらに進んだ実験方法として、Overlappingつまり重複した実験を提案しています。 重複した実験では、パラメータ同士で依存関係のないパラメータセットを同時に実験していきます。 依存関係のあるパラメータを同じレイヤーに配置して、レイヤーごとにパラメータを変更します。 レイヤーごとにパラメータを変更するので、同じレイヤーに含まれるパラメータが同時に変更されないようにすることができます。 これによって、最大でレイヤー数の実験を行うことができます。 このアイディア自体は単純なものではありますが、実環境で実験するには、依存関係を考慮した制約が必要不可欠ということですね。
  10. この論文では、Web実験をする仕組みとして、依存関係の見つけ方、各レイヤーの実験を直行させる方法や、実験データの限定の仕方、データの扱い方、そして関連するツールや教育プロセスまで書いてあります。 全部を紹介すると動画が長くなりすぎてしまうので、この動画では省略しますが、非常に参考になる内容なので興味のある方はぜひ元の論文を読んで見てください。
  11. 最後にこの論文では、正確性や完全性以外に実験解析ツールとして重要なことを4つ紹介されています。 1つ目が信頼区間まで算出することです。 十分なデータがあるかどうかや、統計的に優位であるかを知る必要があるということですね。 2つめは、良いUIで表示することです。 見やすいUIが不適切な比較を浮き彫りにしたり、簡単なUIにより容易に比較する条件のへんこうなどをできる必要があるということですね。 3つめはスライシングでの結果をみれるようにすることです。 集約された結果では、部分集合にあるはずの傾向が隠されてしまうことがあります。この現象はシンプソンパラドックスとも呼ばれたりします。 そのため、間違った結論を出さないためにも、スライシングして結果を見る必要があるということです。 4つめは、カスタムメトリクスやスライシングの追加を容易にすることです。 既存のメトリクスやスライシングでは不十分になることがあるため、拡張性を高く設計しておく必要があるということです。 実験をするとなると、どうしても解析結果を出すことに集中してしまいがちですが、ただしい解析結果を柔軟に出せるような環境を整えておくことも大事ということですね。
  12. 今回のまとめをします。 この論文では、More, Better, Fasterという3つの軸を考慮した実験インフラの構築でGoogleがやっている手法について紹介しました。 More, Better, Fasterとは、スケーラブルで柔軟性高く、実環境で悪影響がなく正しく評価でき、迅速かつ簡単に実験ができるようにするということです。 そして、この論文では、Single layerの実験とMulti-factorialな実験を拡張し、重複した実験を提案しています。 重複した実験では、依存関係のあるパラメータを同じレイヤーに入れることで、実環境へ悪影響がおきることをなくしつつ、できる限り多くの実験をできるようにしています。 また、大量の実験を行うためには、利便性や拡張性を設計段階から考えることが重要であることが分かります。 もちろんYAGNIの原則でいわれているように、必要のない実験環境を最初から用意する必要はありません。 シンプルかつ将来的に拡張ができるような設計を心がけるということが大事ということですね。
  13. 最後にチャンネルの紹介をさせてください。 このチャンネルでは、経営やデータサイエンスや開発の話をしていきます。 聞きたい話のリクエストも募集中です。 もし、この動画が役に立ったら高評価とチャンネル登録をお願いいたします。
  14. 実験インフラを整えるだけでは十分では無くて、people-sideも欠かせない。ちゃんと意思決定に繋げられる実験を行ってもらうために、教育はインフラと同程度に重要だ。