215 похожих чатов

Всем привет! Есть пара вопросиков, возможно кто-то тут сможет подсказать 🙂



решаю задачу коллаборативной фильтрации пользователей.

На входе вектора (нули и единицы) для каждого пользователя, которые описывают кликнул пользователь на продукт или нет.

У меня была идея, что если пропустить такие вектора через VAE, то на скрытом слое (2 мерный или 3 мерный) отпечатается какая-то фундаментальная информация о близости пользователей, которую я бы потом смог использовать для коллаб фильтрации...

Насколько это вообще здравая затея? У меня этот вопрос возник потому что на выходе из VAE входящие вектора как-то плохо восстанавливаются =/ Я не понимаю почему. Входящий вектор длинной 250, скрытый длиной 3. Для лосса пробовал использовать BCEWithLogitsLoss (выход VAE без активации), пробовал DICE. С дайсом все вообще очень плохо, хотя мне казалось что DICE как раз бы должен лучше всего работать =/

Возможно мало данных? Пытаюсь учить на данных от 500 пользователей =/

2 ответов

5 просмотров

Скорее всего, эта идея и не особо будет работать, так как вы подаёте автокодировщику некоторые данные, которые несут информацию разве что в совокупности. То есть, конкретный вектор такого вида, который вы описали, не содержит в себе каких-либо признаков, которые были бы существенно информативными для восстановления через автокодировщик. При решении подобных задач обычно используют методы, связанные со сходством пользователей на основе этих векторов (грубо говоря, пользователь будет действовать примерно также, как действуют похожие на него пользователи). Одним из классических подходов для этих целей является декомпозиция матрицы (пользователь, продукт) на произведение из двух матриц: (пользователь, <абстрактный признак>), (<абстрактный признак>, продукт) через классические методы разложения матриц. Почему бы для начала не взять его?

Alexey-Lysenko 👾👽🤖 Автор вопроса
Иван Томилов
Скорее всего, эта идея и не особо будет работать, ...

Как я прочитал, часто решают эту задачу используя Cosine similarity векторов пользователей. У меня была идея, что раз уж одинаковость векторов (входных) говорит о близости пользователей, то и скрытый вектор VAE тоже сможет представлять из себя близкое положение пользователей. Но на каком-то более фундаментальном уровне =/ Ведь для того, чтобы раскодировать одинаковый вектор, нужно чтобы и скрытый был тоже близким или таким-же... Какая-то такая вот гипотеза была

Похожие вопросы

Обсуждают сегодня

А чем вам питонисты не угодили?😂
.
79
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Anyone knows how to build this widget in Flutter? I have all the assets for round stations and the road, but how can I make the my widget animate between these stations? And h...
Mohammad Zamani
9
короче я не выдержал постоянно определять структуры, чтобы возвращать массивы разных типов. Как обычно еще это делают?
Павλо 🇺🇦
7
Подскажите как мне лучше держать websocket сединение и переодически передавать в него данные? Сначала я сделал так: for _ in 1...1000 { try? await ws.send("test") try...
Mihail Verenich
2
Ты просто гитлеровскую эстетику плохо понимаешь. Он же всё под Цезаря делал. А это как бы запрещённый приём в политике. Пиджаки они зачем все носят? Чтобы показать что они тип...
Ivan Kropotkin
4
А цены чем оправданы?
Lencore
7
Добрый вѣчер! Помню не раз было, но 1001 раз не лишний. Почему данные (элементы) из TList<TMyClass> куда то деваются? Точнее ранее прикопаный на них указатель больше не указыв...
Евгений
3
Карта сайта