---
title: "マルチアームバンディット計算の理解"
slug: "understanding-multi-armed-bandit-calculations"
abstract: "最適化テスト(Sitecore Personalize)に適用されるマルチアームバンディットアルゴリズムを説明しています。"
---
# マルチアームバンディット計算の理解

Sitecore Personalizeは、最適化されたテストを行った実験でマルチアームバンディットアルゴリズムを実行する際に [トンプソンサンプリング](https://en.wikipedia.org/wiki/Thompson_sampling#:~:text=Thompson%20sampling%2C%20named%20after%20William,to%20a%20randomly%20drawn%20belief.) ヒューリスティック技術を適用します。

Sitecore Personalizeテスト期間中、各バリアントに最低1%のトラフィックを適用します。Personalize 1%のベースラインを適用して、すべてのバリアントを継続的にサービス・探索し、訪問者の行動の急激な変化に動的に対応します。マルチアームバンディットアルゴリズムは残りのトラフィックの割合で動作します。

最適化テストの実験が始まると、Sitecore Personalize各バリアントに偶数重みを適用します。

以下の手順では、マルチアームバンディットアルゴリズムがSitecore Personalizeでどのように動作するかを概説します。

マルチアームドバンディットアルゴリズム:

1.  最初の期間は、重みによって決定されたランダムなトラフィック割合に各バリアントを表示してテストを実施します。
    
2.  各バリアントが表示された回数(インプレッション)およびその期間中の変換回数を収集・保存します。
    
3.  コンバージョン数とインプレッション数を (p) コンバージョン数とインプレッションの合計に (q) 加算します。
    
4.  各変異の後方分布を次の式に従って計算します:
    
    Posterior = Beta(p, q+1)ここでBetaはベータ関数です。
    
5.  新しいバリアント重みを決定するためにモンテカルロ計算を実行します。計算では、各バリアントのステップ数(N\_MC)と、前ステップで計算された各バリアントの最新の後方分布をアルゴリズムに入力します。 N\_MCはすべてのテストに共通する固定パラメータであり、研究によって決定されます。モンテカルロ計算:
    
    :::文字で
    
    1.  カウントを0に初期化します。
    2.  各バリアントの分布からランダムサンプルを抽出し、 N 乱数を得ます。
    3.  サンプリングされた数字のうちどれが最も高いかを判定し、最も高いサンプリング番号を持つバリアントの勝利数を1増加させます。
    4.  ステップbとcを N\_MC 回繰り返します。
    5.  新しい重みを VAR\_N\_WEIGHT = VAR\_N\_WIN\_COUNT / N\_MC % 計算します :::
6.  モンテカルロ計算の重みを更新し、ステップ2から5までを繰り返します。