Bỏ qua để đến nội dung
Search & RAG

Phụ lục — Sổ tay công thức

Lexical — BM25 và họ hàng.

BM25 (3.4b):

score(d)=∑tidf(t)⋅tf (k1+1)tf+k1 ⁣(1−b+b dlavgdl)\mathrm{score}(d) = \sum_t \mathrm{idf}(t) \cdot \frac{tf\,(k_1+1)}{tf + k_1\!\left(1 - b + b\,\dfrac{dl}{avgdl}\right)}

IDF — bản Lucene, không bao giờ âm:

idf(t)=ln⁡ ⁣(1+N−df+0.5df+0.5)\mathrm{idf}(t) = \ln\!\left(1 + \frac{N - \mathrm{df} + 0.5}{\mathrm{df} + 0.5}\right)

IDF bản gốc — âm khi df>N/2\mathrm{df} > N/2:

idf(t)=ln⁡N−df+0.5df+0.5\mathrm{idf}(t) = \ln \frac{N - \mathrm{df} + 0.5}{\mathrm{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⁡(r+0.5) (N−R−df+r+0.5)(df−r+0.5) (R−r+0.5)w(t) = \ln \frac{(r + 0.5)\,(N - R - \mathrm{df} + r + 0.5)}{(\mathrm{df} - r + 0.5)\,(R - r + 0.5)}

BM25F — nhiều field, gom trước bão hoà sau:

tf~(t)=∑svs⋅tfsBs,score=∑tidf(t)⋅tf~k1+tf~\tilde{tf}(t) = \sum_s v_s \cdot \frac{tf_s}{B_s}, \qquad \mathrm{score} = \sum_t \mathrm{idf}(t) \cdot \frac{\tilde{tf}}{k_1 + \tilde{tf}}

Metrics và fusion.

nDCG@k (2.3):

nDCG@k=DCG@kIDCG@k,DCG@k=∑i=1k2reli−1log⁡2(i+1)\text{nDCG@}k = \frac{\text{DCG@}k}{\text{IDCG@}k}, \qquad \text{DCG@}k = \sum_{i=1}^{k} \frac{2^{\mathrm{rel}_i} - 1}{\log_2(i+1)}

RRF (4.tầng 2), k≈60k \approx 60:

RRF(d)=∑h∈H1k+rankh(d)\mathrm{RRF}(d) = \sum_{h \in \mathcal{H}} \frac{1}{k + \mathrm{rank}_h(d)}

MMR — cân giữa liên quan và đa dạng, SS là tập đã chọn:

arg⁡max⁡d[ λ⋅sim(q,d)−(1−λ)⋅max⁡d′∈Ssim(d,d′) ]\arg\max_{d} \left[\, \lambda \cdot \mathrm{sim}(q,d) - (1-\lambda) \cdot \max_{d' \in S} \mathrm{sim}(d,d') \,\right]

Huấn luyện embedding.

InfoNCE (4.tầng 1):

L=12[CE ⁣(ZaZbTτ,diag)+CE ⁣(ZbZaTτ,diag)]L = \tfrac{1}{2}\left[ \mathrm{CE}\!\left(\frac{Z_a Z_b^{\mathsf{T}}}{\tau}, \mathrm{diag}\right) + \mathrm{CE}\!\left(\frac{Z_b Z_a^{\mathsf{T}}}{\tau}, \mathrm{diag}\right) \right]

Gradient qua chuẩn hoá L2 — với z=u/∥u∥z = u/\lVert u\rVert:

∂L∂u=∂L∂z−(∂L∂z⋅z)z∥u∥\frac{\partial L}{\partial u} = \frac{\dfrac{\partial L}{\partial z} - \left(\dfrac{\partial L}{\partial z} \cdot z\right) z}{\lVert u \rVert}

Matryoshka — loss riêng cho từng tiền tố chiều:

L=∑kInfoNCE(normalize(u[:k]))L = \sum_k \mathrm{InfoNCE}\bigl(\mathrm{normalize}(u_{[:k]})\bigr)
Phụ lục