Всем привет!
В общем, мне скоро защищать диплом. Нужно уметь определять пол и возраст пользователей на основе музыки, которую они слушают. Требуют "научной новизны" (с).
В общем, у меня имеется выборка пользователей (96000+ штук) с сайта Last.fm. У каждого пользователя указан пол и число полных лет. У каждого пользователя имеется топ-50 его самых прослушиваемых исполнителей.
Идея только одна - рассмотреть пользователей как документы, а их исполнителей, как слова в этом документе. Затем описать документы с помощью TF-IDF(
https://ru.wikipedia.org/wiki/TF-IDF) модели или же Log-entropy. Получается огромная сильно-разреженная матрица слово-документ. Можно понизить её размерность, используя методы тематического моделирования, например LDA (
https://en.wikipedia.org/wiki/Latent_Dirichlet_allocation). В результате получается матрица тема-документ (где число тем мы произвольно выбираем). Здесь хорошо заходит метод под названием LSI (
https://en.wikipedia.org/wiki/Latent_semantic_indexing). Затем применяем к получившемуся классификатор или регрессор и меряем точность, например SVM (
https://en.wikipedia.org/wiki/Support_vector_machine). Но здесь нету никакой "Научной новизны"
Одна из идей была следующей - построить свою тематическую модель на основе подхода ARTM (
http://www.machinelearning.ru/wiki/index.php?title=ARTM). В кратце, это подход к тому как модифицировать метод PLSA (
https://en.wikipedia.org/wiki/Probabilistic_latent_semantic_analysis) для улучшения результатов на конкретной задаче. Но здесь есть проблема, в моём случае сам PLSA даёт очень плохие результаты. Кроме того, так как конечная цель - это не выявление тем, а запуск классификатора на документах, представленных в виде вектора тем, то проверка качества получившейся модели сильно затруднена. В общем, данный вариант отпадает начисто.
Есть идея сделать некоторую модификацию LSI, которая бы улучшала результат по сравнению с обычным методом, но неясно, что улучшать.
Может быть у кого-нибудь есть какие-нибудь идеи, что можно придумать ещё, использую имеющиеся данные?
P.S. Я понимаю, что перебором всего чего только возможно, подкруткой различных параметров алгоритмов я, скорее всего, добьюсь наилучших результатов, чем, если выдумаю что-то новое. Но, к сожалению, требуется именно второе.