[paper阅读]使用层次解析结构来增强查询理解(二)

首先的首先,祝世界上伟大的母亲们节日快乐~前两周给大家介绍了下论文的摘要和背景部分,这周继续来介绍具体的方法啦~最后还剩下一个实验和结论部分,下周继续~

在本文的提出的方法中,作者们使用了半马尔科夫条件随机场作为查询标记模型,该模型已经在过去的十几年中已经有了很多的研究。在本章节中,作者将会简单介绍这个模型,然后描述使用到模型学习中的语义特征。

模型

半马尔卡夫条件随机场在给定查询的情况下,对基于分段的标签序列的条件概率进行建模。更详细地,给定单词序列 x={x_1, x_2, …, x_M},目标是找到 s={s_1, s_2,..,s_N},用来表示输入的分段以及所有分段的分类。 每个分段使用一个元组s_j = (u_j, v_j, y_j)表示,其中,u_jv_j表示分段的开始和终止索引,y_j表示分类标签。分段和分类通过下面的公式共同建模:
p(s|x)=\frac{1}{z_\lambda(x)}exp\{\sum_{j=1}^{N+1}\lambda \cdot f(s_{j-1}, s_j, x)\} 公式1
其中,f(s_{j-1}, s_j, x)表示在分段级别上定义的特征函数的向量。给定已经标记好的查询,在正则化模型参数时,作者们估计能够最大化训练数据条件概率的\lambda。在未来给定输入s(例如,一条新查询)时,学好的模型会被用于预测标签序列。

特征


图1 查询 liza minnelli and joel gray won oscars for their roles in this 1972 movie that follows nightclub entertainers in berlin as the nazis come to power 的语义标签

用于学习语义标签模型时的一般特征包括:中转特征、n-grams和正则表达。一些研究也探究了外部词典的词性特征以及浅解析特征,例如词性标签等,证明了这些特征在简短的、基于短语的分段中(例如,命名实体)的有效性。然的人,对于语义复杂的查询,例如上图中的示例,词性或者浅解析特征对于获取句子级别的长分段(例如,“从句”)还远远不够。因此,为了利用额外的语义知识,作者引入了两种类型的解析特征到查询语义标注中:层次句法特征以及语义依赖的特征,第二种特征可以为句子的层次组成提供重要的信息。

层次句法特征


图2 查询 * a 1984 cult classic starring emilio estevez and harry dean stanton that features prominent drug usages and aliens* 的语义标签(上面)和语法解析树(下面)

层次特征的目的是利用解析结构,例如:解析树中的子从句来获取查询中的句法特征。例如,图2展示了一个示例查询的被标记的语义分类(上面)以及语言学的解析树(下面)。该层次解析树中展示了:
– 一个NP( noun phrase,名词短语)指明了被查询电影的分类——NP(DT a) (CD 1984) (NN cult) (NN classic)
– 一系列NNsingle noun,单一名词)表示演员的名称——(NN emilio) (NN estevez) 以及 (NN harry) (NN dean) (NN stanton)
– 此外,该解析树中还包含了一个SBAR(从句),包含电影情节的描述(that features prominent drug usages and aliens)。SBARs经常由一个补语连词和一个子句组成(例如,SBAR -> "that" + S),可能会在一些情况下生成:带有that的嵌入从句,有代词的相关从句以及有连词的从属子句。

上述都是对于描述性查询而言非常普遍的模式。直观地,在查询的解析结果中的子树结构可以与被标记的分段自然对齐,如图2中展示的一样。

因此,作者们使用了一系列结构的特征来利用解析树的这些分段对齐。当一个被标记的分段和一棵完整的子树之间有对齐的时候,才会使用激活这些特征。

节点特征
f(s_{j-1}, s_j, x)=\delta(N(s_j)=t)\delta(y_j=b)

其中,N(s_j)是能够匹配到当前分段s_j的子树的根节点。t是一个解析树节点,例如NPVP或者Sy_j是分类标签(例如,b可以是<Plot><Actor>等)。

节点和长度特征
f(s_{j-1}, s_j, x)=\delta(N(s_j)=t)\delta(|s_j|=k)\delta(y_j=b)

节点特征相似,但是它还包含了分段的长度(k=1,2,3...)。

节点和孩子特征
f(s_{j-1}, s_j, x)=\delta(N(s_j)=t)\delta(C(s_j)=n)\delta(y_j=b)

其中,C(s_j)是解析树节点t的直接孩子列表。n可以是节点序列,例如NP-VP

节点和词性特征
f(s_{j-1}, s_j, x)=\delta(N(s_j)=t)\delta(P(s_j)=n)\delta(y_j=b)

其中,p(s_j)是当前分段s_j的词性序列。n可以是词性序列,类似于JJ-NN-NN

祖先和长度特征
f(s_{j-1}, s_j, x)=\delta(A(s_j)=n)\delta(|n|=k)\delta(y_j=b)

其中,A(s_j)是从整个解析树的根节点到匹配当前分段s_j的子树根节点的路径。n可能是节点序列,例如Root-S-VP-NP。这个特征也会对路径的长度(|n|=k)进行编码。

节点和前词特征
f(s_{j-1}, s_j, x)=\delta(N(s_j)=t)\delta(w_{j-1}=a)\delta(y_j=b)

其中,\delta(w_{j-1}=a)表示当前分段s_j之前的单词是a

节点和前短语特征
f(s_{j-1}, s_j, x)=\delta(N(s_j)=t)\delta(ww_{j-1}=a)\delta(y_j=b)

其中,\delta(ww_{j-1}=a)表示当前分段s_j之前的两个单词是a。表1表示了从图2中的查询解析树中提取出来的示例特征。

表1 图2查询中分段 “prominent drug usages and aliens” (标记为 “`“”“)中提取出来的特征示例

特征 示例
节点 (NP)
节点和长度 (NP,5)
节点和孩子节点 (NP, NP-CC-NNS)
节点和词性 (NP,JJ-NN-NNS-CC-NNS)
祖先和长度 (ROOT-NP-SBAR-S-VP-NP,6)
节点和前词 (NP, "features")
节点和前短语 (NP, "that features")

语义依赖特征

另一种类型可以被用于提高查询标记性能的信息是:在解析过程中编码的语义依赖。例如,图三展示了一个针对电影查询show me a funny movie starring Johnny Depp and featuring Caribbean pirates. 的基于依赖的解析树。正如层次表示中展示的,动词featuring后面有两个参数funny movie(参数1)和Caribbean pirates(参数2)。因此,可以从解析树中提取出来一个关系(例如,featuring (movie, <PLOT>))来获取对象("movie")和相关属性("<PLOT>")之间语义相关性的长距离。


图3 查询show me a funny movie starring Johnny Depp and featuring Caribbean pirates的依赖解析树示例

为了利用这些依赖信息,作者们使用了一系列能够同时表示查询分段之间直接和多维度(或者链式)关系的特征。同样地,只有当分段出现在语义关系的参数中时,才会使用这些特征。

单依赖特征
f(s_{j-1}, s_j, x)=\delta(R(w)=r)\delta(arg_{r}(w)=s_j)\delta(y_j=b)

其中R(w)=r表示单词w有依赖关系rarg_{r}(w)=s_j表示在关系rw的一个参数是当前分段s_j

双依赖特征
f(s_{j-1}, s_j, x)=\delta(R(w)=r)\delta(arg_{r}(w)_1=a)\delta(arg_{r}(w)_2=s_j)\delta(y_j=b)

其中,arg_{r}(w)_1=a表示单词w在关系r中的第一个参数是单词aarg_{r}(w)_2=s_j表示第二个参数是当前分段s_j

链式依赖
f(s_{j-1}, s_j, x)=\delta(CR(w,s_j)=r)\delta(y_j=b)

其中,CR(w,s_j)=r表示单词w和当前分段s_j有链式依赖关系r。可以通过共享一个或多个参数的关系列表生成链式依赖关系。表2展示了一些从图3的查询解析树中提取出来的依赖特征。

表2 图3中查询的分段 “Caribbean pirates” (被标记为 “<PLOT>”) 中提取出来的依赖特征示例

特征 示例
单依赖 Verb(featuring), arg(<PLOT>)
双依赖 Verb(featuring), arg1(movie), arg2(<PLOT>)
链式依赖 Show -> movie -> <PLOT>,从showmovie之间的关系生成的依赖链
打赏
微信扫一扫支付
微信logo微信扫一扫, 打赏作者吧~

mickey

记录生活,写给几十年后的自己。