diff --git a/mypy.ini b/mypy.ini index 3e6252bc..eb9d0f09 100644 --- a/mypy.ini +++ b/mypy.ini @@ -1,2 +1,3 @@ [mypy] allow_untyped_calls = true +ignore_missing_imports = True diff --git a/notebooks/ALS_LightFM_MF.ipynb b/notebooks/ALS_LightFM_MF.ipynb new file mode 100644 index 00000000..fdb48263 --- /dev/null +++ b/notebooks/ALS_LightFM_MF.ipynb @@ -0,0 +1,4890 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "collapsed": false + }, + "source": [ + "# Домашнее задание\n", + "\n", + "Домашнее задание состоит из нескольких блоков.\n", + "\n", + "\n", + "## Эксперименты в ipynb ноутбуках (15 баллов)\n", + "- Необходимо будет перебрать $N$ моделей $(N \\geq 2)$ матричной факторизации и перебрать у них $K$ гиперпараметров $(K \\geq 2)$ **(6 баллов)**\n", + " - Для перебора гиперпараметров можно использовать [`Optuna`](https://github.com/optuna/optuna), [`Hyperopt`](https://github.com/hyperopt/hyperopt)\n", + "- Воспользоваться методом приближенного поиска соседей для выдачи рекомендаций. **(3 балла)**\n", + " - Можно использовать любые удобные: [`Annoy`](https://github.com/spotify/annoy), [`nmslib`](https://github.com/nmslib/nmslib) и.т.д\n", + "- Добавить 3 \"аватаров\" (искусственных пользователей) и посмотреть рекомендации итоговой модели на них. Объяснить почему добавили именно таких пользователей. **(3 балла)**\n", + "- Придумать как можно обработать рекомендации для холодных пользователей. **(3 балла)**\n", + "\n", + "Примечание: за невоспроизводимый код в ноутбуках (например, нарушен порядок выполнения ячеек, вызываются переменные, которые нигде не были объявлены ранее и.т.п) будут штрафы на усмотрение проверяющего.\n", + "\n", + "\n", + "## Реализация итоговой модели в сервисе (10 баллов)\n", + "- Пробитие бейзлайна $MAP@10 \\geq 0.074921$ **(6 баллов)**\n", + "- Код сервиса соответствует критериям читаемости и воспроизводимости **(4 балла)**" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import warnings\n", + "warnings.filterwarnings('ignore')" + ] + }, + { + "cell_type": "code", + "execution_count": 246, + "id": "e42a5585", + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import time\n", + "import random\n", + "from pathlib import Path\n", + "\n", + "import numpy as np\n", + "import optuna\n", + "import pandas as pd\n", + "\n", + "import nmslib\n", + "from implicit.als import AlternatingLeastSquares\n", + "from lightfm import LightFM\n", + "from rectools import Columns\n", + "from rectools.dataset import Dataset\n", + "from rectools.metrics import MAP, Precision, Recall, calc_metrics\n", + "from rectools.models import ImplicitALSWrapperModel, LightFMWrapperModel" + ] + }, + { + "cell_type": "code", + "execution_count": 180, + "id": "8cd36e1a", + "metadata": {}, + "outputs": [], + "source": [ + "os.environ['OPENBLAS_NUM_THREADS'] = \"1\"" + ] + }, + { + "cell_type": "code", + "execution_count": 185, + "id": "4cb722c3", + "metadata": {}, + "outputs": [], + "source": [ + "DATA_PATH = Path(\"../data/kion_train/\")" + ] + }, + { + "cell_type": "code", + "execution_count": 186, + "id": "8195e56b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "CPU times: user 2.61 s, sys: 924 ms, total: 3.53 s\n", + "Wall time: 5.74 s\n" + ] + } + ], + "source": [ + "%%time\n", + "users = pd.read_csv(DATA_PATH / 'users.csv')\n", + "items = pd.read_csv(DATA_PATH / 'items.csv')\n", + "interactions = pd.read_csv(DATA_PATH / 'interactions.csv')" + ] + }, + { + "cell_type": "code", + "execution_count": 187, + "id": "01c2bdef", + "metadata": {}, + "outputs": [], + "source": [ + "Columns.Datetime = 'last_watch_dt'" + ] + }, + { + "cell_type": "markdown", + "id": "00b5584e", + "metadata": {}, + "source": [ + "# Preprocess Interactions" + ] + }, + { + "cell_type": "code", + "execution_count": 188, + "id": "0a3b4b12", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
| \n", + " | user_id | \n", + "item_id | \n", + "last_watch_dt | \n", + "total_dur | \n", + "watched_pct | \n", + "
|---|---|---|---|---|---|
| 0 | \n", + "176549 | \n", + "9506 | \n", + "2021-05-11 | \n", + "4250 | \n", + "72.0 | \n", + "
| 1 | \n", + "699317 | \n", + "1659 | \n", + "2021-05-29 | \n", + "8317 | \n", + "100.0 | \n", + "
| 2 | \n", + "656683 | \n", + "7107 | \n", + "2021-05-09 | \n", + "10 | \n", + "0.0 | \n", + "
| 3 | \n", + "864613 | \n", + "7638 | \n", + "2021-07-05 | \n", + "14483 | \n", + "100.0 | \n", + "
| 4 | \n", + "964868 | \n", + "9506 | \n", + "2021-04-30 | \n", + "6725 | \n", + "100.0 | \n", + "
| \n", + " | user_id | \n", + "item_id | \n", + "last_watch_dt | \n", + "total_dur | \n", + "watched_pct | \n", + "weight | \n", + "
|---|---|---|---|---|---|---|
| 10 | \n", + "791466 | \n", + "8199 | \n", + "2021-07-27 | \n", + "713 | \n", + "9.0 | \n", + "1 | \n", + "
| 26 | \n", + "181144 | \n", + "10440 | \n", + "2021-08-08 | \n", + "27408 | \n", + "40.0 | \n", + "2 | \n", + "
| 37 | \n", + "161176 | \n", + "10440 | \n", + "2021-07-29 | \n", + "22 | \n", + "0.0 | \n", + "1 | \n", + "
| 38 | \n", + "21723 | \n", + "1819 | \n", + "2021-04-11 | \n", + "8535 | \n", + "100.0 | \n", + "5 | \n", + "
| 60 | \n", + "77216 | \n", + "8143 | \n", + "2021-05-08 | \n", + "660 | \n", + "11.0 | \n", + "1 | \n", + "
| ... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "
| 5476222 | \n", + "1007900 | \n", + "9728 | \n", + "2021-08-12 | \n", + "416 | \n", + "6.0 | \n", + "1 | \n", + "
| 5476225 | \n", + "882138 | \n", + "4716 | \n", + "2021-05-21 | \n", + "1594 | \n", + "2.0 | \n", + "1 | \n", + "
| 5476238 | \n", + "805174 | \n", + "13125 | \n", + "2021-06-27 | \n", + "1 | \n", + "0.0 | \n", + "1 | \n", + "
| 5476246 | \n", + "648596 | \n", + "12225 | \n", + "2021-08-13 | \n", + "76 | \n", + "0.0 | \n", + "1 | \n", + "
| 5476248 | \n", + "697262 | \n", + "15297 | \n", + "2021-08-20 | \n", + "18307 | \n", + "63.0 | \n", + "4 | \n", + "
355162 rows × 6 columns
\n", + "| \n", + " | user_id | \n", + "item_id | \n", + "last_watch_dt | \n", + "total_dur | \n", + "watched_pct | \n", + "weight | \n", + "
|---|---|---|---|---|---|---|
| 0 | \n", + "176549 | \n", + "9506 | \n", + "2021-05-11 | \n", + "4250 | \n", + "72.0 | \n", + "4 | \n", + "
| 1 | \n", + "699317 | \n", + "1659 | \n", + "2021-05-29 | \n", + "8317 | \n", + "100.0 | \n", + "5 | \n", + "
| 2 | \n", + "656683 | \n", + "7107 | \n", + "2021-05-09 | \n", + "10 | \n", + "0.0 | \n", + "1 | \n", + "
| 3 | \n", + "864613 | \n", + "7638 | \n", + "2021-07-05 | \n", + "14483 | \n", + "100.0 | \n", + "5 | \n", + "
| 4 | \n", + "964868 | \n", + "9506 | \n", + "2021-04-30 | \n", + "6725 | \n", + "100.0 | \n", + "5 | \n", + "
| ... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "
| 5476246 | \n", + "648596 | \n", + "12225 | \n", + "2021-08-13 | \n", + "76 | \n", + "0.0 | \n", + "1 | \n", + "
| 5476247 | \n", + "546862 | \n", + "9673 | \n", + "2021-04-13 | \n", + "2308 | \n", + "49.0 | \n", + "3 | \n", + "
| 5476248 | \n", + "697262 | \n", + "15297 | \n", + "2021-08-20 | \n", + "18307 | \n", + "63.0 | \n", + "4 | \n", + "
| 5476249 | \n", + "384202 | \n", + "16197 | \n", + "2021-04-19 | \n", + "6203 | \n", + "100.0 | \n", + "5 | \n", + "
| 5476250 | \n", + "319709 | \n", + "4436 | \n", + "2021-08-15 | \n", + "3921 | \n", + "45.0 | \n", + "3 | \n", + "
5475423 rows × 6 columns
\n", + "| \n", + " | item_id | \n", + "
|---|---|
| 10440 | \n", + "45695 | \n", + "
| 15297 | \n", + "39309 | \n", + "
| 2657 | \n", + "20474 | \n", + "
| 9728 | \n", + "15140 | \n", + "
| 4740 | \n", + "11455 | \n", + "
| ... | \n", + "... | \n", + "
| 1946 | \n", + "1 | \n", + "
| 13886 | \n", + "1 | \n", + "
| 14090 | \n", + "1 | \n", + "
| 5730 | \n", + "1 | \n", + "
| 13125 | \n", + "1 | \n", + "
6440 rows × 1 columns
\n", + "| \n", + " | user_id | \n", + "age | \n", + "income | \n", + "sex | \n", + "kids_flg | \n", + "
|---|---|---|---|---|---|
| 0 | \n", + "973171 | \n", + "age_25_34 | \n", + "income_60_90 | \n", + "М | \n", + "1 | \n", + "
| 1 | \n", + "962099 | \n", + "age_18_24 | \n", + "income_20_40 | \n", + "М | \n", + "0 | \n", + "
| 2 | \n", + "1047345 | \n", + "age_45_54 | \n", + "income_40_60 | \n", + "Ж | \n", + "0 | \n", + "
| 3 | \n", + "721985 | \n", + "age_45_54 | \n", + "income_20_40 | \n", + "Ж | \n", + "0 | \n", + "
| 4 | \n", + "704055 | \n", + "age_35_44 | \n", + "income_60_90 | \n", + "Ж | \n", + "0 | \n", + "
| ... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "
| 840192 | \n", + "339025 | \n", + "age_65_inf | \n", + "income_0_20 | \n", + "Ж | \n", + "0 | \n", + "
| 840193 | \n", + "983617 | \n", + "age_18_24 | \n", + "income_20_40 | \n", + "Ж | \n", + "1 | \n", + "
| 840194 | \n", + "251008 | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "0 | \n", + "
| 840195 | \n", + "590706 | \n", + "NaN | \n", + "NaN | \n", + "Ж | \n", + "0 | \n", + "
| 840196 | \n", + "166555 | \n", + "age_65_inf | \n", + "income_20_40 | \n", + "Ж | \n", + "0 | \n", + "
840197 rows × 5 columns
\n", + "| \n", + " | user_id | \n", + "age | \n", + "income | \n", + "sex | \n", + "kids_flg | \n", + "
|---|---|---|---|---|---|
| 0 | \n", + "973171 | \n", + "age_25_34 | \n", + "income_60_90 | \n", + "М | \n", + "1 | \n", + "
| 1 | \n", + "962099 | \n", + "age_18_24 | \n", + "income_20_40 | \n", + "М | \n", + "0 | \n", + "
| 3 | \n", + "721985 | \n", + "age_45_54 | \n", + "income_20_40 | \n", + "Ж | \n", + "0 | \n", + "
| 4 | \n", + "704055 | \n", + "age_35_44 | \n", + "income_60_90 | \n", + "Ж | \n", + "0 | \n", + "
| 5 | \n", + "1037719 | \n", + "age_45_54 | \n", + "income_60_90 | \n", + "М | \n", + "0 | \n", + "
| ... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "
| 840184 | \n", + "529394 | \n", + "age_25_34 | \n", + "income_40_60 | \n", + "Ж | \n", + "0 | \n", + "
| 840186 | \n", + "80113 | \n", + "age_25_34 | \n", + "income_40_60 | \n", + "Ж | \n", + "0 | \n", + "
| 840188 | \n", + "312839 | \n", + "age_65_inf | \n", + "income_60_90 | \n", + "Ж | \n", + "0 | \n", + "
| 840189 | \n", + "191349 | \n", + "age_45_54 | \n", + "income_40_60 | \n", + "М | \n", + "1 | \n", + "
| 840190 | \n", + "393868 | \n", + "age_25_34 | \n", + "income_20_40 | \n", + "М | \n", + "0 | \n", + "
586653 rows × 5 columns
\n", + "| \n", + " | id | \n", + "value | \n", + "feature | \n", + "
|---|---|---|---|
| 0 | \n", + "973171 | \n", + "М | \n", + "sex | \n", + "
| 1 | \n", + "962099 | \n", + "М | \n", + "sex | \n", + "
| 3 | \n", + "721985 | \n", + "Ж | \n", + "sex | \n", + "
| 4 | \n", + "704055 | \n", + "Ж | \n", + "sex | \n", + "
| 5 | \n", + "1037719 | \n", + "М | \n", + "sex | \n", + "
| \n", + " | item_id | \n", + "content_type | \n", + "title | \n", + "title_orig | \n", + "release_year | \n", + "genres | \n", + "countries | \n", + "for_kids | \n", + "age_rating | \n", + "studios | \n", + "directors | \n", + "actors | \n", + "description | \n", + "keywords | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "10711 | \n", + "film | \n", + "Поговори с ней | \n", + "Hable con ella | \n", + "2002.0 | \n", + "драмы, зарубежные, детективы, мелодрамы | \n", + "Испания | \n", + "NaN | \n", + "16.0 | \n", + "NaN | \n", + "Педро Альмодовар | \n", + "Адольфо Фернандес, Ана Фернандес, Дарио Гранди... | \n", + "Мелодрама легендарного Педро Альмодовара «Пого... | \n", + "Поговори, ней, 2002, Испания, друзья, любовь, ... | \n", + "
| 1 | \n", + "2508 | \n", + "film | \n", + "Голые перцы | \n", + "Search Party | \n", + "2014.0 | \n", + "зарубежные, приключения, комедии | \n", + "США | \n", + "NaN | \n", + "16.0 | \n", + "NaN | \n", + "Скот Армстронг | \n", + "Адам Палли, Брайан Хаски, Дж.Б. Смув, Джейсон ... | \n", + "Уморительная современная комедия на популярную... | \n", + "Голые, перцы, 2014, США, друзья, свадьбы, прео... | \n", + "
| 2 | \n", + "10716 | \n", + "film | \n", + "Тактическая сила | \n", + "Tactical Force | \n", + "2011.0 | \n", + "криминал, зарубежные, триллеры, боевики, комедии | \n", + "Канада | \n", + "NaN | \n", + "16.0 | \n", + "NaN | \n", + "Адам П. Калтраро | \n", + "Адриан Холмс, Даррен Шалави, Джерри Вассерман,... | \n", + "Профессиональный рестлер Стив Остин («Все или ... | \n", + "Тактическая, сила, 2011, Канада, бандиты, ганг... | \n", + "
| 3 | \n", + "7868 | \n", + "film | \n", + "45 лет | \n", + "45 Years | \n", + "2015.0 | \n", + "драмы, зарубежные, мелодрамы | \n", + "Великобритания | \n", + "NaN | \n", + "16.0 | \n", + "NaN | \n", + "Эндрю Хэй | \n", + "Александра Риддлстон-Барретт, Джеральдин Джейм... | \n", + "Шарлотта Рэмплинг, Том Кортни, Джеральдин Джей... | \n", + "45, лет, 2015, Великобритания, брак, жизнь, лю... | \n", + "
| 4 | \n", + "16268 | \n", + "film | \n", + "Все решает мгновение | \n", + "NaN | \n", + "1978.0 | \n", + "драмы, спорт, советские, мелодрамы | \n", + "СССР | \n", + "NaN | \n", + "12.0 | \n", + "Ленфильм | \n", + "Виктор Садовский | \n", + "Александр Абдулов, Александр Демьяненко, Алекс... | \n", + "Расчетливая чаровница из советского кинохита «... | \n", + "Все, решает, мгновение, 1978, СССР, сильные, ж... | \n", + "
| \n", + " | id | \n", + "value | \n", + "feature | \n", + "
|---|---|---|---|
| 0 | \n", + "10711 | \n", + "драмы | \n", + "genre | \n", + "
| 0 | \n", + "10711 | \n", + "зарубежные | \n", + "genre | \n", + "
| 0 | \n", + "10711 | \n", + "детективы | \n", + "genre | \n", + "
| 0 | \n", + "10711 | \n", + "мелодрамы | \n", + "genre | \n", + "
| 1 | \n", + "2508 | \n", + "зарубежные | \n", + "genre | \n", + "
| \n", + " | id | \n", + "value | \n", + "feature | \n", + "
|---|---|---|---|
| 0 | \n", + "10711 | \n", + "драмы | \n", + "genre | \n", + "
| 0 | \n", + "10711 | \n", + "зарубежные | \n", + "genre | \n", + "
| 0 | \n", + "10711 | \n", + "детективы | \n", + "genre | \n", + "
| 0 | \n", + "10711 | \n", + "мелодрамы | \n", + "genre | \n", + "
| 1 | \n", + "2508 | \n", + "зарубежные | \n", + "genre | \n", + "
| ... | \n", + "... | \n", + "... | \n", + "... | \n", + "
| 15960 | \n", + "10632 | \n", + "криминал | \n", + "genre | \n", + "
| 15961 | \n", + "4538 | \n", + "драмы | \n", + "genre | \n", + "
| 15961 | \n", + "4538 | \n", + "спорт | \n", + "genre | \n", + "
| 15961 | \n", + "4538 | \n", + "криминал | \n", + "genre | \n", + "
| 15962 | \n", + "3206 | \n", + "комедии | \n", + "genre | \n", + "
36128 rows × 3 columns
\n", + "| \n", + " | id | \n", + "value | \n", + "feature | \n", + "
|---|---|---|---|
| 0 | \n", + "10711 | \n", + "film | \n", + "content_type | \n", + "
| 1 | \n", + "2508 | \n", + "film | \n", + "content_type | \n", + "
| 2 | \n", + "10716 | \n", + "film | \n", + "content_type | \n", + "
| 3 | \n", + "7868 | \n", + "film | \n", + "content_type | \n", + "
| 4 | \n", + "16268 | \n", + "film | \n", + "content_type | \n", + "
| \n", + " | id | \n", + "value | \n", + "feature | \n", + "
|---|---|---|---|
| 0 | \n", + "10711 | \n", + "адольфо фернандес | \n", + "actors | \n", + "
| 0 | \n", + "10711 | \n", + "ана фернандес | \n", + "actors | \n", + "
| 0 | \n", + "10711 | \n", + "дарио грандинетти | \n", + "actors | \n", + "
| 0 | \n", + "10711 | \n", + "джеральдин чаплин | \n", + "actors | \n", + "
| 0 | \n", + "10711 | \n", + "елена анайя | \n", + "actors | \n", + "
| \n", + " | id | \n", + "value | \n", + "feature | \n", + "
|---|---|---|---|
| 0 | \n", + "10711 | \n", + "поговори | \n", + "keywords | \n", + "
| 0 | \n", + "10711 | \n", + "ней | \n", + "keywords | \n", + "
| 0 | \n", + "10711 | \n", + "2002 | \n", + "keywords | \n", + "
| 0 | \n", + "10711 | \n", + "испания | \n", + "keywords | \n", + "
| 0 | \n", + "10711 | \n", + "друзья | \n", + "keywords | \n", + "
| \n", + " | id | \n", + "value | \n", + "feature | \n", + "
|---|---|---|---|
| 0 | \n", + "10711 | \n", + "Испания | \n", + "countries | \n", + "
| 1 | \n", + "2508 | \n", + "США | \n", + "countries | \n", + "
| 2 | \n", + "10716 | \n", + "Канада | \n", + "countries | \n", + "
| 3 | \n", + "7868 | \n", + "Великобритания | \n", + "countries | \n", + "
| 4 | \n", + "16268 | \n", + "СССР | \n", + "countries | \n", + "
| \n", + " | id | \n", + "value | \n", + "feature | \n", + "
|---|---|---|---|
| 0 | \n", + "10711 | \n", + "16.0 | \n", + "age_feature | \n", + "
| 1 | \n", + "2508 | \n", + "16.0 | \n", + "age_feature | \n", + "
| 2 | \n", + "10716 | \n", + "16.0 | \n", + "age_feature | \n", + "
| 3 | \n", + "7868 | \n", + "16.0 | \n", + "age_feature | \n", + "
| 4 | \n", + "16268 | \n", + "12.0 | \n", + "age_feature | \n", + "
| \n", + " | id | \n", + "value | \n", + "feature | \n", + "
|---|---|---|---|
| 0 | \n", + "10711 | \n", + "NaN | \n", + "studios | \n", + "
| 1 | \n", + "2508 | \n", + "NaN | \n", + "studios | \n", + "
| 2 | \n", + "10716 | \n", + "NaN | \n", + "studios | \n", + "
| 3 | \n", + "7868 | \n", + "NaN | \n", + "studios | \n", + "
| 4 | \n", + "16268 | \n", + "Ленфильм | \n", + "studios | \n", + "
| \n", + " | id | \n", + "value | \n", + "feature | \n", + "
|---|---|---|---|
| 0 | \n", + "10711 | \n", + "драмы | \n", + "genre | \n", + "
| 0 | \n", + "10711 | \n", + "зарубежные | \n", + "genre | \n", + "
| 0 | \n", + "10711 | \n", + "детективы | \n", + "genre | \n", + "
| 0 | \n", + "10711 | \n", + "мелодрамы | \n", + "genre | \n", + "
| 1 | \n", + "2508 | \n", + "зарубежные | \n", + "genre | \n", + "
| \n", + " | user_id | \n", + "item_id | \n", + "last_watch_dt | \n", + "total_dur | \n", + "watched_pct | \n", + "weight | \n", + "
|---|---|---|---|---|---|---|
| 0 | \n", + "11111111 | \n", + "10732 | \n", + "2021-08-22 | \n", + "34343 | \n", + "100.0 | \n", + "5 | \n", + "
| 1 | \n", + "11111111 | \n", + "3369 | \n", + "2021-08-19 | \n", + "6000 | \n", + "95.0 | \n", + "5 | \n", + "
| 2 | \n", + "11111111 | \n", + "15885 | \n", + "2021-08-17 | \n", + "9000 | \n", + "99.0 | \n", + "5 | \n", + "
| 3 | \n", + "11111112 | \n", + "3506 | \n", + "2021-08-20 | \n", + "5000 | \n", + "67.0 | \n", + "3 | \n", + "
| 4 | \n", + "11111112 | \n", + "1107 | \n", + "2021-08-14 | \n", + "45452 | \n", + "95.0 | \n", + "5 | \n", + "
| 5 | \n", + "11111112 | \n", + "11235 | \n", + "2021-08-19 | \n", + "9000 | \n", + "99.0 | \n", + "5 | \n", + "
| 6 | \n", + "11111113 | \n", + "931 | \n", + "2021-08-14 | \n", + "5000 | \n", + "100.0 | \n", + "5 | \n", + "
| 7 | \n", + "11111113 | \n", + "389 | \n", + "2021-08-19 | \n", + "3200 | \n", + "53.0 | \n", + "2 | \n", + "
| 8 | \n", + "11111113 | \n", + "8315 | \n", + "2021-08-22 | \n", + "3232 | \n", + "99.0 | \n", + "5 | \n", + "
| \n", + " | user_id | \n", + "item_id | \n", + "score | \n", + "rank | \n", + "
|---|---|---|---|---|
| 0 | \n", + "11111111 | \n", + "11985 | \n", + "0.040700 | \n", + "1 | \n", + "
| 1 | \n", + "11111111 | \n", + "2954 | \n", + "0.039466 | \n", + "2 | \n", + "
| 2 | \n", + "11111111 | \n", + "7310 | \n", + "0.036591 | \n", + "3 | \n", + "
| 3 | \n", + "11111111 | \n", + "3182 | \n", + "0.035423 | \n", + "4 | \n", + "
| 4 | \n", + "11111111 | \n", + "4475 | \n", + "0.034422 | \n", + "5 | \n", + "
| 5 | \n", + "11111112 | \n", + "7793 | \n", + "0.035639 | \n", + "1 | \n", + "
| 6 | \n", + "11111112 | \n", + "4702 | \n", + "0.035139 | \n", + "2 | \n", + "
| 7 | \n", + "11111112 | \n", + "16361 | \n", + "0.034857 | \n", + "3 | \n", + "
| 8 | \n", + "11111112 | \n", + "1287 | \n", + "0.034327 | \n", + "4 | \n", + "
| 9 | \n", + "11111112 | \n", + "11018 | \n", + "0.032349 | \n", + "5 | \n", + "
| 10 | \n", + "11111113 | \n", + "1916 | \n", + "0.245655 | \n", + "1 | \n", + "
| 11 | \n", + "11111113 | \n", + "14470 | \n", + "0.242786 | \n", + "2 | \n", + "
| 12 | \n", + "11111113 | \n", + "101 | \n", + "0.219231 | \n", + "3 | \n", + "
| 13 | \n", + "11111113 | \n", + "12463 | \n", + "0.206615 | \n", + "4 | \n", + "
| 14 | \n", + "11111113 | \n", + "5732 | \n", + "0.183012 | \n", + "5 | \n", + "
| \n", + " | user_id | \n", + "item_id | \n", + "score | \n", + "rank | \n", + "content_type | \n", + "title | \n", + "title_orig | \n", + "release_year | \n", + "genres | \n", + "countries | \n", + "for_kids | \n", + "age_rating | \n", + "studios | \n", + "directors | \n", + "actors | \n", + "description | \n", + "keywords | \n", + "genre | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "11111111 | \n", + "11985 | \n", + "0.040700 | \n", + "1 | \n", + "film | \n", + "История игрушек 4 | \n", + "Toy Story 4 | \n", + "2019.0 | \n", + "мультфильм, фэнтези, комедии | \n", + "США | \n", + "NaN | \n", + "6.0 | \n", + "NaN | \n", + "Джош Кули | \n", + "[том хэнкс, тим аллен, энни поттс, тони хейл, ... | \n", + "Космический рейнджер Баз Лайтер, ковбой Вуди, ... | \n", + "[игрушка, дружба, ковбой, история игрушек 4, ,... | \n", + "[мультфильм, фэнтези, комедии] | \n", + "
| 1 | \n", + "11111111 | \n", + "2954 | \n", + "0.039466 | \n", + "2 | \n", + "film | \n", + "Миньоны | \n", + "Minions | \n", + "2015.0 | \n", + "фантастика, мультфильм, приключения, комедии | \n", + "США | \n", + "NaN | \n", + "6.0 | \n", + "NaN | \n", + "Кайл Балда, Пьер Коффан | \n", + "[сандра буллок, джон хэмм, майкл китон, эллисо... | \n", + "Миньоны живут на планете гораздо дольше нас. У... | \n", + "[помощник, сцена после титров, сцена во время ... | \n", + "[фантастика, мультфильм, приключения, комедии] | \n", + "
| 2 | \n", + "11111111 | \n", + "7310 | \n", + "0.036591 | \n", + "3 | \n", + "film | \n", + "Гадкий я 2 | \n", + "Despicable Me 2 | \n", + "2013.0 | \n", + "мультфильм, приключения, фантастика, фэнтези, ... | \n", + "США, Франция, Япония | \n", + "NaN | \n", + "0.0 | \n", + "NaN | \n", + "Пьер Коффан, Крис Рено | \n", + "[стив карелл, кристен уиг, бенджамин брэтт, ми... | \n", + "В то время как Грю, бывший суперзлодей, приспо... | \n", + "[отношения родитель-ребенок, секретный агент, ... | \n", + "[мультфильм, приключения, фантастика, фэнтези,... | \n", + "
| 3 | \n", + "11111111 | \n", + "3182 | \n", + "0.035423 | \n", + "4 | \n", + "film | \n", + "Ральф против Интернета | \n", + "Ralph Breaks the Internet | \n", + "2018.0 | \n", + "мультфильм, приключения, фантастика, семейное,... | \n", + "США | \n", + "NaN | \n", + "6.0 | \n", + "NaN | \n", + "Рич Мур, Фил Джонстон | \n", + "[джон си райли, сара силверман, галь гадот, та... | \n", + "На этот раз Ральф и Ванилопа фон Кекс выйдут з... | \n", + "[видеоигра, мультфильм, продолжение, интернет,... | \n", + "[мультфильм, приключения, фантастика, семейное... | \n", + "
| 4 | \n", + "11111111 | \n", + "4475 | \n", + "0.034422 | \n", + "5 | \n", + "film | \n", + "Тачки | \n", + "Cars | \n", + "2006.0 | \n", + "спорт, мультфильм, комедии | \n", + "США | \n", + "NaN | \n", + "6.0 | \n", + "NaN | \n", + "Джон Лассетер, Джо Рэнфт | \n", + "[оуэн уилсон, пол ньюман, бонни хант, ларри-ка... | \n", + "Неукротимый в своем желании всегда и во всем п... | \n", + "[автомобильная гонка, трасса 66, porsche, выхо... | \n", + "[спорт, мультфильм, комедии] | \n", + "
| 5 | \n", + "11111112 | \n", + "7793 | \n", + "0.035639 | \n", + "1 | \n", + "film | \n", + "Радиовспышка | \n", + "Radioflash | \n", + "2019.0 | \n", + "боевики, драмы, фантастика, триллеры | \n", + "США | \n", + "NaN | \n", + "16.0 | \n", + "NaN | \n", + "Бен Макферсон | \n", + "[брайтон шарбино, доминик монахэн, уилл пэттон... | \n", + "Риз с легкостью проходит виртуальные квесты, н... | \n", + "[2019, соединенные штаты, радиовспышка] | \n", + "[боевики, драмы, фантастика, триллеры] | \n", + "
| 6 | \n", + "11111112 | \n", + "4702 | \n", + "0.035139 | \n", + "2 | \n", + "film | \n", + "Хищник | \n", + "Predator | \n", + "1987.0 | \n", + "боевики, фантастика, триллеры, приключения | \n", + "США, Мексика | \n", + "NaN | \n", + "16.0 | \n", + "NaN | \n", + "Джон МакТирнан | \n", + "[арнольд шварценеггер, карл уэзерс, эльпидия к... | \n", + "Американский вертолет был сбит партизанами в Ю... | \n", + "[центральная и южная америка, хищник, иноплане... | \n", + "[боевики, фантастика, триллеры, приключения] | \n", + "
| 7 | \n", + "11111112 | \n", + "16361 | \n", + "0.034857 | \n", + "3 | \n", + "film | \n", + "Doom: Аннигиляция | \n", + "Doom: Annihilation | \n", + "2019.0 | \n", + "боевики, ужасы, фантастика, триллеры | \n", + "США | \n", + "NaN | \n", + "18.0 | \n", + "NaN | \n", + "Тони Гиглио | \n", + "[эми мэнсон, доминик мафэм, люк аллен-гейл, дж... | \n", + "Отряд морпехов прилетает на марсианский спутни... | \n", + "[планета марс, ад, космос, демон, по мотивам в... | \n", + "[боевики, ужасы, фантастика, триллеры] | \n", + "
| 8 | \n", + "11111112 | \n", + "1287 | \n", + "0.034327 | \n", + "4 | \n", + "film | \n", + "Терминатор: Тёмные судьбы | \n", + "Terminator: Dark Fate | \n", + "2019.0 | \n", + "боевики, фантастика, приключения | \n", + "США, Китай | \n", + "NaN | \n", + "16.0 | \n", + "NaN | \n", + "Тим Миллер | \n", + "[линда хэмилтон, арнольд шварценеггер, маккенз... | \n", + "Мексика. Милая девушка Даниэла Рамос, а для др... | \n", + "[искуственный интеллект, киборг, вертолет, мех... | \n", + "[боевики, фантастика, приключения] | \n", + "
| 9 | \n", + "11111112 | \n", + "11018 | \n", + "0.032349 | \n", + "5 | \n", + "film | \n", + "Хищники | \n", + "Predators | \n", + "2010.0 | \n", + "боевики, фантастика, триллеры, приключения | \n", + "США | \n", + "NaN | \n", + "16.0 | \n", + "NaN | \n", + "Нимрод Антал | \n", + "[эдриан броуди, тофер грейс, алиси брага, уолт... | \n", + "Наемник Ройс невольно вынужден возглавить груп... | \n", + "[охотник, хищник, якудза, охота на людей, иноп... | \n", + "[боевики, фантастика, триллеры, приключения] | \n", + "
| 10 | \n", + "11111113 | \n", + "1916 | \n", + "0.245655 | \n", + "1 | \n", + "film | \n", + "Секс и ничего лишнего | \n", + "My Awkward Sexual Adventure | \n", + "2012.0 | \n", + "мелодрамы | \n", + "Канада | \n", + "NaN | \n", + "18.0 | \n", + "NaN | \n", + "Шон Гэррити | \n", + "[джонас черник, эмили хэмпшир, сара мэннинен, ... | \n", + "Чтобы вернуть свою неудовлетворенную бывшую де... | \n", + "[нижнее белье, массажистка, секс втроем, фалло... | \n", + "[мелодрамы] | \n", + "
| 11 | \n", + "11111113 | \n", + "14470 | \n", + "0.242786 | \n", + "2 | \n", + "film | \n", + "Любовь | \n", + "Love | \n", + "2015.0 | \n", + "драмы, мелодрамы | \n", + "Франция | \n", + "NaN | \n", + "18.0 | \n", + "NaN | \n", + "Гаспар Ноэ | \n", + "[аоми муйок, карл глусман, клара кристин, уго ... | \n", + "Любовь вне добра и зла. Любовь — это генетичес... | \n", + "[париж, франция, секс, сексуальность, галерея,... | \n", + "[драмы, мелодрамы] | \n", + "
| 12 | \n", + "11111113 | \n", + "101 | \n", + "0.219231 | \n", + "3 | \n", + "film | \n", + "Куриоса | \n", + "Curiosa | \n", + "2019.0 | \n", + "историческое, мелодрамы | \n", + "Франция | \n", + "NaN | \n", + "18.0 | \n", + "NaN | \n", + "Лу Жене | \n", + "[ноэми мерлан, нильс шнайдер, бенжамен лаверн,... | \n", + "Историческая драма про любовный треугольник, к... | \n", + "[, 1890-е, большой пенис, брак без секса, вдох... | \n", + "[историческое, мелодрамы] | \n", + "
| 13 | \n", + "11111113 | \n", + "12463 | \n", + "0.206615 | \n", + "4 | \n", + "film | \n", + "Студентка по вызову | \n", + "Mes chères études | \n", + "2010.0 | \n", + "драмы, мелодрамы | \n", + "Франция | \n", + "NaN | \n", + "18.0 | \n", + "NaN | \n", + "Эмманюэль Берко | \n", + "[дебора франсуа, ален коши, матье деми, бенжам... | \n", + "Лаура — 19-летняя первокурсница французского у... | \n", + "[франция, гостиница, по роману или книге, гост... | \n", + "[драмы, мелодрамы] | \n", + "
| 14 | \n", + "11111113 | \n", + "5732 | \n", + "0.183012 | \n", + "5 | \n", + "film | \n", + "Тайное влечение | \n", + "Adore | \n", + "2013.0 | \n", + "драмы, мелодрамы | \n", + "Австралия, Франция | \n", + "NaN | \n", + "16.0 | \n", + "NaN | \n", + "Анн Фонтен | \n", + "[наоми уоттс, робин райт, завьер сэмюэл, джейм... | \n", + "Главные героини картины – Лил и Роз — две давн... | \n", + "[пляж, нагота, любовники, месть, лучший друг, ... | \n", + "[драмы, мелодрамы] | \n", + "
| \n", + " | user_id | \n", + "item_id | \n", + "
|---|---|---|
| 0 | \n", + "0 | \n", + "32 | \n", + "
| 1 | \n", + "0 | \n", + "19 | \n", + "
| 2 | \n", + "0 | \n", + "43 | \n", + "
| 3 | \n", + "0 | \n", + "62 | \n", + "
| 4 | \n", + "0 | \n", + "449 | \n", + "
| ... | \n", + "... | \n", + "... | \n", + "
| 7565445 | \n", + "756544 | \n", + "43 | \n", + "
| 7565446 | \n", + "756544 | \n", + "29 | \n", + "
| 7565447 | \n", + "756544 | \n", + "100 | \n", + "
| 7565448 | \n", + "756544 | \n", + "105 | \n", + "
| 7565449 | \n", + "756544 | \n", + "268 | \n", + "
7565450 rows × 2 columns
\n", + "