소스 검색

阅读优化增加指标

luojunhui 6 일 전
부모
커밋
1597556971
1개의 변경된 파일9개의 추가작업 그리고 11개의 파일을 삭제
  1. 9 11
      src/utils/scoring.ts

+ 9 - 11
src/utils/scoring.ts

@@ -7,8 +7,9 @@ import type { RecallSignals, VideoMatchEnrichedVO } from '../api/types'
  * 公式 (VIDEO):
  *   sim_norm = clip((sim - lower) / (1 - lower), 0, 1)
  *   rov_norm = clip((rov - rovClipLow) / (rovClipHigh - rovClipLow), 0, 1)
- *   composite = alpha × sim_norm + (1 - alpha) × rov_norm
- *   ROV 缺失时: composite = alpha × sim_norm(质量分为 0)
+ *   composite = alpha × boost × sim_norm + (1 - alpha) × rov_norm
+ *   boost 仅作用于相关性分(解构维度权重),ROV 是视频粒度不加 boost
+ *   ROV 缺失时: composite = alpha × boost × sim_norm
  *
  * 公式 (ARTICLE):
  *   sim_norm = clip((sim - lower) / (1 - lower), 0, 1)
@@ -209,23 +210,20 @@ function rankVideoArticle(
     ? (params.boostsByCode?.[item.configCode] ?? getDefaultBoostForCode(item.configCode))
     : params.deconstructBoost
   const hasRov = rov != null && Number.isFinite(rov)
-  const boost = (item.modality === 'VIDEO' && hasRov) ? codeBoost : 1
 
   if (!hasRov) {
     if (item.modality === 'VIDEO') {
-      // VIDEO 缺 ROV → rovNorm=0,alpha 公式生效,alpha 低时自然沉底
-      const composite = boost * params.alpha * simNorm
-      return { composite, simNorm, rovNorm: 0, boost, lowerBound, passesThreshold }
+      const composite = codeBoost * params.alpha * simNorm
+      return { composite, simNorm, rovNorm: 0, boost: codeBoost, lowerBound, passesThreshold }
     }
-    // ARTICLE 缺 ROV → 退化为纯 sim 排序
-    const composite = boost * simNorm
-    return { composite, simNorm, rovNorm: 0, boost, lowerBound, passesThreshold }
+    const composite = simNorm
+    return { composite, simNorm, rovNorm: 0, boost: 1, lowerBound, passesThreshold }
   }
 
   const rovDenom = params.rovClipHigh - params.rovClipLow
   const rovNorm = rovDenom > 0 ? clip01((rov - params.rovClipLow) / rovDenom) : 0
-  const composite = boost * (params.alpha * simNorm + (1 - params.alpha) * rovNorm)
-  return { composite, simNorm, rovNorm, boost, lowerBound, passesThreshold, weightedQuality: rovNorm }
+  const composite = params.alpha * codeBoost * simNorm + (1 - params.alpha) * rovNorm
+  return { composite, simNorm, rovNorm, boost: codeBoost, lowerBound, passesThreshold, weightedQuality: rovNorm }
 }
 
 const STORAGE_KEY = 'vector_recall_ranking_params'