关于输出中的合法输出和非法输出以及boostrap对比实验图中的Ours指标是如何计算的?
您好~有以下几个问题希望能够得到回应:
- 两个数据集的输出格式不同,输出中符合格式的占多少?非法输出是如何处理的?
- boostrap对比实验图中的Ours指标是如何计算的?以及为什么这个策略能起作用?
图:
谢谢~
您好!
- 非法输出大概有 1-5% 左右,论文中报告的结果是当作这些非法输出没有预测成功(大概等于赋了 0 分)。当然也可以写一些简单规则,比如遇到非法输出就重新跑一下,估计能再提升几个点。
- 这部分代码可以参考脚本 [link]:
Ours:
cd llmrank/
# ML-1M
python evaluate.py -m Rank
# Games
python evaluate.py -m Rank -d Games
Ours + Bootstrapping
cd llmrank/
# ML-1M
python evaluate.py -m Rank --boots=3
# Games
python evaluate.py -m Rank -d Games --boots=3
可以看到 Ours 就是第一部分使用 Sequential 这个 prompting 策略的 LLM-based recommendation model,和 #5 提到的赋分方式一样(当然 Ours 是没有 bootstrapping 的,相当于 boots==1)。拿到对每个商品赋的分数后,正常计算 NDCG 即可。
关于为什么这个策略可以起作用,可以参考论文 Alleviating position bias via bootstrapping 这个部分。
我们发现 LLM 受到 position bias 的影响,当 ground-truth item 在 candidate items 列表的位置靠后时,不容易被模型推荐到前面。因此我们通过多次打乱 candidate items 列表的顺序,希望缓解掉一部分 position 带来的影响(比如各个候选都有概率出现在各个位置上)。
好的,我这边测试使用和论文中类似的prompt,但输出的格式比较多,另外也不能完全控制输出完全来自于候选集,这块请问处理上是在同一个parser下仍然能控制在1-5%吗
嗯嗯我们也观察到了输出格式比较多、以及不一定完全属于候选集的情况。在我们当时的测试中,对于不同输出格式,只要能被 parser 解析,我们就认为是合法输出,并正常赋分;对于不一定完全属于候选集的情况,我们只解析了属于候选集的那部分。
之前提到的 1-5% 主要是针对第一个表格的实验来说的,即 ground-truth item 一定在候选集中的设定。这种设定下,没有生成 ground-truth 或者解析不了的大概有 1-5%。