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

文章名称

【SIGIR-2021】【浙大-Salesforce】Adapting Interactional Observation Embedding for Counterfactual Learning to Rank

核心要点

上一节描述了IOBM要建模的内容以及建模的方法。这一节讲解如何分别学习独立学习审视和点击的嵌入向量表示,并利用上下文数据,结合观测内注意力机制(intra-observation attention)以及观测间注意力机制(inter-observation attention)来消除上下文带来的偏差。

方法细节

问题引入

如前所述,影响用户审视概率的分为2个部分,

  • 用户自身对物品的偏好与该物品所在位置共同作用的结果
  • 排序靠前的审视行为和点击行为对当前物品审视概率的影响

原有的方法把这两部分混合在一起,甚至没有考虑第2点所提到的问题。是否有方法把这两者分开,并且分别表示成单独的confounder呢?

另外,如果显示建模所有链式过程中的随机变量(也就是前边的所有点击和审视概率),模型结构会变得非常复杂,如何有效的学习embedding来作为这些confounder的proxy呢?

具体做法

作者分别学习独立学习审视和点击的嵌入向量表示,建模2种注意力机制,1)内注意力机制(Individual Observation Embedding);2)观测间注意力机制(Interactional Observation Embedding)。模型的整体框架如下图所示。

framework

首先,回顾一下定义。给定查询q以及返回的排序结果列表\pi_q,用户是否观测到某个物品(原文讲的是检索,所以物品是文档)d的随机变量表示为o。这个概率和它的排序位置p有关系,而是否被用户点击用随机变量c表示。

Individual Observation Embedding

模型首进行物品位置和点击的嵌入向量表示,v_p = Emb_p(p), v_c = Emb_c(c)。其中,v_p \in \mathbb{R}^{|\pi_q| \times l_p}, v_c \in \mathbb{R}^{2 \times l_c}l_p, l_c分别表示嵌入向量的size。值得注意的是,点击向量的行数为2,表示的是点击和未点击(个人理解,在预测当前物品的审视概率之类的时候,这个点击是之前位置的点击,符合IOBM的建模链式规则,类似RNN和Transformer里的mask)。

作者强调,学习embedding还可以缓解点击数据集中在头部物品上,导致尾部物品的点击概率比较难学的问题。因为embedding把所有物品压缩到同一个空间中,实现了数据和信息的共享。

可以直接通过拼接v_p, v_c的方式得到[v_p \oplus v_c]来作为用户的审视嵌入向量表示,但是这种嵌入向量应该在不同查询下是不同的。因此,需要引入查询上下文x_q,但原始的查询上下文信息包含太多的噪声,[1]采用手工提取的特征,显然是费时费力的,且不具有很好的泛化性。作者平均了查询结果集合\pi_q中每一个文本d和查询q的特征,如framework图中Query Context Features部分所示。并且,为了能够自动的筛选出审视embedding中重要的元素,采用attention的机制(intraobservation attention)来计算审视embedding v_{o}^{intra},其计算公式如下图所示。

ndividual Observation Embedding

其中,函数f_{x_q}^{att}定义如下图所示,x_{(j)}是输入向量x的第j维元素(这里的输入向量x[v_p \oplus v_c])。W, b是待训练的模型参数,而l_x是一个常数,表示输入向量的size。作者表示,在每一个维度的注意力得分前面乘以这个维度,可以用来对齐每一维元素的尺度。

intra-observation attention function

Interactional Observation Embedding

如前所述,审视通常受到返回结果中,排名在该物品前面的点击和审视动作的影响。作者通过学习Interactional Observation Embedding来避免直接显示建模整个审视概率的连式法则,同时充分表示这种交互的影响。

作者采用双向LSTM的方法学习Interactional Observation Embedding(原因是,有的用户会不按照顺序审视物品,可能倒着来或者随机来,其实这种不按照顺序,甚至是排版本身就不是瀑布流的场景也有研究文献,如XPA,后续会介绍。这种场景其实有点像NLP从RNN到ATT的过程)。前向LSTM Forward(\cdot) 利用上边计算的到的Individual Observation Embedding v_{o, 1},...,v_{o, |\pi_q|-1},计算得到Interactional Observation Embedding a_2, a_3,...,a_{|\pi_q|}。同理,反向LSTM Backward(\cdot) 利用上边计算的到的Individual Observation Embedding v_{o, |\pi_q|-1},...,v_{o, 2},计算得到Interactional Observation Embedding b_{|\pi_q| - 1},...,b_1。细心地同学可能发现,我们没有a_1, b_{|\pi_q|},这两个embedding可以利用Forward(0), Backward(0)得到,整体公式如下图所示。

Interactional Observation Embedding

同样的,Interactional Observation Embedding也和查询的上下文环境有关系(例如,这个用户如果没有倒着浏览的习惯,backward产出的embedding应该就没有那么重要),同样需要利用attention的机制来筛选embedding的重要性。作者称之为inter-observation attention,具体公式如下图所示。

inter-observation attention

Objective

得到Interactional Observation Embedding v_{o, p}^{inter}之后,可以利用FFN和sigmoid函数来计算审视概率估计值\hat{o}_{p},具体估计公式如下图所示。

prediction of observation

利用交叉熵损失,我们可以监督训练整个模型,目标函数如下图所示。但是,目标函数中的真实审视概率o_p,我们是不知道的,之前讲的PBM和CPBM中采用random swapping和intervention harvesting来同时估计相关性函数r和审视概率o,IOBM可以借鉴同样的方法来构造训练数据,学习模型参数。作者表示可以采用采用DLA[2]或者其他IPS的方法(作者用的是IPS)来学习模型参数。

objective function

代码实现

文章的伪代码如下图所示。

pseudo code

心得体会

scalar representation

作者提到,用户审视概率的影响因素交互较多,仅仅通过标量值来建模这种影响是不够的。个人感觉,本身这些随机变量(各个位置上的点击和审视)就是confounder,同时影响之后的点击和审视。因此,仅仅采用标量是很难反映多个方面的,之前模型的效果也印证了这一点。

点击嵌入

如上所述,这里的点击率embedding c实际上是利用某个函数,把当前位置p之前的点击数据进行嵌入表示,利用学习到的embedding来计算它对后续审视概率的影响。

文章引用

[1] Zhichong Fang, Aman Agarwal, and Thorsten Joachims. 2019. Intervention harvesting for context-dependent examination-bias estimation. In Proceedings of the 42nd International ACM SIGIR Conference on Research and Development in Information Retrieval. 825–834.

[2] Qingyao Ai, Keping Bi, Cheng Luo, Jiafeng Guo, and W Bruce Croft. 2018. Unbiased learning to rank with unbiased propensity estimation. In The 41st International ACM SIGIR Conference on Research & Development in Information Retrieval. 385–394.

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容