Skip to content
Бэйслайн к задаче RetailHero.ai/#2 от @geffy 💪
Python Jupyter Notebook Dockerfile
Branch: master
Clone or download
Latest commit 419576a Jan 16, 2020
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
sandbox
src Update train_i2i_model.py Jan 9, 2020
submit add README Jan 16, 2020
.gitignore
LICENSE Initial commit Jan 7, 2020
README.md add baseline code Jan 9, 2020

README.md

Бэйслайн к задаче RetailHero.ai/#2 от @geffy

Репозиторий содержит:

  • item-to-item модель (NMAP 0.1137, top5 на 09/01/2020)
  • распиливание исходных данных на шарды
  • вспомогательный переиспользуемый код
  • скрипты и для обучения кастомных эмбеддингов на pytorch
  • быстрый поиск соседей в связке с faiss
  • кастомный docker-образ с поддержой pytorch 1.3 и faiss

Код написан так, что вполне успешно отрабатывает на машине с 8gb ram.

Шаги по подготовке:

  1. Скопировать данные в data/raw
cd {REPO_ROOT}
mkdir -p data/raw
cp /path/to/upacked/data/*.csv ./data/raw
cd src
  1. Разделить исходные данные о покупках на 16 частей
python3 purchases_to_jrows.py
  1. Подготовить train/valid данные в формате, максимально близком к формату check_queries.tsv
python3 train_valid_split.py
  1. Обучить item-2-item модель:
python3 train_i2i_model.py
  1. Скопировать артефакты в сабмит
cd {REPO_ROOT}
mkdir -p submit/solutions/assets
cp ./data/raw/products.csv submit/solutions/assets
cp ./tmp/implicit_cosine1/model.pkl submit/solutions/assets
  1. Упаковать сабмит
cd submit
zip -r submit_title.zip solution/*
  1. Profit!

Результаты:

Check: 0,1113
Public: 0,1137

Обучение кастомных эмбеддингов в текущем решении фактически не используется, их код оставлен для экспериментов.

You can’t perform that action at this time.