rtbgym.envs.simulator.function.WinningPriceDistribution#

class rtbgym.envs.simulator.function.WinningPriceDistribution(n_ads, n_users, ad_feature_dim, user_feature_dim, step_per_episode, standard_bid_price_distribution=(None,), minimum_standard_bid_price=None, random_state=None)[source]#

Class to sample the winning price (i.e., second price) and compare it with the given bid price.

Imported as: rtbgym.envs.simulator.WinningDistribution

Note

Winning price distribution follows gamma distribution.

\[p(x) = x^{k-1} \frac{\exp(- x / \theta)}{\theta^k \Gamma(k)},\]

where \(\Gamma(k) := (k-1)!\) and \(k\) and \(\theta\) are hyperparameters.

Tip

Use BaseWinningPriceDistribution to define a custom WinningPriceDistribution.

Parameters:
  • n_ads (int (> 0)) – Number of ads.

  • n_users (int (> 0)) – Number of users. (This is for API consistency)

  • ad_feature_dim (int (> 0)) – Dimension of the ad feature vectors. (This is for API consistency)

  • user_feature_dim (int (> 0)) – Dimension of the user feature vectors. (This is for API consistency)

  • step_per_episode (int (> 0)) – Length of the CTR trend cycle. (This is for API consistency)

  • standard_bid_price_distribution (NormalDistribution, default=None) – Distribution of the bid price whose average impression probability is expected to be 0.5.

  • minimum_standard_bid_price ({int, float}, default=None (> 0)) – Minimum value for standard bid price. If None, minimum_standard_bid_price is set to standard_bid_price_distribution.mean / 2.

  • random_state (int, default=None (>= 0)) – Random state.

References

Wen-Yuan Zhu, Wen-Yueh Shih, Ying-Hsuan Lee, Wen-Chih Peng, and Jiun-Long Huang. “A Gamma-based Regression for Winning Price Estimation in Real-Time Bidding Advertising.” 2017.

Attributes:
minimum_standard_bid_price
random_state
standard_bid_price

Methods

sample_outcome(bid_prices, ad_ids, user_ids, ...)

Calculate impression probability for given bid price.

sample_outcome(bid_prices, ad_ids, user_ids, ad_feature_vector, user_feature_vector, timestep)[source]#

Calculate impression probability for given bid price.

Parameters:
  • bid_prices (array-like of shape (search_volume, )) – Bid price for each auction.

  • ad_ids (array-like of shape (search_volume/n_samples, )) – Ad ids used for each auction. (This is for API consistency)

  • user_ids (array-like of shape (search_volume/n_samples, )) – User ids used for each auction. (This is for API consistency)

  • ad_feature_vector (array-like of shape (search_volume/n_samples, ad_feature_dim)) – Ad feature vector for each auction.

  • user_feature_vector (array-like of shape (search_volume/n_samples, user_feature_dim)) – User feature vector for each auction.

  • timestep ({int, array-like of shape (n_samples, )}) – Timestep in the RL environment.

Returns:

  • impressions (ndarray of shape (search_volume, )) – Whether impression occurred for each auction.

  • winning_prices (ndarray of shape (search_volume, )) – Sampled winning price for each auction.

Return type:

Tuple[ndarray]

Methods