RUCAIBox / LLMRank

[ECIR'24] Implementation of "Large Language Models are Zero-Shot Rankers for Recommender Systems"
MIT License
232 stars 21 forks source link

在推理阶段bootstrap的策略是如何使用? #5

Closed remember00000 closed 1 year ago

remember00000 commented 1 year ago

您好,我从代码中看到你们实现boostrap策略是通过同一个样本复制三次然后shuffle计算结果的,那么你们的方法在推理的阶段是如何使用呢?比如有三个候选项目,三次大模型给出三个排序结果,如何将这个shuffle三次的输出结果综合得到最后的输出结果呢?这块我看论文中没有明显提出来,还是说这不是你们论文的讨论范围,也就是你们只是做评测,然后这个过程和推理过程是有差别的呢? 希望能得到您的回答,谢谢!

remember00000 commented 1 year ago

你好,我在论文中找到相关部分: After ranking, the item at a higher position will be given a higher score, and we will merge the ranking scores together to derive the final ranking. 想请问这里的分数你们是怎么确定的呢?我并没有在代码中找到对应部分,请问能明确代码中是如何实现的吗?另外这里的分数应该怎么确定?

hyp1231 commented 1 year ago

你好,我在论文中找到相关部分: After ranking, the item at a higher position will be given a higher score, and we will merge the ranking scores together to derive the final ranking. 想请问这里的分数你们是怎么确定的呢?我并没有在代码中找到对应部分,请问能明确代码中是如何实现的吗?另外这里的分数应该怎么确定?

您好,感谢关注。论文中确实是在这里讲到的。代码部分的话, https://github.com/RUCAIBox/LLMRank/blob/21f072d7e3429061ce372cbd94f00c5d2358376e/llmrank/model/rank.py#L79-L83 在开启 bootstrapping 策略时,待排序的商品 ID idxs 会被复制 boots 份,然后 https://github.com/RUCAIBox/LLMRank/blob/21f072d7e3429061ce372cbd94f00c5d2358376e/llmrank/model/rank.py#L206 在解析 LLM 输出的文本时,会根据排序从高到低打分。这里 recall_budget 如果是 20,则会给排序高到排序低的商品分别赋分 20, 19, ..., 1。最后, https://github.com/RUCAIBox/LLMRank/blob/21f072d7e3429061ce372cbd94f00c5d2358376e/llmrank/model/rank.py#L123-L125 我们会把随机多次的打分进行加和,得到最后的分数。

感谢反馈,我们会在下个版本中试图更清楚地描述这个打分过程。

remember00000 commented 1 year ago

好的清楚了,谢谢回复~