Cross-Domain Review Helpfulness Prediction based on Convolutional Neural Networks with Auxiliary Domain Discriminators
问题:如何估计评论的有用性并将其恰当地推荐给消费者(review helpfulness prediction)
当前方法缺点:每个域需要大量的标注数据。每个域之间是封闭的,当在某些域数据非常少、out-of-vocabulary问题时,需要每个域包含大量标注数据。
本文提出基于CNN的模型来利用word-level和character-based表达,解决oov问题。并通过迁移域之间的知识,解决部分领域标注数据较少问题。具体方法是域之间提取公有特征,域类提取私有特征,在这两个特征空间上学习相应的任务,这应该是参考了adversarial specific-shared network,对跨域数据同时建模。在亚马逊公开评论数据集上,文中方法在准确性和跨领域稳健性方面显著优于sota。
如何估计评论的有用性并将其恰当地推荐给消费者(review helpfulness prediction),目前的一些方法依赖于手工提取特征,例如LIWC,INQUIRER和GALC等语义特征(Yang et al.,2015; Martin and Pu,2010),基于aspect的(Yang et al.,2016)和基于argument特征(Liu et al.,2017a)。然而,这些方法存在一些问题:
而本文提出的( cross-domain transfer learning (TL) )方法,不需要领域知识和手工提取特征。提出基于CNN的模型来利用word-level和character-based表达,解决oov问题。并通过迁移域之间的知识,解决部分领域标注数据较少问题。具体方法是域之间提取公有特征,域类提取私有特征,在这两个特征空间上学习相应的任务,这应该是参考了adversarial specific-shared network,对跨域数据同时建模。
例如,评价中包含图像质量的特征只对相机品类有用,而语义特征和argument-based对所有域都有用。因此需要学习 shared features, private features
(Ganin et al., 2016; Taigman et al., 2017)最早使用 shared and domain-specific features。最近 Liu et al. (2017b) and Chen et al. (2017)添加了对抗损失和domain discriminators并应用于分类和分词任务。
本文将问题定义为一个回归问题来拟合多少比例的用户认为这个评论是有用的。在源领域(某些产品类别)有大量数据,目标领域有较少的标签数据(目标预测产品类别),希望用源领域帮助学习目标领域下的评论排序。
使用CNN来提取word-level和character-based表达,不同点在于character-based。
把评论文本句子中的每个词拆解成字符然后再组合一起输入到一个卷积层(convolutional layer)和一个最大池化层(max-pooling layer)去学习出一个定长的字符嵌入(character embedding)。
最后合并生成的词嵌入和字符嵌入,一起作为输入到卷积神经网络。
shared neural network and domain-specific neural networks to learn shared and domain-specific features
使用ASP-MTL网络结构,使用cnn作为基础的特征提取器。 domain-specific output layers:
y ^ k = { σ ( W s c h c + W s h s + b s ) , if k = 0 σ ( W t c h c + W t h t + b t ) , if k = 1 \hat{y}^{k}=\left\{\begin{array}{l}{\sigma\left(\mathbf{W}^{\mathrm{sc}} \mathbf{h}^{\mathbf{c}}+\mathbf{W}^{\mathbf{s}} \mathbf{h}^{\mathbf{s}}+\mathbf{b}^{\mathbf{s}}\right), \text { if } k=0} \\ {\sigma\left(\mathbf{W}^{\mathrm{tc}} \mathbf{h}^{\mathbf{c}}+\mathbf{W}^{\mathbf{t}} \mathbf{h}^{\mathbf{t}}+\mathbf{b}^{\mathbf{t}}\right), \text { if } k=1}\end{array}\right. y^k={σ(Wschc+Wshs+bs), if k=0σ(Wtchc+Wtht+bt), if k=1
其中k是域的标签,表明数据来源于目标域还是源域。其中** W s c , W t c , W s , W t W^{sc}, W^{tc}, W^{s}, W^{t} Wsc,Wtc,Ws,Wt**分别表示 shared-source, shared-target, source, and target domains参数。
引入对抗损失:
L a d v = 1 n ∑ i = 1 n ∑ k = 0 1 p ( d = k ∣ h i c ) log p ( d = k ∣ h i c ) L_{a d v}=\frac{1}{n} \sum_{i=1}^{n} \sum_{k=0}^{1} p\left(d=k | \mathbf{h}_{i}^{c}\right) \log p\left(d=k | \mathbf{h}_{i}^{c}\right) Ladv=n1i=1∑nk=0∑1p(d=k∣hic)logp(d=k∣hic)
它的输入是共享特征 h c h^c hc,即让模型学出与领域无关的共享特征。
domain discrimination losses:同时作者添加了判别领域的任务加入到了模型中,作者为每一个字添加域的标签,并加入预测,添加损失:
L s = − 1 n s ∑ i = 1 n s ∑ k = 0 1 I ( d i = k ) log p ( d = k ∣ h i s ) L t = − 1 n t ∑ i = 1 n t ∑ k = 0 1 I ( d i = k ) log p ( d = k ∣ h i t ) L_{s}=-\frac{1}{n_{s}} \sum_{i=1}^{n_{s}} \sum_{k=0}^{1} \mathbb{I}^{\left(d_{i}=k\right)} \log p\left(d=k | \mathbf{h}_{i}^{s}\right) \\ L_{t}=-\frac{1}{n_{t}} \sum_{i=1}^{n_{t}} \sum_{k=0}^{1} \mathbb{I}^{\left(d_{i}=k\right)} \log p\left(d=k | \mathbf{h}_{i}^{t}\right) Ls=−ns1i=1∑nsk=0∑1I(di=k)logp(d=k∣his)Lt=−nt1i=1∑ntk=0∑1I(di=k)logp(d=k∣hit)
其中 h i t h_i^t hit是目标域每个输入 X i X_i Xi的domain-specific features。 h i t h_i^t hit是源域。
orthogonality constraints:
L o r t h = ∑ k ∈ { s , t } H c ⊤ H k L_{o r t h}=\sum_{k \in\{s, t\}} \mathbf{H}^{\mathbf{c} \top} \mathbf{H}^{\mathbf{k}} Lorth=k∈{s,t}∑Hc⊤Hk
详细见:Adversarial Multi-task Learning for Text Classification
在Amazon的评论数据上面测试本文的模型,包含Watches,Phone,Outdoor,Home,和Electronics五个领域。
和现有的五种人为构造特征的方法(STR,UGR,LIWC,INQ,ASP)[Yang et al.,2015]做了对比,同时对比了两个集成模型[Yang et al.,2016]。
说明CNN的模型有非常好的领域自适应性,即不需要很多特征工程就可以适用于很多的领域。
对比了三种方法:
实验结论:
目标域数据量对TL的影响:同时作者去实验目标域的数据量大小,发现: