美文网首页
[NLP] Triplet network学习主题相似性

[NLP] Triplet network学习主题相似性

作者: nlpming | 来源:发表于2022-01-11 00:26 被阅读0次

    1. 简介

    • 本文提出一种triplet network用于学习主题相似性。本文的工作基于一个基本假设:同一个章节的句子主题是相关的。因此作者基于维基百科文章,构建了sentence triplet训练语料,其中两个句子来自同一个章节,另外一个句子来自不同的章节。 triplet network主要的目标是是的同一个章节的句子向量相似度,相比不同章节的句子向量相似度更接近。为了衡量模型效果,作者发表了一个句子相似度基准数据集,通过训练好的triplet netowrk得到句子向量之后,聚类评估模型效果。

    2. Triplet network模型结构

    • triplet network模型结构如下,输入样本为:<x, x^+, x^->,样本对<x, x^+>来自于同一个章节主题更加相似。模型的目标就是让<x, x^+>的相似性大于<x, x^->的相似性。
    • 样本对之间的相似性通过距离函数来度量:dist(Net(x), Net(x^-)),三个句子分别经过同样的网络Net进行编码得到一个句子向量,通过距离函数来度量句子之间的相似性。本文中距离函数,选用的是L1距离。
    • 最终的损失函数如下,其中p(d^+),p(d^-)为距离计算结果d^+,d^-通过softmax函数转换后得到。损失函数选用的也是L1距离,文中说其效果优于L2距离和cosine相似度。
      loss = |p(d^+)| + |1 - p(d^-)|
    Triplet network结构.png

    3. 数据构建

    • 本文中构建了两个弱监督triplet数据集。一个是基于不同章节的句子,另外一个是基于不同章节的标题。训练语料构建来自于wikipedia文章,使用OpenNLP工具提取出文章中的句子。通过以下规则过滤数据:
      (1)同一个章节的句子,最大距离不超过三个段落;
      (2)句子中单词个数少于5或者大于50过滤;
      (3)描述文章背景的章节过滤;
      (4)其他的一些特殊章节进行过滤,比如External links, Further reading, References等;
      (5)每篇文章必须保证至少有5个章节;
    • 最终的triplet sentence样本如下,前面两个句子来自同一个章节Career,第三个句子来自章节Early life;
    triplet sentence样本.png
    • 为了训练好triplet network至关重要的工作是挖掘困难的负样本。文本中尝试的方式是,第三个句子从前/后章节进行随机采样。 文本还构建了triplet title训练集,就是将每个章节的第一个句子作为pivot,然后正样本为本章节的标题,负样本为前/后面章节的标题。
    triplet title样本.png

    参考资料

    相关文章

      网友评论

          本文标题:[NLP] Triplet network学习主题相似性

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