Правительство Российской Федерации Федеральное государственное автономное образовательное учреждение высшего профессионального образования


Скачать 252.13 Kb.
НазваниеПравительство Российской Федерации Федеральное государственное автономное образовательное учреждение высшего профессионального образования
страница4/5
ТипДокументы
1   2   3   4   5

Проблемы существующих подходов




  • Недостаток информации о пользователях

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

  • Новые пользователи

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

  • Поддельные оценки

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

  • Масштабируемость

При увеличении количества пользователей и объектов системы увеличивается время выполнения алгоритмов для каждого пользователя. Частично решается усовершенствованием алгоритмов (например, для алгоритма weighted slope one необходимо только следить за отклонениями между парами элементов и общим количеством элементов)

Выводы


Существующие методы имеют как достоинства, так и недостатки. Одни алгоритмы выигрывают по времени, другие – по потребляемой памяти и точности, но для данной работы было решено выбрать методы, основанные на статистических вычислениях. Создание классификатора не представляется правильным решением, так как ключевые слова не всегда выражают категорию новости, а бесплатные источники новостей не предоставляют теги к новостным объектам. Как и целом оценивание каждого новостного элемента, прочитанного пользователем не является правильным решением по ресурсным соображениям.

Поэтому для реализации рекомендательной системы было решено выбрать алгоритм поиска ближайших соседей и Weighted Slope One.




Описание реализации системы

Архитектура программы


Так как “Программа персонализации новостной подписки” включает в себя программу-клиент и программу-сервер, то архитектура является клиент-серверной (рис. 2)



Рисунок 2 Архитектура системы

Рассмотрим каждый компонент системы более подробно.

Серверная часть


Серверная часть написана на языке Python и развернута на облачном сервисе Google App Engine. Так как GAE является веб-фреймворком, это накладывает некоторые ограничения, например, необходимо использовать внутренний Datastore, который не является реляционной базой данных, но, в отличии от традиционных баз данных, имеет распределенную систему управления данными[5] (рис. 3)



Рисунок 3 Архитектура серверной части (упрощенная)

AppEngine задает собственную архитектуру приложения, состоящую следующих компонентов:

  • app.yaml – файл с конфигурациями, состоящий из сопоставлений обработчиков запросов к адресам запросов, объявлений подключаемых модулей и их версий, а также персональной информацией о приложении (application id) и версией языка;

  • *.py – файлы в которых находится выполняемый код на языке Python. Классы и методы, объявленные в файлах, отвечают за работу серверного приложения;

  • *.html – необязательные файлы с разметкой страниц;

Серверная часть не имеет какого-либо интерфейса или консольного терминала; взаимодействие происходит только по средством запросов на http://personalized-news.appspot.com/ или на http://personalized-news.appspot.com/statistics с определенным user-agent.

Описание файлов


requesthandler.py

  • class MainPage

    • def post(self) – обработка POST-запроса на адрес http://personalized-news.appspot.com/, создание рекомендаций и их отправка пользователю;

    • def getCategoriesFromUser(self, similarily, userInfo) – парсинг категорий из рекомендаций пользователя;

    • def getSource(self, x) – получение из категорий ссылки на новости;

    • def getNews(self, url, data, typeRecommendation, newsCategoty) - запрос на получение новостей определенной категории и формирование ответа пользователю;

  • class Statistics

    • def post(self) – обработка POST-запроса на адрес http://personalized-news.appspot.com/statistics, обработка и сохранение статистики, пришедшей от пользователя;

    • def parseCategory(self, category) – парсинг категорий пользователя;

    • def createScore(self, scrollRating, readRating) – преобразование статистики в шкалу оценок;

usermodel.py

  • class AppUserсущность базы данных, представляет собой пользователя;

algo.py

  • class createRecommendations

    • def getTopUsers(self,prefs,person,n=2) – получение первых двух похожих пользователей;

    • def pearsonSimilarity(self,prefs,p1,p2) – вычисление коэффиециента Пирсона для двух пользователей;

    • def computeDeviations(self) – вычисление отклонений между объектами системы;

    • def weightedSlopeOne(self, userRatings) – вычисление рекомендаций методом Weighted Slope One;


Описание работы серверной части


Работа серверной части заключается в обработке и сохранении данных пользователей и в создании на их основе рекомендаций в виде новостей. На диаграмм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 Схема серверной базы данных
1   2   3   4   5

Похожие:

Правительство Российской Федерации Федеральное государственное автономное образовательное учреждение высшего профессионального образования iconПравительство Российской Федерации Федеральное государственное автономное...
Федеральное государственное автономное образовательное учреждение высшего профессионального образования

Правительство Российской Федерации Федеральное государственное автономное образовательное учреждение высшего профессионального образования iconПравительство Российской Федерации Федеральное государственное автономное...
Федеральное государственное автономное образовательное учреждение высшего профессионального образования

Правительство Российской Федерации Федеральное государственное автономное образовательное учреждение высшего профессионального образования iconПравительство Российской Федерации Федеральное государственное автономное...
Федеральное государственное автономное образовательное учреждение высшего профессионального образования

Правительство Российской Федерации Федеральное государственное автономное образовательное учреждение высшего профессионального образования iconПравительство Российской Федерации Федеральное государственное автономное...
Федеральное государственное автономное образовательное учреждение высшего профессионального образования

Правительство Российской Федерации Федеральное государственное автономное образовательное учреждение высшего профессионального образования iconПравительство Российской Федерации Федеральное государственное автономное...
Федеральное государственное автономное образовательное учреждение высшего профессионального образования

Правительство Российской Федерации Федеральное государственное автономное образовательное учреждение высшего профессионального образования iconПравительство Российской Федерации Федеральное государственное автономное...
Федеральное государственное автономное образовательное учреждение высшего профессионального образования

Правительство Российской Федерации Федеральное государственное автономное образовательное учреждение высшего профессионального образования iconПравительство Российской Федерации Федеральное государственное автономное...
Федеральное государственное автономное образовательное учреждение высшего профессионального образования

Правительство Российской Федерации Федеральное государственное автономное образовательное учреждение высшего профессионального образования iconПравительство Российской Федерации Федеральное государственное автономное...
Федеральное государственное автономное образовательное учреждение высшего профессионального образования

Правительство Российской Федерации Федеральное государственное автономное образовательное учреждение высшего профессионального образования iconПравительство Российской Федерации Федеральное государственное автономное...
Федеральное государственное автономное образовательное учреждение высшего профессионального образования

Правительство Российской Федерации Федеральное государственное автономное образовательное учреждение высшего профессионального образования iconПравительство Российской Федерации Федеральное государственное автономное...
Федеральное государственное автономное образовательное учреждение высшего профессионального образования

Вы можете разместить ссылку на наш сайт:


Все бланки и формы на filling-form.ru




При копировании материала укажите ссылку © 2019
контакты
filling-form.ru

Поиск