LunaLan07 commited on
Commit
a62cf97
·
verified ·
1 Parent(s): 0c5deb2

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +34 -12
README.md CHANGED
@@ -1,5 +1,7 @@
1
  # BioHiCL-base: Hierarchical Multi-Label Contrastive Biomedical Retriever
2
 
 
 
3
  ## 🔍 Overview
4
  BioHiCL-base is a biomedical dense retriever trained with hierarchical MeSH supervision to capture fine-grained semantic relationships between biomedical texts.
5
 
@@ -12,26 +14,38 @@ Unlike traditional dense retrievers trained with binary relevance signals, BioHi
12
  - **Multi-label similarity learning**: Captures graded semantic overlap beyond binary relevance
13
  - **Contrastive + regression training**: Aligns embedding similarity with label similarity
14
  - **Efficient**: ~0.1B parameters, suitable for deployment on a single GPU
 
15
 
16
  ---
17
 
18
  ## 🧠 Model Details
19
  - **Model type**: Bi-encoder (dense retriever)
20
- - **Backbone**: `BAAI/bge-base-en-v1.5`
21
  - **Parameters**: ~0.1B
22
  - **Fine-tuning**: LoRA (merged into base model)
23
  - **Max input length**: 8192 tokens
 
 
 
 
 
 
 
 
 
 
24
 
25
  ---
26
 
27
  ## ⚙️ How It Works
28
  BioHiCL aligns:
29
- - **Embedding similarity (SimE)**: cosine similarity between embeddings
30
- - **Label similarity (SimL)**: cosine similarity over weighted MeSH label vectors
 
31
 
32
  ### Training Objective
33
- - Mean Squared Error (MSE) loss to align SimE with SimL
34
- - Hierarchical contrastive loss to separate unrelated documents and prevent embedding collapse
35
 
36
  ---
37
 
@@ -39,32 +53,40 @@ BioHiCL aligns:
39
 
40
  If you use this model, please cite:
41
 
42
- bibtex @article{lan2026biohicl, title={BioHiCL: Hierarchical Multi-Label Contrastive Learning for Biomedical Retrieval with MeSH Labels}, author={Lan, Mengfei, Zheng, Lecheng, and Kilicoglu, Halil}, journal={ACL 2026}, year={2026} }
 
 
 
 
 
43
 
 
44
 
45
- ## 🚀 Usage — Evaluation on BEIR Benchmark
46
 
47
  ```python
48
  from beir import util
49
  from beir.datasets.data_loader import GenericDataLoader
50
- from beir.retrieval.models import SentenceBERT
51
  from beir.retrieval.search.dense import DenseRetrievalExactSearch
52
  from beir.retrieval.evaluation import EvaluateRetrieval
53
 
 
54
  dataset = "scifact"
55
  url = "https://public.ukp.informatik.tu-darmstadt.de/thakur/BEIR/datasets/scifact.zip"
56
 
57
  data_path = util.download_and_unzip(url, "datasets")
58
  corpus, queries, qrels = GenericDataLoader(data_path).load(split="test")
59
 
 
60
  model_name = "LunaLan07/BioHiCL-base"
61
- model = SentenceBERT(model_name)
62
 
 
63
  retriever = DenseRetrievalExactSearch(model, batch_size=16)
64
  results = retriever.search(corpus, queries, top_k=10, score_function="cos_sim")
65
 
 
66
  ndcg, _map, recall, precision = EvaluateRetrieval.evaluate(
67
  qrels, results, k_values=[1, 3, 5, 10]
68
- )
69
-
70
-
 
1
  # BioHiCL-base: Hierarchical Multi-Label Contrastive Biomedical Retriever
2
 
3
+ ## Model Card
4
+
5
  ## 🔍 Overview
6
  BioHiCL-base is a biomedical dense retriever trained with hierarchical MeSH supervision to capture fine-grained semantic relationships between biomedical texts.
7
 
 
14
  - **Multi-label similarity learning**: Captures graded semantic overlap beyond binary relevance
15
  - **Contrastive + regression training**: Aligns embedding similarity with label similarity
16
  - **Efficient**: ~0.1B parameters, suitable for deployment on a single GPU
17
+ - **Domain-adapted retriever**: Fine-tuned from a strong general-purpose bi-encoder
18
 
19
  ---
20
 
21
  ## 🧠 Model Details
22
  - **Model type**: Bi-encoder (dense retriever)
23
+ - **Backbone**: BAAI/bge-base-en-v1.5
24
  - **Parameters**: ~0.1B
25
  - **Fine-tuning**: LoRA (merged into base model)
26
  - **Max input length**: 8192 tokens
27
+ - **Training data**: Biomedical abstracts annotated with MeSH labels (e.g., BioASQ-derived corpora)
28
+
29
+ ---
30
+
31
+ ## ⚙️ Intended Use
32
+ This model is intended for biomedical information retrieval tasks such as:
33
+ - Scientific literature search (e.g., PubMed-style retrieval)
34
+ - Biomedical document ranking
35
+ - Query–abstract semantic matching
36
+ - Benchmark evaluation on BEIR biomedical subsets
37
 
38
  ---
39
 
40
  ## ⚙️ How It Works
41
  BioHiCL aligns:
42
+
43
+ - Embedding similarity (SimE): cosine similarity between document embeddings
44
+ - Label similarity (SimL): cosine similarity over weighted MeSH multi-label vectors
45
 
46
  ### Training Objective
47
+ - Mean Squared Error (MSE): aligns SimE with SimL
48
+ - Hierarchical contrastive loss: separates unrelated documents while preserving ontology structure
49
 
50
  ---
51
 
 
53
 
54
  If you use this model, please cite:
55
 
56
+ @article{lan2026biohicl,
57
+ title={BioHiCL: Hierarchical Multi-Label Contrastive Learning for Biomedical Retrieval with MeSH Labels},
58
+ author={Lan, Mengfei and Zheng, Lecheng and Kilicoglu, Halil},
59
+ booktitle={ACL 2026},
60
+ year={2026}
61
+ }
62
 
63
+ ---
64
 
65
+ ## 🚀 Usage (BEIR Evaluation)
66
 
67
  ```python
68
  from beir import util
69
  from beir.datasets.data_loader import GenericDataLoader
70
+ from sentence_transformers import SentenceTransformer
71
  from beir.retrieval.search.dense import DenseRetrievalExactSearch
72
  from beir.retrieval.evaluation import EvaluateRetrieval
73
 
74
+ # Dataset
75
  dataset = "scifact"
76
  url = "https://public.ukp.informatik.tu-darmstadt.de/thakur/BEIR/datasets/scifact.zip"
77
 
78
  data_path = util.download_and_unzip(url, "datasets")
79
  corpus, queries, qrels = GenericDataLoader(data_path).load(split="test")
80
 
81
+ # Model
82
  model_name = "LunaLan07/BioHiCL-base"
83
+ model = SentenceTransformer(model_name)
84
 
85
+ # Retrieval
86
  retriever = DenseRetrievalExactSearch(model, batch_size=16)
87
  results = retriever.search(corpus, queries, top_k=10, score_function="cos_sim")
88
 
89
+ # Evaluation
90
  ndcg, _map, recall, precision = EvaluateRetrieval.evaluate(
91
  qrels, results, k_values=[1, 3, 5, 10]
92
+ )