Скачать 252.13 Kb.
|
Проблемы существующих подходов
Большинство пользователей различных сервисов предпочитает не высказывать свое мнение относительно объектов сервиса, тем самым не ставя им оценки, из-за чего точность предсказаний ухудшается
Эта проблема также является достаточно серьезной – новый пользователь не предоставляет достаточно количества информации для создания правильных рекомендация для него, в следствии чего рекомендации составляют либо из популярного в целом контента, либо не составляют вовсе.
На некоторых сервисах, особенно крупных, существует определенное количество пользователей, которые сознательно завышают или занижают оценки всем объектам системы, продвигая те или иные товары, что мешает работе рекомендационных алгоритмов
При увеличении количества пользователей и объектов системы увеличивается время выполнения алгоритмов для каждого пользователя. Частично решается усовершенствованием алгоритмов (например, для алгоритма weighted slope one необходимо только следить за отклонениями между парами элементов и общим количеством элементов) ВыводыСуществующие методы имеют как достоинства, так и недостатки. Одни алгоритмы выигрывают по времени, другие – по потребляемой памяти и точности, но для данной работы было решено выбрать методы, основанные на статистических вычислениях. Создание классификатора не представляется правильным решением, так как ключевые слова не всегда выражают категорию новости, а бесплатные источники новостей не предоставляют теги к новостным объектам. Как и целом оценивание каждого новостного элемента, прочитанного пользователем не является правильным решением по ресурсным соображениям. Поэтому для реализации рекомендательной системы было решено выбрать алгоритм поиска ближайших соседей и Weighted Slope One. Описание реализации системыАрхитектура программыТак как “Программа персонализации новостной подписки” включает в себя программу-клиент и программу-сервер, то архитектура является клиент-серверной (рис. 2) Рисунок 2 Архитектура системы Рассмотрим каждый компонент системы более подробно. Серверная частьСерверная часть написана на языке Python и развернута на облачном сервисе Google App Engine. Так как GAE является веб-фреймворком, это накладывает некоторые ограничения, например, необходимо использовать внутренний Datastore, который не является реляционной базой данных, но, в отличии от традиционных баз данных, имеет распределенную систему управления данными[5] (рис. 3) Рисунок 3 Архитектура серверной части (упрощенная) AppEngine задает собственную архитектуру приложения, состоящую следующих компонентов:
Серверная часть не имеет какого-либо интерфейса или консольного терминала; взаимодействие происходит только по средством запросов на http://personalized-news.appspot.com/ или на http://personalized-news.appspot.com/statistics с определенным user-agent. Описание файловrequesthandler.py
usermodel.py
algo.py
Описание работы серверной частиРабота серверной части заключается в обработке и сохранении данных пользователей и в создании на их основе рекомендаций в виде новостей. На диаграммe деятельности в упрощенном виде показан процесс формирования рекомендаций (рис. 4). Рисунок 4 Диаграмма активности При запуске клиентской программы делается POST-запрос на сервер по адресу http://personalized-news.appspot.com/. В теле запроса присылается uid, который является уникальным идентификатором для каждого пользователя. Если такого пользователя в базе данным Datastore, то он будет создан (с начальными значениями для всех полей 0). При создании нового пользователя в качестве рекомендаций будут выданы более общие, так как никакой информации о новом пользователе не будет. Если же такой пользователь существует, то его объект будет получен из базы данных. С помощью алгоритмов коллаборативной фильтрации происходит поиск пользователя, чьи оценки на категории новостей наиболее похожи на пользователя, сделавшего запрос и исходя из его предпочтений будет создан новостной прогноз. Далее применяется алгоритм семейства Slope One, который является алгоритмом поиска рекомендаций по схожести объектов в системе. Результаты работы этих алгоритмов комбинируются (исключаются одинаковые категории, если такие были получены) и для полученных категорий выполняются запросы на новостной сервис. Ответ от сервиса обрабатывается, полученные новостные элементы комбинируются, сортируются по дате и отправляются на клиент тому пользователю, который сделал запрос на рекомендации. Следующим крупным пунктом взаимодействия клиента и сервера является сбор статистики. Для того, чтобы рекомендации были более точными, необходимо иметь информацию о пользователе. В случае с новостным приложением необходимо знать, что за статьи и на какую тему читает пользователь, и насколько они ему нравятся. После каждой прочитанной страницы с клиентского приложения отправляется POST-запрос на адрес http://personalized-news.appspot.com/statistics с информацией о прочитанной статье. На диаграмме активности показан процесс получения статистики от клиентского приложения (рис. 5). После получения статистики, которая состоит из уникального идентификатора пользователя, категории новостной статьи, а также двух параметров, характеризующих успешность чтения статьи (подробнее о них в описании клиентской части). На основе параметров вычисляется итоговая оценка, которую пользователь “поставил” конкретной новостной статье на какую-либо категорию. После этого данные пользователя, отправившего запрос, сохраняются с учетом оценки, которая пришла в запросе (формируется новая средняя оценка). Рисунок 5 Процесс получения статистики от пользователя Данные о пользователях хранятся в Datastore, NoSQL базе данных обращаться к которой можно с помощью SQL-образного синтаксиса. Cхема базы данных на сервере (рис. 6): Рисунок 6 Схема серверной базы данных |
Федеральное государственное автономное образовательное учреждение высшего профессионального образования | Федеральное государственное автономное образовательное учреждение высшего профессионального образования | ||
Федеральное государственное автономное образовательное учреждение высшего профессионального образования | Федеральное государственное автономное образовательное учреждение высшего профессионального образования | ||
Федеральное государственное автономное образовательное учреждение высшего профессионального образования | Федеральное государственное автономное образовательное учреждение высшего профессионального образования | ||
Федеральное государственное автономное образовательное учреждение высшего профессионального образования | Федеральное государственное автономное образовательное учреждение высшего профессионального образования | ||
Федеральное государственное автономное образовательное учреждение высшего профессионального образования | Федеральное государственное автономное образовательное учреждение высшего профессионального образования |
Поиск Главная страница   Заполнение бланков   Бланки   Договоры   Документы    |