Содержание
- 2. План работы: 1. Постановка задачи, исходные данные и что с ними нужно сделать. 2. Подсчет топ
- 3. Постановка задачи: Нам нужно разработать рекомендательную систему подбора товаров, исходя из индивидуальных особенностей каждого пользователя. Представим
- 4. Roadmap экспериментов: Постановка задачи «Наивный» алгоритм Implicit ALS Implicit kNN LightFM Работают на основе разряженных матриц
- 5. Разбор алгоритмов: 2. Implicit ALS (Alternating Least Squares) Хорошая удобная библиотека, главная фишка заключается в том,
- 6. Несколько слов о разряженных матрицах. Ключевым элементов в работе вышеописанных библиотек является т н разряженная матрица
- 7. Алгоритм на основе нейронной сети. В качестве вишенки на торте и чего-то по-настоящему рабочего было решено
- 8. Архитектура нейросети: 2 входа отдельно для продуктовых и пользовательских признаков Превращаем данные в одномерный тензор Объединение
- 9. Интересные наблюдения. Приведу две наиболее удачные конфигурации сетей: одна дала наилучшие финальные рекомендации, другая наивысшую точность
- 10. Некоторые технические моменты. Вид итогового датафрейма, отсортированного по величине выхода сигмоиды: Как дополнялись предсказания: Набор списка
- 12. Скачать презентацию
Слайд 2План работы:
1. Постановка задачи, исходные данные и что с ними нужно сделать.
2.
План работы:
1. Постановка задачи, исходные данные и что с ними нужно сделать.
2.

как идеал, к которому мы будем стремиться.
3. Roadmap работы, какие подходы и какие библиотеки использовались.
3.1 Иплисит ALS и kNN
3.2 LightFM
3.3 Нейросеть
4. Подведение итогов и вывод.
Слайд 3Постановка задачи:
Нам нужно разработать рекомендательную систему подбора товаров, исходя из индивидуальных особенностей
каждого
Постановка задачи:
Нам нужно разработать рекомендательную систему подбора товаров, исходя из индивидуальных особенностей
каждого

Нам нужно:
Вот это
Превратить вот в это
Получив при этом скор (MAP@10)
>= 0,2094
Но, стремится мы будем сюда ?
> 0,25
Слайд 4Roadmap экспериментов:
Постановка задачи
«Наивный» алгоритм
Implicit ALS
Implicit kNN
LightFM
Работают на основе разряженных матриц
Первичный анализ данных
Нейронная
Roadmap экспериментов:
Постановка задачи
«Наивный» алгоритм
Implicit ALS
Implicit kNN
LightFM
Работают на основе разряженных матриц
Первичный анализ данных
Нейронная

Выбор лучшей системы на основе полученных скоров
Слайд 5Разбор алгоритмов:
2. Implicit ALS (Alternating Least Squares)
Хорошая удобная библиотека, главная фишка заключается
Разбор алгоритмов:
2. Implicit ALS (Alternating Least Squares)
Хорошая удобная библиотека, главная фишка заключается

3. Implicit kNN (k Nearest Neighbours)
Метод из той же библиотеки, но основанный на другом принципе: он сравнивает величину с k ближайшими соседями для выявления сходств. Такой подход сработал лучше всего при 10 соседях, дав 0.12458 точности предсказаний. Однако до заданной планки это также существенно НЕ ДОТЯГИВАЕТ.
4. LightFM
Другая библиотека, также основанна на принципе разряженных матриц, однако при создании модели позволяет добавлять вспомогательные фичи для юзеров и айтемов, представляющих строки и столбцы такой матрицы. Кроме этого можно настраивать веса образцов, задавать функцию потерь и выбирать количество эпох обучения, совсем как в нейросетях. Система однако, может работать и по одной лишь матрице, только вот скор такая система по метрике МАР@10 дает наихудший, практически нулевой. Экспериментировать с ней дальше я не стал, не увидел смысла в добавлении фичей, т к вряд ли бы они улучшили скор на несколько порядков. Вердикт: НЕ ДОТЯГИВАЕТ.
Слайд 6Несколько слов о разряженных матрицах.
Ключевым элементов в работе вышеописанных библиотек является т
Несколько слов о разряженных матрицах.
Ключевым элементов в работе вышеописанных библиотек является т

Далее закодируем значения этих столбцов с помощью cat.codes и создадим из них 2 разряженных матрицы: одну «айтем-юзер» и другую «юзер-айтем». Первую будем использовать для обучения алгоритма, а вторую для предсказаний. Можно так же транспонировать одну матрицу и использовать для того и другого, но лучше срабатывает первый метод.
После того как матрицы готовы остается только обучить на одной из них алгоритмы и после предсказать(порекомендовать) на другой требуемый топ товаров для желаемого пользователя или списка пользователей.
Звучит это просто и легко, но…
Интересная проблема
В начале все было нормально и библиотека ставилась с помощью !pip install Implicit, но в один прекрасный день этот способ просто перестал работать
Клонирование с Github уменьшало точность в разы. Однако все работало и выполнялось точно так же
!sudo -H python3 -m pip install implicit --no-cache --force-reinstall --log ./implicit.txt – помогла только эта строчка! И тут я понял, что
Слайд 7Алгоритм на основе нейронной сети.
В качестве вишенки на торте и чего-то по-настоящему
Алгоритм на основе нейронной сети.
В качестве вишенки на торте и чего-то по-настоящему

Исходный набор признаков был преобразован и дополнен, и в итоге получилось 3 признака для пользователей и 6 для продуктов. В качестве таргета был взят факт повторного заказа того или иного продукта конкретным юзером. Весь сет был разбит на трэйн и тест выборки по принципу разницы между первым и последним номера заказа. Если разница была больше 1, то такие строки уходили в трэйн, если меньше – то в тест.
Идея была в том, чтобы по величине сырой сигмоиды после предсказаний судить о «силе» или весе того или иного продукта для конкретного пользователя, отсортировав все эти продукты по убыванию значения сигмоиды, можно было получить топ N. Не всегда это был топ 10, иногда больше, иногда меньше, ведь с некоторыми продуктами некоторые пользователи могли вовсе не взаимодействовать.
Итоговый сет из 10 продуктов добивался случайным образом из исторического топ10 для каждого юзера. Также он добивался и рандомом из всех возможных продуктов, но добивать из топ10 была выгодней для скора приблизительно на 0.015. Повторы естественно исключались.
Слайд 8Архитектура нейросети:
2 входа отдельно для продуктовых и пользовательских признаков
Превращаем данные в одномерный
Архитектура нейросети:
2 входа отдельно для продуктовых и пользовательских признаков
Превращаем данные в одномерный

Объединение
Некоторый стек полносвязных слоев. Он менялся в ходе экспериментов. Менялось
кол-во слоев, выходное пространство первого слоя и последующих, значение
регуляризации l2, общего для всех слоев.
Слайд 9Интересные наблюдения.
Приведу две наиболее удачные конфигурации сетей: одна дала наилучшие финальные рекомендации,
Интересные наблюдения.
Приведу две наиболее удачные конфигурации сетей: одна дала наилучшие финальные рекомендации,

Лучшие предсказания (MAP@10 - 0.27080, accuracy – 0.70)
Лучшая точность (MAP@10 - 25571, accuracy - 0.97)
Архитектура показана на пред. cлайде, Adam, lr=1e-3, reg. l2=0.01
4 dense(128, 64, 32, 16), Adam, lr=1e-3, reg. l2=0.001
Слайд 10Некоторые технические моменты.
Вид итогового датафрейма, отсортированного по величине выхода сигмоиды:
Как дополнялись предсказания:
Набор
Некоторые технические моменты.
Вид итогового датафрейма, отсортированного по величине выхода сигмоиды:
Как дополнялись предсказания:
Набор

fetch = rec_df.groupby('user_id')['product_id'].apply(list).reset_index()
swap = random.choices(top_10.tolist()[i], k=10)
for i in fetch.index:
while len(fetch['product_id'][i]) != 10:
if len(fetch['product_id'][i]) < 10:
fetch['product_id'][i].append([x for x in swap if x not in fetch['product_id'][i]]) # здесь исключаются повторы
elif len(fetch['product_id'][i]) > 10:
fetch['product_id'][i].remove(fetch['product_id'][i][-1]) # удаляем последний (наименее популярный элемент)
МКОУ «Вечерняя (сменная) общеобразовательная школа№20» г. Нефтекумск Обеспечение доступности всеобщего образования, дифферен
Социально-психологическое тестирование на территории Пермского края в 2020-2021 учебном году. Информация для обучающихся
Особенности покупки Поставщиками электрической энергии для покрытия собственных нужд в условиях НОРЭМ Новый порядок учета собст
8 Марта
Футбо́л
Проект специального привода радиально-сверлильного станка
Что и как изучает история Средних веков?
Коммерческие юридические лица
А.С. Пушкин и Защитники Отечества 1812 г.
ppt
Аппаратное обеспечение компьютера
В лесу родилась елочка Здравствуй, Кузенька! Сынок! Не серчай, Кузенька! Нельзя мне в избушке без домового.
Формы и методы государственной поддержки сельского хозяйства, регулирования агропродовольственных рынков и сельского развития в
Карбонаты
ЕГЭ — выбор будущего. Школьная аттестация в России
Правописание непроизносимых согласных в корне слова
Англия в XVI веке
Намазывание раствора на поверхность
История казачества Южного Урала
Приключения маленькой Сандры в большом мире. Фотоальбом
Инструкция по монтажу элементов к оформлению витрин
Пользовательский интерфейсWindViewer
Эксплуатация пружинных манометров для измерения давления
Итоговая аттестация по результатам работы в период испытательного срока и план активностей на 2022
Старая цена - 1630 Новая цена 815 Старая цена 2622 Новая цена 1311.
Международные объединения партий
Организация грузовых авиаперевозок
Состав почвы и ее плодородие