Match2: A matching over Matching Model for Similar Question Identification

任务背景:社区问答中,识别用户相似的问题。主要应用在两个产品中。1是,当用户提问时,需要一段时间后,才会有反馈。此时,可以给用户推荐相似问题的已有答案。2是,需要减少相似的问题,降低索引库中内容的冗余。

背景特点:用户的问题,表达上相对比较丰富。导致,如果仅通过问题的文本(短)来计算相似度进行判断。可能出现,1是,两个短文本,可能相同的关键词很多,但不是同一个语义。2是,两个短文本从字面来看,可能相同的词不多,但是是同一个语义。而相似的问题,回答通常是相似度(仅限回答问题的一段,并非全部的回答)。因此,可以引入长文本,辅助进行相似度的判断。

                (备注:类似于,在搜索场景中,1. 两个短文本是“婴儿脐疝日常护理注意事项有哪些”和“婴儿脐疝日常应该怎么处理”,“月经前xxxx”和“月经后xxxx”。相似的关键词很多,但并不同义。2.长尾表达:两个短文本分别是 “缺钾是验血还是验尿”和“缺钾做什么检查能查出来”,很难捕捉到是同一个语义。3. “一岁宝宝发烧了怎么办” vs "两岁宝宝发烧了怎么办" vs "十岁宝宝发烧了怎么办" 。相似度均不相同。)

需要引入长文本的什么信息:答案中,与问题相关的那部分表达。或者如文中说,问题与答案的匹配模式。

长文本引入的问题:用户的回答,可能与问题完全不相关。也可能包含了很多冗余的内容。如果以one-side方式引入,即分别短文本相似度和长文本相似度,而不发生交互,可能会带来很多噪音。因此,需要two-side的方式。即,短文本要与长文本发生交互。

论文解法:宗旨,1要,保留短文本相似度(query1 vs query2)的计算。2要,融合短文本与长文本的计算,得到匹配模式(query vs answer)。3要, 提取“两对儿短长文本的匹配模式的相似度信息”。4要,融合短文本相似度 与 两对儿短长文本的匹配模式的相似度信息 。得到最终的结果。

模型上

    1. 短文本相似度计算(和通常的做法相同,不赘述)

        输入:以两个querstion为输入。[CLS][t11][t12][t1...][t1n][SEP][t21][t22][t2...][t2m][SEP]

        模型:Bert模型

        输出:[CLS]向量

    2. 在同一个answer的前提下,对比两个question与answer匹配模型的差别

        1)匹配模式提取层

            输入:两个question ,与同一个answer拼接,做为输入。

           模型: 双塔结构,分别为一个Bert模型。(与1中的BERT不共享参数)

            输出:question和answer,分别的序列特征。

            匹配模型:对Bert的每一层,分别提取question和answer的向量,做乘法。最终,将各层计算的相似度拼接到一起。(乘法代表什么???代表计算的匹配模型?)

        2)模式相似度层:对1)中的输出进行对比,得到两种模式的相似度tensor。

               分别计算tensor-wise 和element-wise两种方式下的匹配模型相似度。

                而相似度的衡量,有多种计算方式,如乘法、cosine、L1距离、L2距离、Jesene-Shannon。作者分别进行了实验。

        3)压缩层:压缩模式相似度tensor

               两层带有H-滤波器的 BN-ReLU-Conv层 ,最后做average global pooling。(H filters??)

    3. 融合 

        融合两部分信息,并门控机制,使得以短文本相似度为主,以模式相关性为辅。

训练上

    以多任务,端到端的方式进行训练。

    question-answer的bert模型未经过训练,需要额外的标签来支撑。因此,在训练中,对于已经在库中的question-answer,默认标签为1。而对于待检索的question,认为与它的相似querstion的回答为相关回答,标签为1。

    最终,整体的loss由三部分构成。其中,通过 r来控制各个任务的重要程度。

最终loss

       训练数据中,少量answer与query是不相关的。当answer与两个query都不相关时,则置r为0,不计算,因query与answer不相关,而给最终的相似度带来不利的影响,所引起的loss变化。

实验

    除了对比base模型,作者对本模型的三个大模块进行了修改,来验证各个模块的作用。并且给出了不同的case下的表现对比。也对两种计算similarity进行了可视化,去观察模型的不同表现。

你可能感兴趣的:(Match2: A matching over Matching Model for Similar Question Identification)