设想自己从First Principle来设计一个搜索排序的(深度学习)模型,核心还是在于有个模型能给当前query和每个候选doc的匹配程度打分,也就是核心是两个 句子/文档 的匹配程度的打分模型,
那么我需要有个模型,给一个query,和一堆要排序的doc,就可以给每个doc都打一个和query匹配程度的分值,然后按高到低排序,
这时,可以一个doc一个doc的打分,也就是每次输入模型一个query+候选doc里的一个doc,打一个分,即所谓的PointWise
也可以输入全部doc候选里任意两个doc,让模型通过训练判断这两个doc哪个分高,然后”冒泡排序”所有doc,即所谓的PairWise,但仔细想想,如果模型只输入doc1和doc2是不行的,应该输入query+doc1+doc2,而不只是doc1+doc2
最后可以设计模型的loss函数和输入,让多个doc一起输入,+一个query输入一个模型一次全部打一个分,即所谓的ListWise