美文网首页因果推断推荐工具箱
因果推断推荐系统工具箱 - CauSeR(二)

因果推断推荐系统工具箱 - CauSeR(二)

作者: processor4d | 来源:发表于2021-11-28 14:25 被阅读0次

    文章名称

    【CIKM-2021】【CS Research, New Delhi, India】CauSeR: Causal Session-based Recommendations for Handling Popularity Bias

    核心要点

    文章旨在解决Session-Based推荐场景下Popularity带来的Bias对长尾物品推荐的影响。流行物品的过渡曝光影响了长尾物品的曝光,并且这种偏差会在模型训练过程中不断被放大。作者认为这种影响在1)数据收集;2)魔性训练两个阶段都会有影响。数据收集时的偏差源于Popularity带来的Conformity Bias,而模型训练时的偏差来源于样本不平衡导致的偏差(可以理解为传统的Popularity Bias)。不同于现有方法,作者考虑联合解决两种偏差。

    上一节介绍了CauSeR模型解决的问题背景和形式化,本节继续介绍模型的训练和预测。

    方法细节

    问题引入

    如前所述,SRS的整个建模过程收到了数据收集和训练两个阶段的偏差影响。两个过程的因果图,如下所示。作者认为,为了纠正偏差,需要做的就是同时估计S, IY的直接因果效应(有些同学可能在想,为啥不是估计I \rightarrow R \rightarrow Y,因为我们希望得到的是这个因果效应。是的,但这个值不如估计直接因果效应简单,我们只需要估计全部的因果效应,并从其中去除掉DE,即可以得到IDE)。

    Causal Graphs

    作者把SY的直接因果效应建模为P(Y|do(S), I),而IY的直接(我理解应该是IDE,也就是通过相关性产生的)因果效应建模为P(Y|I)。并且,把SRS的整体预估模型建模为P(Y|do(S), I) * (P(Y|I))^\beta(这里\beta小于1,用来调节Conformity Bias,因为Conformity Bias让流行的物品具有更高的被点击概率)

    具体做法

    Training

    P(Y|do(S), I)

    作者利用如下图示的的公式,估计P(Y|do(S), I),其中\textbf{s}是session的嵌入表示,\textbf{i}_j表示的是第j个物品的嵌入表示,\textbf{d} = \hat{\textbf{d}}cos(s, \hat{\textbf{d}})||\textbf{s}||, \hat{\textbf{d}} = \frac{\overline{s}}{||\overline{s}||}, \overline{s} = \mu.\overline{s}_{t-1} + \overline{s}_t表示session embedding在头部物品方向的投影,s_t是session embedding在t时刻的平均值(感觉原作写的可能有误,s_t是session embedding在t时刻的?而非平均),\overline{s}_t是session embedding在整个过程中的加权平均(类似动量,利用\mu做了滑动平均)。

    𝑃(𝑌|𝑑𝑜(𝑆),𝐼)

    作者利用[1]中的多头方法,把物品的各个维度和session embedding的各个维度平均分为K个组,可以被看做是从M中采样的K个值。最终,P(Y|do(S), I)的logits可以表示为如下图所示的公式。

    𝑃(𝑌|𝑑𝑜(𝑆),𝐼) logits

    其中\tau为缩放超参数(应该就是softmax里的Temprature),s = f(I_s; \theta)表示利用SRS backbone模型f计算session的embedding(作者利用SR-GNN作为这个backbone),\theta是backbone模型的参数,I_s = [i_{s,1},...,i_{s,l}]^\top表示在当前session,用户行为序列中各个物品embedding。

    P(Y|I)

    P(Y|I)的logits如下图所示,其中\textbf{w}是可训练的参数。

    P(Y|I) logits

    综上,\hat{\textbf{y}}_{s,j} = softmax([Y|do(S=s), I=i_j])\hat{\textbf{y}}_{j} = softmax([Y|I=i_j])。因为\hat{\textbf{y}}_{s,j}, \hat{\textbf{y}}_{j}分别表示对P(Y|do(S), I), P(Y|I),对应到上述模型的整体预测为P(Y|do(S), I) * (P(Y|I))^\beta = \hat{\textbf{y}}_{s,j}, \hat{\textbf{y}}_{j}^\beta

    对这个式子两边取log得到最后的目标函数\mathcal{L}(s) = \mathcal{L}_R + \beta\mathcal{L}_I,其中\mathcal{L}_R = - \sum_{j=1}^n \textbf{y}_{j}log(\hat{\textbf{y}}_{s,j}), \mathcal{L}_I = - \sum_{j=1}^n \textbf{y}_{j}log(\hat{\textbf{y}}_{j})

    Inference

    在训练阶段模型去掉了M \rightarrow S的混淆影响,并估计了I \rightarrow Y。但是在预测时,仍然可能存在经由中介变量(mediator)D,得到的IDE S \rightarrow D \rightarrow Y。为了去掉这个影响,准确估计S \rightarrow Y的直接影响,作者利用如下公式计算DE(S \rightarrow Y)(其实就是从total effect里减去了估计的IDE,公式的推导,作者建议参阅[1])。其中\alpha用来平衡IDE和DE。

    DE(S \rightarrow Y)

    因此,在预测时,\hat{\textbf{y}}_{s,j} = softmax(DE(S \rightarrow Y))

    心得体会

    P(Y|I)

    这里作者说利用P(Y|I)表示IY的直接影响,感觉有一点奇怪。主要看说的是哪个阶段。因为,在训练阶段,IY的影响是没有偏差的,所以是直接因果效应没问题。但是IY的偏差实际来自数据收集阶段,这个时候,P(Y|I)表示的应该是物品对点击的整体因果效应,从中间去除的I \rightarrow Y的DE(Conformity Bias),就得到了I \rightarrow R \rightarrow Y。这一步是通过\beta \in [0, 1]实现的,小于1的指数相当于对P(Y|I)作了折扣。

    文章引用

    [1] Kaihua Tang, Jianqiang Huang, and Hanwang Zhang. 2020. Long-Tailed Classifi- cation by Keeping the Good and Removing the Bad Momentum Causal Effect. In Advances in Neural Information Processing Systems, H. Larochelle, M. Ranzato, R. Hadsell, M. F. Balcan, and H. Lin (Eds.), Vol. 33. 1513–1524.

    相关文章

      网友评论

        本文标题:因果推断推荐系统工具箱 - CauSeR(二)

        本文链接:https://www.haomeiwen.com/subject/uswfxrtx.html