new feature: is_factorizable option in SyntheticSlateBanditDataset #100
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
new feature
is_factorizable
option:is_factorizable=True
, the action at each slot is sampled independently from other items (i.e., :math:pi(a_k | x)
). Using this option, the actions in a slate may be duplicated. (newly implemented one to avoid computation cost to calculate pscore)is_factorizable=False
, the action at each slot is sampled dependently on the former items (i.e., :math:pi(a_k | x, a_1, \ldots, a_{k-1})
). Using this option, the actions in a slate will not be duplicated. (originally implemented one)https://github.com/aiueola/zr-obp/blob/ea995f4337b94945baac7aa6547e36bd7e6d69d5/obp/dataset/synthetic_slate.py#L97
is_factorizable
option..sample_action_and_obtain_pscore()
https://github.com/aiueola/zr-obp/blob/ea995f4337b94945baac7aa6547e36bd7e6d69d5/obp/dataset/synthetic_slate.py#L496
.obtain_pscore_given_evaluation_policy_logit()
https://github.com/aiueola/zr-obp/blob/ea995f4337b94945baac7aa6547e36bd7e6d69d5/obp/dataset/synthetic_slate.py#L399
.calc_ground_truth_policy_value()
https://github.com/aiueola/zr-obp/blob/ea995f4337b94945baac7aa6547e36bd7e6d69d5/obp/dataset/synthetic_slate.py#L815
.generate_evaluation_policy_pscore()
https://github.com/aiueola/zr-obp/blob/ea995f4337b94945baac7aa6547e36bd7e6d69d5/obp/dataset/synthetic_slate.py#L884
refactor
evaluation_policy_logit
toevaluation_policy_logit_
as there existed bothevaluation_policy_logit
andevaluation_policy_logit_
for the different functions with the same meaning.tests
is_factorizable
option.others