什么是长度归一化?
1. 基础定义
长度归一化
,就是把不同长度的数据"拉到同一标准",让它们可以公平比较。在BM25等文本检索算法中,长度归一化常用于消除文档长短对分数的影响。
就像跑步比赛,大家跑的距离不一样,直接比成绩不公平。归一化后,大家都按"每米用时"来比,才公平!
2. 生活类比
不同班级的考试成绩,归一化后才能比较谁学得更好。
不同身高的人跳远,归一化后才能看谁跳得更远。
3. BM25中的长度归一化公式
BM25对文档长度的归一化:
\[ \text{分母} = f(q, D) + k_1 \cdot (1 - b + b \cdot \frac{|D|}{\text{avgdl}}) \]
其中:
\(|D|\):文档长度
\(\text{avgdl}\):所有文档的平均长度
\(b\):调节参数,常用0.75
4. 为什么要归一化?
防止长文档因为内容多而"刷分"
让短文档和长文档在相关性排序时更公平
提升检索算法的准确性和鲁棒性
5.
文档长度 |D|:
平均长度 avgdl:
b:
归一化因子 = 1.00
小结:
长度归一化让不同长度的数据"站在同一起跑线",是文本检索、机器学习等领域常用的公平比较方法。