https://github.com/philipphager/ultr-toolbox
Personal toolbox for unbiased learning-to-rank written in Jax.
https://github.com/philipphager/ultr-toolbox
click-model learning-to-rank unbiased-lea
Last synced: over 1 year ago
JSON representation
Personal toolbox for unbiased learning-to-rank written in Jax.
- Host: GitHub
- URL: https://github.com/philipphager/ultr-toolbox
- Owner: philipphager
- Archived: true
- Created: 2023-04-26T09:20:47.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-08-11T14:45:55.000Z (almost 3 years ago)
- Last Synced: 2025-02-08T14:23:28.899Z (over 1 year ago)
- Topics: click-model, learning-to-rank, unbiased-lea
- Language: Python
- Homepage:
- Size: 43 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Install
```bash
pip install ultr-toolbox
```
## Click Models
### Create Datasets
```Python
from ultr_toolbox.click_models.data import ClickDataset
train_dataset = ClickDataset(train_df)
val_dataset = ClickDataset(val_df)
test_dataset = ClickDataset(test_df)
```
### Train neural click models
```
from ultr_toolbox.click_models.metrics import Perplexity
from ultr_toolbox.click_models.neural import PositionBasedModel, NeuralTrainer
model = PositionBasedModel()
trainer = NeuralTrainer(model)
trainer.fit(train_dataset, val_dataset)
metrics = trainer.test(test_dataset, metrics=[Perplexity()])
```
### Train PyClick models
To optionally train click models from the [PyClick](https://github.com/markovi/PyClick) library,
first install PyClick as a dependency:
```bash
pip install git+https://github.com/markovi/PyClick
```
Next, you can use the `PyClickTrainer` module to run the same pipeline as for the Jax-based neural click models:
```
from pyclick.click_models import PBM
from ultr_toolbox.click_models.metrics import Perplexity
from ultr_toolbox.click_models.em import PyClickTrainer
model = PBM()
trainer = PyClickTrainer(model)
trainer.fit(train_dataset, val_dataset)
metrics = trainer.test(test_dataset, metrics=[Perplexity()])
```
### Train naive models based on click statistics
```
from ultr_toolbox.click_models.metrics import Perplexity
from ultr_toolbox.click_models.stats import StatsTrainer, RankDocumentBasedModel
model = RankDocumentBasedModel()
trainer = StatsTrainer(model)
trainer.fit(train_dataset, val_dataset)
metrics = trainer.test(test_dataset, metrics=[Perplexity()])
```