neural-network - 如何在短对排序中使用学习排序模型(CNN、LSTM)?

标签 neural-network nlp conv-neural-network information-retrieval recurrent-neural-network

在常见的学习排序任务中,输入通常是语义的并且具有良好的句法结构,例如问答排序任务。在这种情况下,CNN 或 LSTM 是捕获 QA 对的潜在信息(局部或长依赖)的良好结构。

但实际上,有时我们只有短对和离散的单词。在这种情况下,CNN 或 LSTM 仍然是一个公平的选择?或者有一些更合适的方法可以处理这个问题吗?

最佳答案

更大的问题是你有多少训练数据。有很多有趣的工作,但深度神经网络方法倾向于使用 QA 排名任务的原因是因为这些任务通常有数十万或数百万个训练示例。

当您的查询较短(即标题或网络查询)时,您可能需要更多数据来学习,因为每个训练实例将使用更少的网络。这是可能的,但您选择的方法通常应基于您可用的训练数据,而不是查询的大小。

  • [0-50 个查询] -> 手动调整、耗时考验的模型,例如查询似然、BM25(或者如果您想要更好的结果,则使用 ngram 模型,例如 SDM)(如果您想要更多召回率、伪相关性) -反馈模型,例如 RM3)。
  • [50-1000 次查询] -> 线性或基于树的学习排序方法
  • [1000-millions] -> 深度方法,或者可能仍在学习排名。我不确定任何深度论文是否真正主导了最先进的梯度增强回归树设置。

我的一位实验室伙伴最近发表的一篇论文使用了 pseudo-labels from BM25 to bootstrap a DNN 。他们得到了很好的结果(比 BM25 更好),但他们实际上必须是 Google(训练时间方面)才能实现这一目标。

关于neural-network - 如何在短对排序中使用学习排序模型(CNN、LSTM)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44602346/

相关文章:

python - Spacy IS_ALPHA 匹配器模式不起作用?

用于将串在一起的单词拆分为单个单词的 Python 函数

python - 将层的一半过滤器设置为不可训练的keras/tensorflow

machine-learning - 在经过训练的 CNN 模型中使用自己的类似 MNIST 的图像数据进行错误的预测

machine-learning - Google Vision api 与构建您自己的 API

machine-learning - 用于分类/识别 2D 散点图形状的最合适的 ML 技术是什么?

c# - 分类或关键字匹配自然语言字符串或短语

python - 在TensorFlow中评估CIFAR-10时如何获得类别概率?

machine-learning - 模型训练后的 Keras 预测

用于 Caffe 的 Python 还是 Matlab?