File size: 9,239 Bytes
6ebf0e8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c339995
6ebf0e8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c7237b9
6ebf0e8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
067f385
 
6ebf0e8
 
 
 
 
 
 
02c3286
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
# SVALabs - German Uncased Electra Bi-Encoder

In this repository, we present our german, uncased bi-encoder for Passage Retrieval.

This model was trained on the basis of the german electra uncased model from the [german-nlp-group](https://huggingface.co/german-nlp-group/electra-base-german-uncased) and finetuned as a bi-encoder for Passage Retrieval using the [sentence-transformers](https://github.com/UKPLab/sentence-transformers) package.
For this purpose, we translated the [MSMARCO-Passage-Ranking](https://github.com/microsoft/MSMARCO-Passage-Ranking) dataset using the [fairseq-wmt19-en-de](https://github.com/pytorch/fairseq/tree/master/examples/wmt19) translation model.

### Model Details

| | Description or Link  |
|---|---|
|**Base model**   | [```german-nlp-group/electra-base-german-uncased```](https://huggingface.co/german-nlp-group/electra-base-german-uncased)  |
|**Finetuning task**| Passage Retrieval / Semantic Search  |
|**Source dataset**| [```MSMARCO-Passage-Ranking```](https://github.com/microsoft/MSMARCO-Passage-Ranking)  |
|**Translation model**|  [```fairseq-wmt19-en-de```](https://github.com/pytorch/fairseq/tree/master/examples/wmt19)  |

### Performance 

We evaluated our model on the [GermanDPR testset](https://deepset.ai/germanquad) and followed the benchmark framework of [BEIR](https://github.com/UKPLab/beir).
In order to compare our results, we conducted an evaluation on the same test data with BM25 and presented the results in the table below.
We took every paragraph with negative and positive context out of the testset and deduplicated them. The resulting corpus size is 2871 against 1025 queries.


| Model | NDCG@1 | NDCG@5 | NDCG@10 | Recall@1 | Recall@5 | Recall@10 |
|:-------:|:--------:|:--------:|:---------:|:--------:|:----------:|:-----------:|
| BM25  | 0.1463 | 0.3451 | 0.4097  | 0.1463   | 0.5424   | 0.7415    |
| Ours  | 0.4624 | 0.6218 | 0.6425  | 0.4624   | 0.7581   | 0.8205    |



### How to Use

With ```sentence-transformers``` package (see [UKPLab/sentence-transformers](https://github.com/UKPLab/sentence-transformers) on GitHub for more details):
```python
from sentence_transformers import SentenceTransformer

bi_model = SentenceTransformer("svalabs/bi-electra-ms-marco-german-uncased")
```

### Semantic Search Example
```python
import numpy as np
from sklearn.metrics.pairwise import cosine_similarity

K = 3 # number of top ranks to retrieve

# specify documents and queries
docs = [
    "Auf Netflix gibt es endlich die neue Staffel meiner Lieblingsserie.",
    "Der Gepard jagt seine Beute.",
    "Wir haben in der Agentur ein neues System für Zeiterfassung.",
    "Mein Arzt sagt, dass mir dabei eher ein Orthopäde helfen könnte.",
    "Einen Impftermin kann mir der Arzt momentan noch nicht anbieten.",
    "Auf Kreta hat meine Tochter mit Muscheln eine schöne Sandburg gebaut.",
    "Das historische Zentrum (centro storico) liegt auf mehr als 100 Inseln in der Lagune von Venedig.",
    "Um in Zukunft sein Vermögen zu schützen, sollte man andere Investmentstrategien in Betracht ziehen.",
    "Die Ära der Dinosaurier wurde vermutlich durch den Einschlag eines gigantischen Meteoriten auf der Erde beendet.",
    "Bei ALDI sind die Bananen gerade im Angebot.",
    "Die Entstehung der Erde ist 4,5 milliarden jahre her.",
    "Finanzwerte treiben DAX um mehr als sechs Prozent nach oben Frankfurt/Main gegeben.",
    "DAX dreht ins Minus. Konjunkturdaten und Gewinnmitnahmen belasten Frankfurt/Main.",
]

queries = [
    "dax steigt",
    "dax sinkt",
    "probleme mit knieschmerzen",
    "software für urlaubsstunden",
    "raubtier auf der jagd",
    "alter der erde",
    "wie alt ist unser planet?",
    "wie kapital sichern",
    "supermarkt lebensmittel reduziert",
    "wodurch ist der tyrannosaurus aussgestorben",
    "serien streamen"
]

# encode documents and queries
features_docs = bi_model.encode(docs)
features_queries = bi_model.encode(queries)

# compute pairwise cosine similarity scores
sim = cosine_similarity(features_queries, features_docs)

# print results
for i, query in enumerate(queries):
    ranks = np.argsort(-sim[i])
    print("Query:", query)
    for j, r in enumerate(ranks[:K]):
        print(f"[{j}: {sim[i, r]: .3f}]", docs[r])
    print("-"*96)
```

**Console Output**:
```
Query: dax steigt
[0:  0.811] Finanzwerte treiben DAX um mehr als sechs Prozent nach oben Frankfurt/Main gegeben.
[1:  0.719] DAX dreht ins Minus. Konjunkturdaten und Gewinnmitnahmen belasten Frankfurt/Main.
[2:  0.218] Auf Netflix gibt es endlich die neue Staffel meiner Lieblingsserie.
------------------------------------------------------------------------------------------------
Query: dax sinkt
[0:  0.815] DAX dreht ins Minus. Konjunkturdaten und Gewinnmitnahmen belasten Frankfurt/Main.
[1:  0.719] Finanzwerte treiben DAX um mehr als sechs Prozent nach oben Frankfurt/Main gegeben.
[2:  0.243] Auf Netflix gibt es endlich die neue Staffel meiner Lieblingsserie.
------------------------------------------------------------------------------------------------
Query: probleme mit knieschmerzen
[0:  0.237] Mein Arzt sagt, dass mir dabei eher ein Orthopäde helfen könnte.
[1:  0.209] Das historische Zentrum (centro storico) liegt auf mehr als 100 Inseln in der Lagune von Venedig.
[2:  0.182] DAX dreht ins Minus. Konjunkturdaten und Gewinnmitnahmen belasten Frankfurt/Main.
------------------------------------------------------------------------------------------------
Query: software für urlaubsstunden
[0:  0.478] Wir haben in der Agentur ein neues System für Zeiterfassung.
[1:  0.208] Auf Netflix gibt es endlich die neue Staffel meiner Lieblingsserie.
[2:  0.190] Bei ALDI sind die Bananen gerade im Angebot.
------------------------------------------------------------------------------------------------
Query: raubtier auf der jagd
[0:  0.599] Der Gepard jagt seine Beute.
[1:  0.264] Auf Netflix gibt es endlich die neue Staffel meiner Lieblingsserie.
[2:  0.159] Auf Kreta hat meine Tochter mit Muscheln eine schöne Sandburg gebaut.
------------------------------------------------------------------------------------------------
Query: alter der erde
[0:  0.705] Die Entstehung der Erde ist 4,5 milliarden jahre her.
[1:  0.413] Die Ära der Dinosaurier wurde vermutlich durch den Einschlag eines gigantischen Meteoriten auf der Erde beendet.
[2:  0.262] Finanzwerte treiben DAX um mehr als sechs Prozent nach oben Frankfurt/Main gegeben.
------------------------------------------------------------------------------------------------
Query: wie alt ist unser planet?
[0:  0.441] Die Entstehung der Erde ist 4,5 milliarden jahre her.
[1:  0.335] Auf Netflix gibt es endlich die neue Staffel meiner Lieblingsserie.
[2:  0.302] Die Ära der Dinosaurier wurde vermutlich durch den Einschlag eines gigantischen Meteoriten auf der Erde beendet.
------------------------------------------------------------------------------------------------
Query: wie kapital sichern
[0:  0.547] Um in Zukunft sein Vermögen zu schützen, sollte man andere Investmentstrategien in Betracht ziehen.
[1:  0.331] Finanzwerte treiben DAX um mehr als sechs Prozent nach oben Frankfurt/Main gegeben.
[2:  0.143] Auf Netflix gibt es endlich die neue Staffel meiner Lieblingsserie.
------------------------------------------------------------------------------------------------
Query: supermarkt lebensmittel reduziert
[0:  0.455] Bei ALDI sind die Bananen gerade im Angebot.
[1:  0.362] DAX dreht ins Minus. Konjunkturdaten und Gewinnmitnahmen belasten Frankfurt/Main.
[2:  0.345] Finanzwerte treiben DAX um mehr als sechs Prozent nach oben Frankfurt/Main gegeben.
------------------------------------------------------------------------------------------------
Query: wodurch ist der tyrannosaurus aussgestorben
[0:  0.457] Die Ära der Dinosaurier wurde vermutlich durch den Einschlag eines gigantischen Meteoriten auf der Erde beendet.
[1:  0.216] Der Gepard jagt seine Beute.
[2:  0.195] Die Entstehung der Erde ist 4,5 milliarden jahre her.
------------------------------------------------------------------------------------------------
Query: serien streamen
[0:  0.570] Auf Netflix gibt es endlich die neue Staffel meiner Lieblingsserie.
[1:  0.361] Wir haben in der Agentur ein neues System für Zeiterfassung.
[2:  0.282] Bei ALDI sind die Bananen gerade im Angebot.
------------------------------------------------------------------------------------------------
```

### Contact
- Nicole Wochatz, nicole.wochatz@sva.de
- Stefan Kammer, stefan.kammer@sva.de
- Bonian Riebe, bonian.riebe@sva.de

### References
- N. Reimers and I. Gurevych (2019), ['Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks'](https://arxiv.org/abs/1908.10084).
- Payal Bajaj et al. (2018), ['MS MARCO: A Human Generated MAchine Reading COmprehension Dataset'](https://arxiv.org/abs/1611.09268).
- N. Thakur et al. (2021), ['BEIR: A Heterogenous Benchmark for Zero-shot Evaluation of Information Retrieval Models'](https://arxiv.org/abs/2104.08663).
-  T. Möller, J. Risch and M. Pietsch (2021), ['GermanQuAD and GermanDPR: Improving Non-English Question Answering and Passage Retrieval'](https://arxiv.org/abs/2104.12741).