# MedCPT: Contrastive Pre-trained Transformers with large-scale PubMed search logs for zero-shot biomedical information retrieval (Bioinformatics, 2023)
\
zero-shot retriever
\
:paperclip: https://arxiv.org/ftp/arxiv/papers/2307/2307.00589.pdf
\
在沒有大量查詢文章的標注情況下,如何++改進++生物醫學中的Information Retrieval
## :pushpin: Introduction
- 第一個通過 contrastive learning 整合 <font color="#5C1AEB">retriever and re-ranker</font> 的生物醫學IR模型.
- MedCPT re-ranker trained with <font color="#5C1AEB">negative distribution</font> sampled from pre-trained MedCPT retriever.
- 對各種生物醫學IR任務進行 <font color="#5C1AEB">Zero-shot</font> 評估。
- Applicable to various biomedical applications like document searching, similar sentence retrieval, article recommendation, and domain-specific retrieval-augmentation for large language models.
## :pushpin: Materials and methods
### Data Collection
- 從 PubMed search logs 收集三年(2020年至2022年)匿名的查詢–文章點擊
- 過濾 navigational queries(搜尋作者和期刊標題),保留 informational queries,得到 87M informational queries and 17M articles
- 根據用戶點擊生成 255M relevant query–article pairs ,用於訓練 <font color="#5C1AEB">MedCPT retriever</font>
- 有些查詢較困難(在搜索引擎後的排名較高的文章中,有些文章可能是負面例子/不相關的文章,所以 re-ranker 需要語義理解能力,區別在外觀上相關但實際上與查詢無關的文章),需要對文本的語義進行更深入分析才能將點擊的文章進行配對,所以使用 ++difficult subset++ 子集來訓練 <font color="#5C1AEB">MedCPT re-ranker</font>
- difficult subset:過濾出了79M個 keyword queries(只有一個單詞,或點擊的文章都包含了完全配對的整個輸入查詢)。最終有7.7M個 non-keyword 查詢和5.2M篇文章,並生成18.3M個 relevant query–article pairs。

### MedCPT architecture

MedCPT 的兩個階段(皆是 Transformer (Trm) encoders initialized by PubMedBERT):
- **++Retriever++**
- 包括 query(QEnc)和 document encoder(DEnc)
- bi-encoder 結構可以在 offline 下對文章編碼,real-time inference 期間,只需要對 query 進行編碼計算和一次 nearest neighbor search
- Training Process
- query q & document d Encoder


- relevance of q&d,內積運算

- query q 、a clicked document d 、點擊次數 c 、每個 mini-batch 包含|B|個實例

:::info
e.g. $$[q_i, d_i ,c_i]^\left|3 \right |_{i=1}=\left [\begin{matrix}q_1, d_1 ,c_1\\q_2, d_2 ,c_2\\q_3, d_3 ,c_3\end{matrix} \right ] $$
- 計算 ++query-to-document loss++ & ++document-to-query loss++:


:::info
1. qi 和 di 內積,在計算 Probability ,指數函數exp(x)(表示e的x次方)
2. 計算qi 和每個文檔dm之間的相似度
3. exp(x)能夠將相似性大值轉換為更接近1的概率值,同時將相似性小值轉換為接近0的Probability,這有助於強調較高相似性的文檔,同時減弱較低相似性的文檔
4. 對數函數將 Probability 映射到了一個更小的範圍內,有助於避免極端大或極端小對模型訓練的影響
- 通過每個訓練實例的點擊數來計算 instance-level losses 的權重(考慮每個訓練實例的貢獻),final loss LB 通過梯度下降優化

- **++Re-ranker++**
- Cross-Encoder(CrossEnc)
- 在 query 和 article tokens 之間的 cross-attention 計算(僅在retriever 返回的排名前面文章)
- 使用 single CrossEnc 預測 q 和 d 之間的相關性,為線性模型

- Training Process
- 每個實例包含,qi、di+(a clicked document)、M 個不相關(未點擊)document 的列表

- 使用 local negative documents,retriever 計算最大內積們後,從排名在 e 到排名在 f 的 d 中抽樣這些 negatives

## :pushpin: Results
省略
:::success
**Compared methods**
1. Sparse retrievers
3. Dense retrievers
4. Large language model retrievers
:::
## :pushpin: Discussions
1. MedCPT 從PubMed使用者日誌中的查詢-文章點擊訓練,在 BEIR 的表現達到 SOTA
2. This shows that the contrastive objective can train not only a dense retriever, but can also train the individual query and DEncs to perform tasks related to information-seeking behaviors.
3. 不如 sparse retrievers 的 controllable or explainable,因此未來可能的一個方向是開發能夠兼顧兩種方法優勢的 dense-sparse retrieval systems
https://medium.com/@amanatulla1606/medcpt-revolutionizing-biomedical-information-retrieval-rag-with-contrastive-pre-training-78edf9b89b6d