Skip to content

datagym-ru/retailhero-recomender-baseline

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Бэйслайн к задаче 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

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