我正在研究一个信息检索模型,名为DPR,基本上是一个神经网络(2个BERT),可以对文档进行排名,给定一个查询。目前,该模型以二进制方式训练(文档是否相关),并使用负对数似然(NLL)损失函数。我想改变这种二元行为,创建一个可以处理分级相关性的模型(例如3个等级:相关、有些相关、不相关)。我必须更改损失函数,因为当前情况下,我只能为每个查询分配1个正目标(DPR使用pytorch NLLLoss),这不是我所需要的。
我想知道是否可以使用类似NDCG(归一化折扣累积增益)的评估指标来计算损失。我的意思是,损失函数的整个目的是告诉我们预测的偏差有多大,而NDCG也在做同样的事情。
那么,我可以使用这样的度量替换损失函数吗?在NDCG的情况下,我认为减去结果的1(1-NDCG_score)可能是一个很好的损失函数。这是正确的吗?
最好的问候,Ali。