Skip to content

fotol1/mts-hack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

РСшСниС кСйса "Π£ΠΌΠ½Ρ‹Π΅ ΠΏΠΎΠΊΡƒΠΏΠΊΠΈ ΠΎΡ‚ МВБ" ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ TopPopular

ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС кСйса

Π’ качСствС Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π»ΠΎΡΡŒ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ систСму кэшбСка для ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² МВБ Π‘Π°Π½ΠΊΠ°. Π‘Ρ‹Π»ΠΈ Π΄Π°Π½Ρ‹ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΠΉ активности ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ информация ΠΏΠΎ соцдСму. Π£ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π±Ρ‹Π»ΠΈ извСстны MCC ΠΊΠΎΠ΄Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ "грязная" строка с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠΈ адрСсом Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΏΡ€ΠΎΠ΄Π°ΠΆ.

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ систСма Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΡ„Ρ„Π΅Ρ€Ρ‹ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ, исходя ΠΈΠ· Π΅Π³ΠΎ интСрСсов.

ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС нашСго Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ

Π—Π° врСмя Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½Π° ΠΌΡ‹ успСли ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΄Π²ΡƒΡ…ΡƒΡ€ΠΎΠ²Π½Π΅Π²ΡƒΡŽ модСль Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ для MCC/merchant_nm. Π’ качСствС Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ для ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ уровня Π±Ρ‹Π»ΠΈ взяты стандартныС Π±Π΅ΠΉΠ·Π»Π°ΠΉΠ½Ρ‹ EASE, SLIM, MultiVAE. Π”Π°Π»ΡŒΡˆΠ΅ ΠΈΡ… прСдсказания объСдинялись с соцдСм ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠ°ΠΌΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², ΠΈ статистиками ΠΏΠΎ MCC/ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°ΠΌ. ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π» Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½Ρ‹ΠΉ бустинг (модСль Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ уровня).

Π”Π°Π½Π½Ρ‹Π΅ Ρ€Π°Π·Π΄Π΅Π»ΠΈΠ»ΠΈ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π² ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ 80%/10%/10% для обучСния/Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ/тСста соотвСтствСнно. Π’Π°ΠΊ ΠΌΡ‹ ΡΡ‚Π°Ρ€Π°Π»ΠΈΡΡŒ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚ΡŒ сцСнарий оцСнивания ΠΊ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌΡƒ использованию ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ.

Π“Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½Ρ‹ΠΉ бустинг ΠΎΠ±ΡƒΡ‡Π΅Π½ Π½Π° интСракциях Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ. ΠšΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ подсчитаны ΠΏΠΎ тСсту. Π­Ρ‚ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ†ΠΈΠΈ Π½Π΅ Π²ΠΈΠ΄Π΅Π»ΠΈ Π½ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ уровня, Π½ΠΈ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½Ρ‹ΠΉ бустинг. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ считаСм, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ сравнСниС ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ собой ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ модСль, которая ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ всю Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ, динамичСски подсчитываСт характСристики ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°/mcc-ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ. Π’Π°ΠΊΠΆΠ΅ модСль сильно зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π³Π΄Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ (это слСдуСт ΠΈΠ· Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ самый Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈ).

Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

НСобходимо Π² ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π² ΠΏΠ°ΠΏΠΊΡƒ Data датасСты train_1.csv, train_2.csv.

Для Π±ΠΎΠ»Π΅Π΅ Π»Π΅Π³ΠΊΠΎΠΉ воспроизводмости модСль ΠΌΠΎΠΆΠ½ΠΎ воспроизвСсти Ρ‡Π΅Ρ€Π΅Π· docker. НСобходимо ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π· Ρ‡Π΅Ρ€Π΅Π· Dockerfile ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€. Для удобства ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ

chmod +x docker.sh
./docker.sh

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ зависимости, ΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄. Π‘Π½Π°Ρ‡Π°Π»Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠΌ Π΄Π°Π½Π½Ρ‹Π΅ Π² Π½ΡƒΠΆΠ½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚. ΠŸΠΎΡ‚ΠΎΠΌ ΠΎΠ±ΡƒΡ‡ΠΈΠΌ ΠΌΠΎΠ΄Π΅Π»ΠΈ

cd src
python3 process_data.py --item_col=mcc --nrows=1000000
python3 train_models.py --item_col=mcc
Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ±ΡƒΡ‡ΠΈΠΌ для ΠΌΠ°Π³Π°Π·ΠΈΠ½ΠΎΠ²
python3 process_data.py --item_col=merchant --nrows=1500000
python3 train_models.py --item_col=merchant

ПослС выполнСния этого скрипта Π² ΠΏΠ°ΠΏΠΊΠ΅ Data/artifacts появятся Ρ„Π°ΠΉΠ»Ρ‹ c вСсами ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ прСдсказания Π½Π° тСстовых ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΡ…. Для этого Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ

python3 get_predictions.py --transaction_path=PATH1 

ΠŸΡ€Π΅Π΄ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π»ΡƒΡ‡ΡˆΠ΅ΠΉ MCC ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ Π±ΡƒΠ΄ΡƒΡ‚ слоТСны сюда Data/predictions.csv.gz.

Π’Π°ΠΊ ΠΊΠ°ΠΊ нашая основная модСль ΠΊΠΎΠ»Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ MultiVAE ΡƒΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚Π΄Π°Π²Π°Ρ‚ΡŒ прСдсказания Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° основС ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ†ΠΈΠΉ, ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ сдСлали элСмСнтарноС API, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ позволяСт ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ прСдсказания ΠΏΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ, Π½Π° основС Ρ‚Π΅Ρ… MCC-ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Π» ΠΏΠΎΠΊΡƒΠΏΠΊΠΈ. Π’Π½ΡƒΡ‚Ρ€ΠΈ Π΄ΠΎΠΊΠ΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сСрвСр

uvicorn app:app --host 0.0.0.0 --port 8000 --reload

И ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Π» Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°Ρ…. 10 (litres) ΠΈ 61 - Π²Π½ΡƒΡ‚Ρ€Π΅Π½ΠΈΠ΅ Π°ΠΉΠ΄ΠΈ ΠΌΠ°Π³Π°Π·ΠΈΠ½ΠΎΠ²

http://127.0.0.1:8000/merchant_recommendations/?q=10__18

Для Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ:

http://127.0.0.1:8000/category_recommendations/?q=5411__5897

Π§Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ успСли ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½Π°

  • Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ модСль Π½Π° трансформСрС SASRec
  • ΠŸΠΎΠ΄Π±ΠΈΡ€Π°Ρ‚ΡŒ Π³ΠΈΠΏΠ΅Ρ€ΠΏΠ°Ρ€ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρƒ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Ρ‡Π΅Ρ€Π΅Π· Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΡŽ
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³Π΅ΠΎ

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages