13

Как создать конструкцию нейронной сети с целью использования механизма рекомендации. Я предполагаю, что для каждого пользователя потребуется их собственная сеть, но как бы вы могли создавать входы и выходы для рекомендации элемента в базе данных. Есть ли хорошие учебники или что-то еще?Рекомендация Нейронной сети Двигатель

Редактировать: Я больше думал о том, как создать сеть. Как и сколько входных нейронов и как выходные нейроны указывают на запись в базе данных. Вы бы сказали, 6 выходных нейронов, преобразовать его в целое число (которое было бы чем угодно от 0 до 63), и это идентификатор записи в базе данных? Так люди это делают?

+2

Об правку: Нет, вы пропали без вести смысл. Точка NN - это классификация, основанная на статистических свойствах.Они не являются байесовскими по своей природе, но вы можете думать об этом таким образом, если это вам поможет: «когда у меня есть вход A определенного значения, вход B определенного значения, вход C определенного значения ... что такое Вероятность того, что этот конкретный набор входных данных принадлежит определенной группе (точнее, вы спрашиваете, к какой группе она принадлежит)? Это цель NN. Вы можете сгибать эту модель, которая будет использоваться в более простой классификации, но в ее основе, это то, что он делает. –

+1

Спасибо, ваш ответ объясняет, как вводить данные, но не то, что должно было выглядеть/было бы результатом, и как они что-то значат. Вот где я запутался. – Louis

+3

Выходы будут численными, но эти цифры должны иметь значение. «То, что они означают», зависит от ВАС, разработчика сети, но это не будет работать, чтобы просто сопоставить их с идентификатором базы данных (который является меткой без математического смысла) на пути вы хотите. Выходы не могут быть напрямую преобразованы в метку. Выходы a re значения статистической модели. Это было бы похоже на то, что вы пытаетесь предсказать эффективность защитника в зависимости от числа на его майке. Если трикотаж не назначается по конкретным, наблюдаемым критериям относительно игрока, любое такое предсказание было бы бессмысленным. –

ответ

2

Прежде всего, вам нужно решить, что именно вы рекомендуете и при каких обстоятельствах. Есть много вещей, которые нужно учитывать. Вы собираетесь рассмотреть «другие пользователи, которые купили X, также купили Y?» Собираетесь ли вы рекомендовать только те предметы, которые имеют сходный характер друг с другом? Вы рекомендуете элементы, которые имеют отношение «один-более-полезный-один-один»?

Я уверен, что существует много решений, и каждый из них имеет свои собственные цели. Было бы очень сложно подготовить одну гигантскую сеть для обработки всего вышеперечисленного.

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

По существу, ваш набор входных данных можно охарактеризовать как определенный набор качеств, которые, по вашему мнению, имеют отношение к лежащей в основе функции (например: осадки, влажность, температура, болезнь, возраст, местоположение, стоимость, умение, время дня, дня недели, статуса работы и пола, все они могут сыграть важную роль в принятии решения о том, будет ли человек играть в гольф в определенный день). Поэтому вы должны решить, что именно вы пытаетесь рекомендовать и при каких условиях. Ваши сетевые входы могут быть логическими по своей природе (0.0 - false, а 1.0 - истинно, например) или отображаться в псевдо-непрерывном пространстве (где 0.0 может означать не совсем, .45 означает несколько, .8 означает «вероятность», а 1.0 означает да). Этот второй вариант может предоставить вам инструменты для сопоставления уровня достоверности для определенного ввода или простой математический расчет, который, по вашему мнению, имеет значение.

Надеюсь, это помогло. Вы не дали много работы :)

8

Я предлагаю изучить нейронные сети, используя неконтролируемое обучение, такое как self organising maps. Очень сложно использовать обычные контролируемые нейронные сети, чтобы делать то, что вы хотите, если вы не можете очень точно классифицировать данные для обучения. самоорганизующиеся карты не имеют этой проблемы, потому что сеть самостоятельно изучает классификационные группы.

взглянуть на этот документ, который описывает систему музыка рекомендации для музыки http://www.springerlink.com/content/xhcyn5rj35cvncvf/

и многие другие статьи, написанные на эту тему от Google Scholar http://www.google.com.au/search?q=%09+A+Self-Organizing+Map+Based+Knowledge+Discovery+for+Music+Recommendation+Systems+&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-US:official&client=firefox-a&safe=active

Смежные вопросы