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

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



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

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

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

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

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

2 ответов

11 просмотров

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

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

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта