🗒️

24/07/29 ~ 24/08/04 Weekly Report

2024/08/05に公開

はじめに

この一週間に学んだ内容や私生活について、備忘録として残していこうと思います。

Input

Books

  1. データエンジニアリングの基礎
    引き続き読み進めている。寝る前の読書として読んでいるが、内容が網羅的かつ文字ベースなので知識定着が難しい構成だと思い始めている。
    DMBOKほどではないが、内容を全て頭に詰め込むのは難しいので、一度読んだ後はリファレンス的に活用していくと良いのかと思ってます。
  • 5章 ソースシステムにおけるデータ生成

    • データエンジニアリングの最初のステージは、ソースシステムからデータを取得すること。データはどこに存在し、どのように生成されているのか、その特徴や癖を理解することが重要。
    • データソースは、Webサイト、モバイルアプリケーション、IoTデバイス、クレジットカード端末など、多岐にわたる。
    • データエンジニアは、ソースシステム、データ生成方法、ファイルフォーマット、API、データベース、ログなどを理解する必要がある。
    • データベースには、RDBMS、NoSQL、グラフデータベースなど、さまざまな種類がある。
    • イベント駆動アーキテクチャでは、メッセージキューやイベントストリーミングプラットフォームを使用して、データの生成と消費を非同期に行う。
    • データエンジニアは、システム利害関係者やデータ利害関係者など、ソースシステムに関連する人々と協力する必要がある。
  • 6章 ストレージへの保存

    • ストレージは、データエンジニアリングライフサイクル全体で使用される重要な要素です。データエンジニアは、ディスクドライブ、メモリ、ネットワークなどのストレージの基礎となる要素を理解する必要がある。
    • ストレージシステムには、ファイルストレージ、ブロックストレージ、オブジェクトストレージなど、さまざまな種類がある。
    • キャッシュは、頻繁にアクセスされるデータを高速にアクセスできる場所に保存することで、ストレージシステムの性能を向上させる。
    • データエンジニアは、データカタログ、データ共有、データの複製、コンピュートとストレージの分離、データストレージのライフサイクルとデータ保持、シングルテナントとマルチテナントなど、ストレージの重要な概念を理解する必要がある。
    • セキュリティ、データ管理、データの複製、オーケストレーション、ソフトウェアエンジニアリングは、ストレージに影響を与える可能性のある重要な考慮事項。
  1. ウェブ最適化ではじめる機械学習
    読了。
    全体の内容として、A/Bテストを例にベイズ統計による仮説検定の基本を解説し、その後確率的プログラミングやバンディットアルゴリズムといったより高度な手法を導入していく構成といました。
    また、ユーザーの行動分析からウェブサイトのデザイン、さらには長期的な収益に繋がる改善策の検討まで、ウェブサイトの最適化につながるような分析手法を説明されていました。
    因果推論や強化学習、最適化などの手法を適応しつつ、モデリングというよりはアドホックに定量的な分析を行うアナリスト向けの書籍として位置づけられるのではないかと思います。
    書籍自体は2020年発売というところで多少古いところはありますが、3章まではPyMC関連でコードエラーが発生していたが、それ以降の章については特に問題なく動作しました。
  • 4章 メタヒューリスティクス:統計モデルを使わない最適化手法

    • これまでの章では、統計モデルを用いて複数のデザイン案のパフォーマンスを比較する手法を検討してきた。最もパフォーマンスの高いデザイン案を見つけることだけが目的であれば、統計モデルを用いずに、より良い評価値を持つ解を探索する方法もある。
    • 単純な探索手法として山登り法があり、これは現在の解の近傍解の中で最も評価値が高いものに移動することを繰り返すアルゴリズムである。
    • 山登り法は単純でわかりやすいが、局所最適解に陥りやすいという欠点がある。
    • 局所最適解から抜け出すための方法として、乱択山登り法焼きなまし法がある。
    • 遺伝的アルゴリズムは、生物の進化過程を模倣したメタヒューリスティクスのひとつである。解を遺伝子で表現し、交叉や突然変異などの操作を繰り返すことで、より良い評価値を持つ解を探索する。
    • メタヒューリスティクスは、複雑な形状の目的関数に対して適用できるだけでなく、人間が評価を与えるような問題にも応用できる。
  • 5章 バンディットアルゴリズム:テスト中の損失にも向き合う

    • 多腕バンディット問題とは、複数の選択肢(腕)から報酬が得られる確率が異なるスロットマシン(バンディット)が複数ある場合に、どの腕を何回引くかを決定する問題である。
    • ウェブ最適化においては、複数のデザイン案の中から、最もクリック率の高いものを選択する問題として定式化できる。
    • 単純なアルゴリズムとして、ε-greedyアルゴリズムソフトマックスアルゴリズムがある。
    • ε-greedyアルゴリズムは、一定の確率でランダムに腕を選択し、それ以外の確率でそれまでにもっとも報酬の期待値が高いと推定される腕を選択する。
    • ソフトマックスアルゴリズムは、各腕の報酬の期待値に基づいて確率的に腕を選択する。
    • トンプソン抽出は、各腕の報酬の期待値に関する事後分布に基づいて、確率的に腕を選択する。
    • UCBアルゴリズムは、各腕の報酬の期待値の信頼区間の上限が最大となる腕を選択する。
  • 6章 組合せのバンディット:バンディットアルゴリズムと統計モデルの出会い

    • これまでの章で扱ってきたバンディットアルゴリズムは、選択肢が独立であることを前提としていたが、現実の問題では選択肢が何らかの特徴量を持つ場合がある。
    • このような問題設定を、文脈付きバンディット問題と呼ぶ。
    • 文脈付きバンディット問題の解法として、線形モデルとバンディットアルゴリズムを組み合わせた手法がある。
    • 線形モデルのパラメータを推定する方法として、ベイズ線形回帰がある。
  • 7章 ベイズ最適化:連続値の解空間に挑む

    • これまでの章では、選択肢が離散的な値をとる場合を扱ってきたが、現実の問題では連続的な値をとる場合がある。
    • このような問題設定に対して、ベイズ最適化が有効である。
    • ベイズ最適化は、ガウス過程を用いて、未知の目的関数をモデル化する。
    • ベイズ最適化を用いることで、少ない試行回数で、効率的に最適な解を探索することができる。
  • 8章 これからのウェブ最適化

    • これまでの章で紹介したウェブ最適化の手法は、ユーザの即時的な反応を最適化することを前提としていたが、ユーザと長期的な関係を構築することが重要な場合もある。
    • 長期的な視点を取り入れたウェブ最適化の手法として、リピートユーザを考慮した最適化強化学習を用いた手法がある。
    • また、最適化の対象となる解空間のデザインも重要である。
    • ウェブサイト以外への応用としては、インターネットにつながる製品が増加しており、これらの製品の最適化にもウェブ最適化の方法論が応用できると考えられる。

Blogs

kaggle

Media

Service

  • Google AI Studio
    Googleが提供している生成モデルをプロトタイピングできるサービス。Gemma 2Bが軽量なのに普通に日本語で対話できてすごい(語彙力)
  • SAM2:Segment Anything in Images and Videos
    Metaがリリースした画像セグメントのOSSモデル。ipynb形式で公開されていたのでColabで使ってみたが、普通に良さそう。早いうちに記事化したい。

Task

Discussion