2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Машинное обучение: Придумать модель на конкретном датасете
Сообщение18.03.2016, 04:06 


18/03/16
1
Всем привет!

В общем, мне скоро защищать диплом. Нужно уметь определять пол и возраст пользователей на основе музыки, которую они слушают. Требуют "научной новизны" (с).

В общем, у меня имеется выборка пользователей (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. Я понимаю, что перебором всего чего только возможно, подкруткой различных параметров алгоритмов я, скорее всего, добьюсь наилучших результатов, чем, если выдумаю что-то новое. Но, к сожалению, требуется именно второе.

 Профиль  
                  
 
 Re: Машинное обучение: Придумать модель на конкретном датасете
Сообщение18.03.2016, 09:05 


12/08/14

401
Я бы так попробовал.
Предположим, что
1. не знаем никаких методов
2. зависимости есть и четко выражены
Для выполнения п.2 можно сгенерировать выборку.
Задаем себе вопросы
1. Как будет выглядеть такой набор в пространстве признаков?
2. Как идентифицировать и формализовать это?
3. Как можно преобразовать оси признаков, чтобы более четко идентифицировать ситуации?
4. Что вообще можно называть зависимостями и как это отражается в пространстве признаков?

 Профиль  
                  
 
 Re: Машинное обучение: Придумать модель на конкретном датасете
Сообщение11.04.2016, 11:31 


03/06/15
7
Можно попробовать сделать такую штуку:

1) сначала решить задачу в лоб, каким-нибудь известным сочетанием нейросетей. Например, подойти к этой задаче, как к классификатору картинок: сначала несколько слоев свертки (чтоб вытащить характерные фичи из списка исполнителей), а потом полносвязная сеть (чтоб аппроксимировать соотвествие между этими фичами и возрастом/полом). Обучить сетку по всему датасету, и записать на листочек достигнутую точность на тестовой выборке.

2) в качестве улучшения приделать сетке возможность самой выбирать следующий обучающий пример во время обучения - таким образом, чтобы максимизировать скорость обучения. То есть план такой: берем старую сетку, из первого пункта (назовем ее "классификатор"). К ней добавляем сетку которая умеет делать запросы вида : "найти следующую не рассмотренную девушку 24 лет" или "найти следующего не рассмотренного юзера, который слушает tom odell" (назовем эту сеть "менеджер данных"). Задача "классификатора" - собственно, пытаться правильно угадывать возраст и пол по списку исполнителей. А задача манагера - подбирать для классификатора такие данные, чтоб скорость сходимости у классфификатора была максимальной. То есть пусть ошибка менеджера рассчитывается на основе производной от ошибки классификатора. Если на текущих семплах сходимость медленная, то наказываем манагера, а если она ускореятся - то поощряем. Я не хочу сказать, что это улучшение заработает прямо из ящика. Даже хуже - скорей всего, придется изрядно поэкспериментировать с конкретной формой ошибки для "менеджера", что бы он не заставлял "классификатора" переобучаться.

Но если бы такое получилось, то искомая научная новизна - это более быстрая сходимость обучения - то есть, типа, меньше предъявлений обучающих примеров понадобилось, а результат тот же. Не факт, конечно, что это получится - потому что с научными гипотезами все довольно не предсказуемо бывает :) Но вобще сам этот подход, чтоб несколько подсетей брать и кооперировать на достижение общей цели - он встречается:
https://habrahabr.ru/post/275429/
https://habrahabr.ru/post/279071/

 Профиль  
                  
 
 Re: Машинное обучение: Придумать модель на конкретном датасете
Сообщение16.04.2016, 02:28 
Аватара пользователя


07/02/12
1439
Питер
Можно попробовать значительно понизить размерность на половину порядков, быстро, за n\cdot$\ln(n)$ (в вашем случае должно неплохо работать), а затем применить мозг и выбрать правильную статистическую модель. В лоб нейросетями я бы эту задачу не стал атаковать.

 Профиль  
                  
 
 Re: Машинное обучение: Придумать модель на конкретном датасете
Сообщение07.06.2016, 21:32 


11/04/08
632
Марс

(Оффтоп)

Типа в 15 лет был металлистом, а в 20 стал готом, в 25 - эмо, в 30 - панком, в 35 - рокером, ...
Интерсно будет узнать результаты аппроксимаций.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: Rasool


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group