openasce.extension.debias package

class openasce.extension.debias.CFRModel(params: Dict)[source]

Bases: CausalDebiasModel

Building a CFR model.

Model: CFR (CounterFactual Regression).

Paper: Estimating individual treatment effect: generalization bounds and algorithms.

Link: http://proceedings.mlr.press/v70/shalit17a/shalit17a.pdf.

Author: Uri Shalit, Fredrik D. Johansson and David Sontag.

Initialize.

Parameters

params – parameter dict.

__init__(params: Dict) None[source]

Initialize.

Parameters

params – parameter dict.

forward(x: Tensor, c: Dict[str, Tensor], training: bool) Dict[str, Tensor][source]
get_optimizer()[source]

Build the optimizer.

Args:

Returns

An optimizer.

loss(predictions: Dict, labels: Tensor)[source]

Compute scalar loss tensors with respect to provided labels.

Parameters
  • predictions – a dictionary holding predicted tensors.

  • labels – label tensor.

Returns

A scalar loss or A dictionary mapping strings (loss names) to scalar loss.

property trainable_variables
class openasce.extension.debias.DICEDebiasModel(params: Dict)[source]

Bases: CausalDebiasModel

Building a DICE model.

Model: DICE (Disentangling Interest and Conformity with Causal Embedding).

Link: https://arxiv.org/pdf/2006.11011.pdf.

Author: Yu Zheng, Chen Gao, Xiang Li, Xiangnan He, Depeng Jin, Yong Li.

Initialize.

Parameters

params – parameter dict.

__init__(params: Dict) None[source]

Initialize.

Parameters

params – parameter dict.

forward(x: Tensor, c: Dict[str, Tensor], training: bool) Dict[str, Tensor][source]
get_optimizer()[source]

Build the optimizer.

Args:

Returns

An optimizer.

loss(predictions: Dict, labels: Tensor)[source]

Compute scalar loss tensors with respect to provided labels.

Parameters
  • predictions – a dictionary holding prediction tensors, where logits_interest: model output logits tensor. logits_conformity: model output logits tensor. logits_click: model output logits tensor. conformity_emb: model output conformity_emb tensor. interest_emb: model output interest_emb tensor. mask: indicate the instance belong to interest or conformity, 1 means interest, 0 means conformity.

  • labels – label tensor dict.

Returns

A scalar loss or A dictionary mapping strings (loss names) to scalar loss.

property trainable_variables
class openasce.extension.debias.DMBRDebiasModel(params: Dict)[source]

Bases: CausalDebiasModel

Building a DMBR model.

Model: DMBR (De-Matching Bias Recommendation).

Paper: Alleviating Matching Bias in Marketing Recommendations.

Link: https://dl.acm.org/doi/abs/10.1145/3539618.3591854.

Author: Junpeng Fang, Qing Cui, Gongduo Zhang, Caizhi Tang, Lihong Gu, Longfei Li, Jinjie Gu, Jun Zhou, Fei Wu.

Initialize.

Parameters

params – parameter dict.

__init__(params: Dict) None[source]

Initialize.

Parameters

params – parameter dict.

forward(x: Tensor, c: Dict[str, Tensor], training: bool) Dict[str, Tensor][source]
get_optimizer()[source]

Build the optimizer.

Args:

Returns

An optimizer.

loss(predictions: Dict, labels: Tensor)[source]

Compute scalar loss tensors with respect to provided labels.

Parameters
  • predictions – a dictionary holding predicted tensors.

  • labels – label tensor dict.

Returns

A scalar loss or A dictionary mapping strings (loss names) to scalar loss.

property trainable_variables
class openasce.extension.debias.DRDebiasModel(hidden_units: Dict, min_propensity: float = 0.01, t_is_multi_class: bool = False, t_as_feature: bool = False, lr: float = 0.1, name: str = 'dr_debias')[source]

Bases: CausalDebiasModel

Doubly Robust Model for Debiasing Exposure/Post-click.

Model: DR (Doubly robust)

Paper: Doubly robust joint learning for recommendation on data missing not at random[C].

Link: https://proceedings.mlr.press/v97/wang19n.html.

Author: Wang X, Zhang R, Sun Y, et al.

Initialize.

Parameters
  • hidden_units (dict) – list of positive integer, the layer number and units in each layer.

  • min_propensity (float) – The minimum propensity at which to clip propensity estimates to avoid dividing by zero.

  • t_is_multi_class (bool) – wether the treatment label is multi-class.

  • t_as_feature (bool) – wether the treatment is observed feature.

  • lr (float) – learning rate

__init__(hidden_units: Dict, min_propensity: float = 0.01, t_is_multi_class: bool = False, t_as_feature: bool = False, lr: float = 0.1, name: str = 'dr_debias') None[source]

Initialize.

Parameters
  • hidden_units (dict) – list of positive integer, the layer number and units in each layer.

  • min_propensity (float) – The minimum propensity at which to clip propensity estimates to avoid dividing by zero.

  • t_is_multi_class (bool) – wether the treatment label is multi-class.

  • t_as_feature (bool) – wether the treatment is observed feature.

  • lr (float) – learning rate

forward(x: Tensor, c: Dict[str, Tensor], training: bool) Dict[str, Tensor][source]
get_optimizer(lr: float = 0.01)[source]

Build the optimizer.

Args:

Returns

An optimizer.

loss(predictions: Dict, labels: List[Tensor])[source]
property trainable_variables
class openasce.extension.debias.FAIRCODebiasModel(params: Dict)[source]

Bases: CausalDebiasModel

Building a FAIRCO model.

Model: FAIRCO (Inverse Probability Weighting).

Paper: Controlling Fairness and Bias in Dynamic Learning-to-Rank.

Link: https://arxiv.org/pdf/2005.14713.pdf.

Author: Marco Morik, Ashudeep Singh, Jessica Hong, and Thorsten Joachims.

Initialize.

Parameters

params – parameter dict.

__init__(params: Dict) None[source]

Initialize.

Parameters

params – parameter dict.

forward(x: Tensor, c: Dict[str, Tensor], training: bool) Dict[str, Tensor][source]
get_optimizer()[source]

Build the optimizer.

Args:

Returns

An optimizer.

loss(predictions: Dict, labels: Tensor)[source]

Compute scalar loss tensors with respect to provided labels.

Parameters
  • predictions – a dictionary holding predicted tensors.

  • labels – label tensor dict.

Returns

A scalar loss or A dictionary mapping strings (loss names) to scalar loss.

property trainable_variables
class openasce.extension.debias.IPSDebiasModel(hidden_units: Dict, min_propensity: float = 0.01, alpha: float = 0.1, lr: float = 0.1, name: str = 'ips_debias')[source]

Bases: CausalDebiasModel

Inverse Propensity Score Model of the causal debias.

Model: IPS (Inverse Propensity Score)

Paper: Estimating causal effects from large data sets using propensity scores[J].

Author: Rubin, Donald B.

Initialize.

Parameters
  • hidden_units (dict) – list of positive integer, the layer number and units in each layer.

  • min_propensity (float) – The minimum propensity at which to clip propensity estimates to avoid dividing by zero.

  • alpha (float) – hyperparameters of propensity loss

__init__(hidden_units: Dict, min_propensity: float = 0.01, alpha: float = 0.1, lr: float = 0.1, name: str = 'ips_debias') None[source]

Initialize.

Parameters
  • hidden_units (dict) – list of positive integer, the layer number and units in each layer.

  • min_propensity (float) – The minimum propensity at which to clip propensity estimates to avoid dividing by zero.

  • alpha (float) – hyperparameters of propensity loss

forward(x: Tensor, c: Dict[str, Tensor], training: bool) Dict[str, Tensor][source]
get_optimizer(lr: float = 0.01)[source]

Build the optimizer.

Args:

Returns

An optimizer.

loss(predictions: Dict, labels: List[Tensor])[source]
property trainable_variables
class openasce.extension.debias.IPWDebiasModel(params: Dict)[source]

Bases: CausalDebiasModel

Building a IPW model.

Model: IPW (Inverse Probability Weighting).

Paper: Inverse probability weighted estimation for general missing data problems.

Link: https://www.econstor.eu/bitstream/10419/79298/1/386079048.pdf.

Author: Jeffrey M. Wooldridge.

Initialize.

Parameters

params – parameter dict.

__init__(params: Dict) None[source]

Initialize.

Parameters

params – parameter dict.

forward(x: Tensor, c: Dict[str, Tensor], training: bool) Dict[str, Tensor][source]
get_optimizer()[source]

Build the optimizer.

Args:

Returns

An optimizer.

loss(predictions: Dict, labels: Tensor)[source]

Compute scalar loss tensors with respect to provided labels.

Parameters
  • predictions – a dictionary holding predicted tensors.

  • labels – label tensor dict.

Returns

A scalar loss or A dictionary mapping strings (loss names) to scalar loss.

property trainable_variables
class openasce.extension.debias.MACRDebiasModel(params: Dict)[source]

Bases: CausalDebiasModel

Building a MACR model.

Model: MACR (Model-Agnostic Counterfactual Reasoning).

Paper: Model-agnostic counterfactual reasoning for eliminating popularity bias in recommender system.

Link: https://arxiv.org/pdf/2010.15363.pdf.

Author: Tianxin Wei, Fuli Feng, Jiawei Chen, Ziwei Wu, Jinfeng Yi and Xiangnan He.

__init__(params: Dict) None[source]
forward(x: Tensor, c: Dict[str, Tensor], training: bool) Dict[str, Tensor][source]
get_optimizer()[source]

Build the optimizer.

Args:

Returns

An optimizer.

loss(predictions: Dict, labels: Tensor)[source]

Compute scalar loss tensors with respect to provided labels.

Parameters
  • predictions – a dictionary holding predicted tensors.

  • labels – label tensor dict.

Returns

A scalar loss or A dictionary mapping strings (loss names) to scalar loss.

property trainable_variables
class openasce.extension.debias.PDADebiasModel(params: Dict)[source]

Bases: CausalDebiasModel

Building a PDA model.

Model: PDA (Popularity-bias Deconfounding and Adjusting).

Link: https://arxiv.org/pdf/2105.06067.pdf.

Author: Yang Zhang, Fuli Feng, Xiangnan He, Tianxin Wei, Chonggang Song, Guohui Ling and Yongdong Zhang.

Initialize.

Parameters

params – parameter dict.

__init__(params: Dict) None[source]

Initialize.

Parameters

params – parameter dict.

forward(x: Tensor, c: Dict[str, Tensor], training: bool) Dict[str, Tensor][source]
get_optimizer()[source]

Build the optimizer.

Args:

Returns

An optimizer.

loss(predictions: Dict, labels: Tensor)[source]

Compute scalar loss tensors with respect to provided labels.

Parameters
  • predictions – a dictionary holding predicted tensors.

  • labels – label tensor dict.

  • x – the original input.

Returns

A scalar loss or A dictionary mapping strings (loss names) to scalar loss.

property trainable_variables

Subpackages

Submodules

openasce.extension.debias.cfr module

class openasce.extension.debias.cfr.CFRModel(params: Dict)[source]

Bases: CausalDebiasModel

Building a CFR model.

Model: CFR (CounterFactual Regression).

Paper: Estimating individual treatment effect: generalization bounds and algorithms.

Link: http://proceedings.mlr.press/v70/shalit17a/shalit17a.pdf.

Author: Uri Shalit, Fredrik D. Johansson and David Sontag.

Initialize.

Parameters

params – parameter dict.

__init__(params: Dict) None[source]

Initialize.

Parameters

params – parameter dict.

forward(x: Tensor, c: Dict[str, Tensor], training: bool) Dict[str, Tensor][source]
get_optimizer()[source]

Build the optimizer.

Args:

Returns

An optimizer.

loss(predictions: Dict, labels: Tensor)[source]

Compute scalar loss tensors with respect to provided labels.

Parameters
  • predictions – a dictionary holding predicted tensors.

  • labels – label tensor.

Returns

A scalar loss or A dictionary mapping strings (loss names) to scalar loss.

property trainable_variables

openasce.extension.debias.debias_ips module

class openasce.extension.debias.debias_ips.IPSDebiasModel(hidden_units: Dict, min_propensity: float = 0.01, alpha: float = 0.1, lr: float = 0.1, name: str = 'ips_debias')[source]

Bases: CausalDebiasModel

Inverse Propensity Score Model of the causal debias.

Model: IPS (Inverse Propensity Score)

Paper: Estimating causal effects from large data sets using propensity scores[J].

Author: Rubin, Donald B.

Initialize.

Parameters
  • hidden_units (dict) – list of positive integer, the layer number and units in each layer.

  • min_propensity (float) – The minimum propensity at which to clip propensity estimates to avoid dividing by zero.

  • alpha (float) – hyperparameters of propensity loss

__init__(hidden_units: Dict, min_propensity: float = 0.01, alpha: float = 0.1, lr: float = 0.1, name: str = 'ips_debias') None[source]

Initialize.

Parameters
  • hidden_units (dict) – list of positive integer, the layer number and units in each layer.

  • min_propensity (float) – The minimum propensity at which to clip propensity estimates to avoid dividing by zero.

  • alpha (float) – hyperparameters of propensity loss

forward(x: Tensor, c: Dict[str, Tensor], training: bool) Dict[str, Tensor][source]
get_optimizer(lr: float = 0.01)[source]

Build the optimizer.

Args:

Returns

An optimizer.

loss(predictions: Dict, labels: List[Tensor])[source]
property trainable_variables

openasce.extension.debias.dice module

class openasce.extension.debias.dice.DICEDebiasModel(params: Dict)[source]

Bases: CausalDebiasModel

Building a DICE model.

Model: DICE (Disentangling Interest and Conformity with Causal Embedding).

Link: https://arxiv.org/pdf/2006.11011.pdf.

Author: Yu Zheng, Chen Gao, Xiang Li, Xiangnan He, Depeng Jin, Yong Li.

Initialize.

Parameters

params – parameter dict.

__init__(params: Dict) None[source]

Initialize.

Parameters

params – parameter dict.

forward(x: Tensor, c: Dict[str, Tensor], training: bool) Dict[str, Tensor][source]
get_optimizer()[source]

Build the optimizer.

Args:

Returns

An optimizer.

loss(predictions: Dict, labels: Tensor)[source]

Compute scalar loss tensors with respect to provided labels.

Parameters
  • predictions – a dictionary holding prediction tensors, where logits_interest: model output logits tensor. logits_conformity: model output logits tensor. logits_click: model output logits tensor. conformity_emb: model output conformity_emb tensor. interest_emb: model output interest_emb tensor. mask: indicate the instance belong to interest or conformity, 1 means interest, 0 means conformity.

  • labels – label tensor dict.

Returns

A scalar loss or A dictionary mapping strings (loss names) to scalar loss.

property trainable_variables

openasce.extension.debias.dmbr module

class openasce.extension.debias.dmbr.DMBRDebiasModel(params: Dict)[source]

Bases: CausalDebiasModel

Building a DMBR model.

Model: DMBR (De-Matching Bias Recommendation).

Paper: Alleviating Matching Bias in Marketing Recommendations.

Link: https://dl.acm.org/doi/abs/10.1145/3539618.3591854.

Author: Junpeng Fang, Qing Cui, Gongduo Zhang, Caizhi Tang, Lihong Gu, Longfei Li, Jinjie Gu, Jun Zhou, Fei Wu.

Initialize.

Parameters

params – parameter dict.

__init__(params: Dict) None[source]

Initialize.

Parameters

params – parameter dict.

forward(x: Tensor, c: Dict[str, Tensor], training: bool) Dict[str, Tensor][source]
get_optimizer()[source]

Build the optimizer.

Args:

Returns

An optimizer.

loss(predictions: Dict, labels: Tensor)[source]

Compute scalar loss tensors with respect to provided labels.

Parameters
  • predictions – a dictionary holding predicted tensors.

  • labels – label tensor dict.

Returns

A scalar loss or A dictionary mapping strings (loss names) to scalar loss.

property trainable_variables

openasce.extension.debias.doubly_robust module

class openasce.extension.debias.doubly_robust.DRDebiasModel(hidden_units: Dict, min_propensity: float = 0.01, t_is_multi_class: bool = False, t_as_feature: bool = False, lr: float = 0.1, name: str = 'dr_debias')[source]

Bases: CausalDebiasModel

Doubly Robust Model for Debiasing Exposure/Post-click.

Model: DR (Doubly robust)

Paper: Doubly robust joint learning for recommendation on data missing not at random[C].

Link: https://proceedings.mlr.press/v97/wang19n.html.

Author: Wang X, Zhang R, Sun Y, et al.

Initialize.

Parameters
  • hidden_units (dict) – list of positive integer, the layer number and units in each layer.

  • min_propensity (float) – The minimum propensity at which to clip propensity estimates to avoid dividing by zero.

  • t_is_multi_class (bool) – wether the treatment label is multi-class.

  • t_as_feature (bool) – wether the treatment is observed feature.

  • lr (float) – learning rate

__init__(hidden_units: Dict, min_propensity: float = 0.01, t_is_multi_class: bool = False, t_as_feature: bool = False, lr: float = 0.1, name: str = 'dr_debias') None[source]

Initialize.

Parameters
  • hidden_units (dict) – list of positive integer, the layer number and units in each layer.

  • min_propensity (float) – The minimum propensity at which to clip propensity estimates to avoid dividing by zero.

  • t_is_multi_class (bool) – wether the treatment label is multi-class.

  • t_as_feature (bool) – wether the treatment is observed feature.

  • lr (float) – learning rate

forward(x: Tensor, c: Dict[str, Tensor], training: bool) Dict[str, Tensor][source]
get_optimizer(lr: float = 0.01)[source]

Build the optimizer.

Args:

Returns

An optimizer.

loss(predictions: Dict, labels: List[Tensor])[source]
property trainable_variables

openasce.extension.debias.fairco module

class openasce.extension.debias.fairco.FAIRCODebiasModel(params: Dict)[source]

Bases: CausalDebiasModel

Building a FAIRCO model.

Model: FAIRCO (Inverse Probability Weighting).

Paper: Controlling Fairness and Bias in Dynamic Learning-to-Rank.

Link: https://arxiv.org/pdf/2005.14713.pdf.

Author: Marco Morik, Ashudeep Singh, Jessica Hong, and Thorsten Joachims.

Initialize.

Parameters

params – parameter dict.

__init__(params: Dict) None[source]

Initialize.

Parameters

params – parameter dict.

forward(x: Tensor, c: Dict[str, Tensor], training: bool) Dict[str, Tensor][source]
get_optimizer()[source]

Build the optimizer.

Args:

Returns

An optimizer.

loss(predictions: Dict, labels: Tensor)[source]

Compute scalar loss tensors with respect to provided labels.

Parameters
  • predictions – a dictionary holding predicted tensors.

  • labels – label tensor dict.

Returns

A scalar loss or A dictionary mapping strings (loss names) to scalar loss.

property trainable_variables

openasce.extension.debias.ipw module

class openasce.extension.debias.ipw.IPWDebiasModel(params: Dict)[source]

Bases: CausalDebiasModel

Building a IPW model.

Model: IPW (Inverse Probability Weighting).

Paper: Inverse probability weighted estimation for general missing data problems.

Link: https://www.econstor.eu/bitstream/10419/79298/1/386079048.pdf.

Author: Jeffrey M. Wooldridge.

Initialize.

Parameters

params – parameter dict.

__init__(params: Dict) None[source]

Initialize.

Parameters

params – parameter dict.

forward(x: Tensor, c: Dict[str, Tensor], training: bool) Dict[str, Tensor][source]
get_optimizer()[source]

Build the optimizer.

Args:

Returns

An optimizer.

loss(predictions: Dict, labels: Tensor)[source]

Compute scalar loss tensors with respect to provided labels.

Parameters
  • predictions – a dictionary holding predicted tensors.

  • labels – label tensor dict.

Returns

A scalar loss or A dictionary mapping strings (loss names) to scalar loss.

property trainable_variables

openasce.extension.debias.macr module

class openasce.extension.debias.macr.MACRDebiasModel(params: Dict)[source]

Bases: CausalDebiasModel

Building a MACR model.

Model: MACR (Model-Agnostic Counterfactual Reasoning).

Paper: Model-agnostic counterfactual reasoning for eliminating popularity bias in recommender system.

Link: https://arxiv.org/pdf/2010.15363.pdf.

Author: Tianxin Wei, Fuli Feng, Jiawei Chen, Ziwei Wu, Jinfeng Yi and Xiangnan He.

__init__(params: Dict) None[source]
forward(x: Tensor, c: Dict[str, Tensor], training: bool) Dict[str, Tensor][source]
get_optimizer()[source]

Build the optimizer.

Args:

Returns

An optimizer.

loss(predictions: Dict, labels: Tensor)[source]

Compute scalar loss tensors with respect to provided labels.

Parameters
  • predictions – a dictionary holding predicted tensors.

  • labels – label tensor dict.

Returns

A scalar loss or A dictionary mapping strings (loss names) to scalar loss.

property trainable_variables

openasce.extension.debias.pda module

class openasce.extension.debias.pda.PDADebiasModel(params: Dict)[source]

Bases: CausalDebiasModel

Building a PDA model.

Model: PDA (Popularity-bias Deconfounding and Adjusting).

Link: https://arxiv.org/pdf/2105.06067.pdf.

Author: Yang Zhang, Fuli Feng, Xiangnan He, Tianxin Wei, Chonggang Song, Guohui Ling and Yongdong Zhang.

Initialize.

Parameters

params – parameter dict.

__init__(params: Dict) None[source]

Initialize.

Parameters

params – parameter dict.

forward(x: Tensor, c: Dict[str, Tensor], training: bool) Dict[str, Tensor][source]
get_optimizer()[source]

Build the optimizer.

Args:

Returns

An optimizer.

loss(predictions: Dict, labels: Tensor)[source]

Compute scalar loss tensors with respect to provided labels.

Parameters
  • predictions – a dictionary holding predicted tensors.

  • labels – label tensor dict.

  • x – the original input.

Returns

A scalar loss or A dictionary mapping strings (loss names) to scalar loss.

property trainable_variables