当前位置:   article > 正文

【阅读笔记】Text Matching as Image Recognition_text matching as image recognition[j]

text matching as image recognition[j]

Pang, Liang, et al. “Text Matching as Image Recognition.” AAAI. 2016.
https://github.com/pl8787/MatchPyramid-TensorFlow

概述:构建文本与文本的相似矩阵,把相似矩阵当作是图片,然后采用 CNN 对其进行分类二分类(相似与不相似)。
在这里插入图片描述
构建相似矩阵 M:

  • Indicator function: 相同为1,不同为0
  • 相似性:构建词向量,用余弦相似性或者点乘的方式得到相似值

得到图 M,然后进行卷积得到特征图
再用动态最大池化将变长的特征图变为尺度一定(所谓动态池化就是使用池化窗口大小等于文本实际大小除确定的大小向上取整)
然后再进行卷积和max-pool得到最终的特征图
最后再用两层感知机(全连网络)和softmax进行二分类
训练时就采用梯度下降进行训练
在这里插入图片描述
读后感:感觉这种方法对语序比较鲁棒,想法也比较直观。在阅读代码时学习到一个好用的 tensorflow 函数 tf.einsum,爱因斯坦求和,6到飞起。

# tf.einsum( equation, *inputs) 
# Matrix multiplication
output = tf.einsum('ij,jk->ik', u, v)  # output[i,k] = sum_j u[i,j] * v[j, k]

# Dot product
output = tf.einsum('i,i->', u, v)  # output = sum_i u[i]*v[i]

# Outer product
output = tf.einsum('i,j->ij', u, v)  # output[i,j] = u[i]*v[j]

# Transpose
output = tf.einsum('ij->ji', u)  # output[j,i] = u[i,j]

# Batch matrix multiplication
output = tf.einsum('aij,ajk->aik', u, v)  # output[a,i,k] = sum_j u[a,i,j] * v[a, j, k]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/522943
推荐阅读
相关标签
  

闽ICP备14008679号