начало: www.diary.ru/~SonicCatPap/p45623499.htm#

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

Свел я эту задачу к задаче определения тематики ( класса ) по тексту.
т.к. тогда каждый сервис ( состоящий из статей ) можно представить вектором характеризующий сколько % текста относиться к каждому классу (тематике), а уже этот вектор можно сравнивать, через скалярное произведение между другими векторами-сервисами. И выдавать пользователю самые похожие сервисы, у которых это скалярное произведение больше.

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

Итак есть сеть, представленная одним слоем нейронов (это которые справа - круг и квадрат вместе ):


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

Подробнее:
читать дальше