Lexical — BM25 và họ hàng.
BM25 (3.4b):
score(d)=t∑idf(t)⋅tf+k1(1−b+bavgdldl)tf(k1+1)
IDF — bản Lucene, không bao giờ âm:
idf(t)=ln(1+df+0.5N−df+0.5)
IDF bản gốc — âm khi df>N/2:
idf(t)=lndf+0.5N−df+0.5
RSJ — trọng số Robertson/Spärck Jones, idf là trường hợp riêng của nó:
w(t)=ln(df−r+0.5)(R−r+0.5)(r+0.5)(N−R−df+r+0.5)
BM25F — nhiều field, gom trước bão hoà sau:
tf~(t)=s∑vs⋅Bstfs,score=t∑idf(t)⋅k1+tf~tf~
Metrics và fusion.
nDCG@k (2.3):
nDCG@k=IDCG@kDCG@k,DCG@k=i=1∑klog2(i+1)2reli−1
RRF (4.tầng 2), k≈60:
RRF(d)=h∈H∑k+rankh(d)1
MMR — cân giữa liên quan và đa dạng, S là tập đã chọn:
argdmax[λ⋅sim(q,d)−(1−λ)⋅d′∈Smaxsim(d,d′)]
Huấn luyện embedding.
InfoNCE (4.tầng 1):
L=21[CE(τZaZbT,diag)+CE(τZbZaT,diag)]
Gradient qua chuẩn hoá L2 — với z=u/∥u∥:
∂u∂L=∥u∥∂z∂L−(∂z∂L⋅z)z
Matryoshka — loss riêng cho từng tiền tố chiều:
L=k∑InfoNCE(normalize(u[:k]))