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


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

Клиентская часть


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

Приложение построено на базе архитектурного шаблона MVVM.


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


Клиентская часть основана на архитектурном шаблоне MVVM (Model, View, ViewModel), поэтому логически все приложение разделено на эти три части (рис. 7)



Рисунок 7 Архитектура MVVM



  • Model – это бизнес-логика приложения, все основные данные приложения. Эквивалентно представлению Model в MVC

  • View – отображение данных, пользовательский интерфейс. Эквивалентно представлению View в MVC

  • ViewModel же включает в себя с одной стороны преобразованные для показа данные модели, а с другой – абстракцию View. Эта части соединяются при помощи подхода связывания данных (Binding)

Связывание данных является технологией соединение данных и их визуального отображения в обе стороны (то есть, при изменении одного меняется и другое). Этот подход не вписывается в рамки традиционного MVC, поэтому более правильно использовать паттерн MVVM [2].

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

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

  • Экономика

  • Общество

  • Спорт

  • Культура

  • Политика

В статьях явно не указана категория. Они ранжированы по времени за последние двое суток (рис. 8)

macintosh hd:users:plotkin:downloads:wp_ss_20140527_0001.jpg

Рисунок 8 Статьи в клиентском приложении

После выбора статьи осуществляется переход на страницу, где представлен полный текст статьи. С этого момента начинает работать счетчик времени, который измеряет то время, которое пользователь провел на странице данной статьи.

После того как пользователь закончил читать статью (нажатие кнопки Назад) происходит вычисление параметров, из которых будет вычислена оценка, “данная” пользователем этой статье.

Параметры являются процентным выражение следующих величин:

  • Уровень проматывания (скроллинга) страницы со статьей;

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

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

После вычисления отправляется POST-запрос на адрес http://personalized-news.appspot.com/statistics со следующими параметрами:

  • scrollRating

  • readRating

  • uid

  • category

Из параметров scrollRating и readRating на серверной части вычисляется итоговая оценка по пятибалльной шкале.

При каждом запуске клиентской программы во вкладке “рекомендации” выводятся рекомендации для конкретного пользователя (рис. 9)

macintosh hd:users:plotkin:downloads:wp_ss_20140527_0002.jpg

Рисунок 9 Вкладка “Рекомендации”

Для отображения оценок категориям новостей в режиме реального времени есть в меню есть пункт “График”. При нажатии на него происходит переход на страницу с графиком, где отображаются текущие средние оценки по категориям (рис 10)

macintosh hd:users:plotkin:downloads:wp_ss_20140529_0001.jpg


Рисунок 10 График оценок категорий

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


ViewModels

  • Articles

    • ArticleListItemViewModel.cs – класс, представляющий собой ViewModel объекта статьи в общем списке статей;

    • ArticleListViewModel.cs – класс, представляющий собой ViewModel общего списка статей;

    • ArticleViewModel.cs – класс, представляющий собой ViewModel объекта статьи на отдельной странице;

    • RecommendationsViewModel.cs – класс, представляющий ViewModel общего списка рекомендаций;

    • RecommendationPageViewModel.cs – класс, представляющий ViewModel объекта рекомендации на отдельной страницe;

  • News

    • NewsListItemViewModel.cs - класс, представляющий собой ViewModel объекта новости в общем списке новостей;

    • NewsListViewModel.cs – класс, представляющий собой ViewModel общего списка новостей;

    • NewsViewModel.cs – класс, представляющий собой ViewModel объекта новости на отдельной странице;

  • PhotoStory

    • FreePhotoStoryListViewModel.cs - класс, представляющий собой ViewModel общего списка фотосюжетов;

    • PhotoItemViewModel - класс, представляющий ViewModel объекта фотосюжета на отдельной страницe;

Views

  • Articles

    • ArticleList.xaml – класс, представляющий собой View общего списка статей;

    • ArticlePage.xaml – класс, представляющий собой View объекта статьи на отдельной странице;

    • Recommendations.xaml – класс, представляющий Viewобщего списка рекомендаций;

    • RecommendationPage.xaml – класс, представляющий View объекта рекомендации на отдельной страницe;

  • News

    • NewsList.xaml – класс, представляющий собой ViewModel общего списка новостей;

    • News.xaml – класс, представляющий собой ViewModel объекта новости на отдельной странице;

  • PhotoStory

    • FreePhotoStoryList.xaml - класс, представляющий собой View общего списка фотосюжетов;

    • PhotoStoryPage.xaml - класс, представляющий ViewModel объекта фотосюжета на отдельной страницe;


Взаимодействие между клиентом и сервером


Взаимодействие между клиентской и серверной частью осуществляется при помощи POST-запросов. Клиент отправляет “сырые” данные о действиях пользователя в формате json, на сервере данные обрабатываются и сохраняются. После выполнения рекомендационных алгоритмов формируется запрос на новостной сервер для получения новостей из конкретных категорий, а после этого новости, которые пришли, отправляются на клиент пользователю.

Средства разработки


Для разработки данной работы были выбраны следующие программные средства:

  • Клиентская часть

    • Visual Studio 2012

    • Blend

    • Windows Phone SDK

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

    • Sublime Text 3

    • Google App Engine SDK

    • Python SDK

    • PyCharm




Анализ результатов

Тестирование


При реализации систем использующих рекомендательные алгоритмы необходимо проверять результаты, полученные в результате их работы. Для получения рекомендаций в данной работе были использованы алгоритмы Weighted Slope One и алгоритм нахождения ближайшего соседа. Для проверки работы данных алгоритмов была создана тестовая выборка пользователей системы, состоящая из 200 пользователей, оценки которых задавались случайным числом от 0 до 5. Эта выборка в полной мере эмулирует реальных пользователей, которым могут иметь оценки для каких-либо статей, так и еще не читать их.

В ходе тестирования были проведены серии запусков алгоритмов на данных тестовых выборках. Для проверки результатов необходимо вычисление RMSE (Root Mean Square Error) – параметра, который выражается следующей формулой(10):



где

Rate – прямая оценка, которая была поставлена

ExpectedRate – оценка, которая была получена в ходе работы алгоритма

n – количество объектов системы

RMSE позволяет вычислить точность прогноза (нужна ссылка). Для алгоритма Weighted Slope One параметр RMSE составил 0,9454, что является приемлемым для данного алгоритма результатом [7]. Для сравнения, тривиальный алгоритм, выставляющий среднюю оценку для каждой категории рекомендаций имеет RMSE, равный 1,061, что показывает, что результаты Weighted Slope One лучше тривиального алгоритма примерно на 10%.

Для проверки алгоритма поиска ближайших соседей был создан новый тестовый набор пользователей. Часть тестовых данных имела оценки, полностью совпадающие с теми, которые имеет тот пользователь, для которого был осуществлен поиск ближайших соседей. Алгоритм показал данное сходство, показав результат, равный 1, что соответствует полному совпадению пользователей. Те же тестовые наборы, которые имели отличие в оценках категорий с оценками пользователя, показали более низкие результаты (от 0.783 до -0,54), что соответствует правильной работе алгоритма поиска ближайших соседей.

Клиентское приложение приложение, являющееся полноценным новостным клиентом, на данный момент находится в бета-тестировании в магазине Windows Phone Store.

Дальнейшее развитие проекта


Так как новостные агрегаторы являются крайне востребованными на данный момент программами, а Windows Phone Store имеет некоторый дефицит в качественных приложениях, то развитие проекта будет продолжено. На данный момент существует два главных направления разработки:

  • Оптимизация серверной части;

  • Дальнейшая разработка клиента;

Для публикации приложения необходимо оптимизировать как работу алгоритмов поиска (кэширование промежуточных результатов), так и работу с запросами в целом, так как при увеличении количества пользователей будет превышен лимит на бесплатные квоты в Google App Engine.
Для разработки клиента необходимо увеличить количество источников новостей, а также разнообразие новостных рубрик.

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

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

Заключение


В ходе данной работы была реализована программа для персонализации новостной подписки, представляющая собой клиент-серверную систему.

Были решены следующие задачи:

  • Был спроектирован и реализован серверный компонент, рассчитанный на множественное использование;

  • Была изучена проблема рекомендательных систем, проведен сравнительный анализ методов их создания;

  • Были реализованы некоторые методы для создания рекомендаций и объединены в гибридное решение на основе коллаборативной фильтрации;

  • Было проведено тестирование методов создания рекомендаций;

  • Был спроектирован и реализован клиентский компонент, представляющий собой мобильное приложение на платформе Windows Phone;

  • Приложение было запущено в бета-тестирование в магазине Windows Phone Store;

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

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

Список использованных источников


[1] Daniel Lemire, Anna Maclachlan. «Slope One Predictors for Online Rating-Based Collaborative Filtering.» In SIAM Data Mining (SDM'05), 2005.

[2] Hall, Gary. Pro WPF and Silverlight MVVM. Apress, 2010.

[3] M. D. Ekstrand, J. T. Riedl and J. A. Konstan. Collaborative Filtering Recommender Systems. Minneapolis: University of Minnesota, 2011.

[4] Ott, Patrick. « Incremental Matrix Factorization for Collaborative Filtering.» Science, Technology and Design (Anhalt University of Applied Sciences), 2008.

[5] Sanderson, Dan. Programming Google App Engine. O'Reilly Media, 2009.

[6] Segaran, Toby. Programming Collective Intelligence. O'Reilly Media, 2007.

[7] Yongqiang Wang, Liang Yin, Bing Cheng, and Yong Yu. «Learning to Recommend Based on Slope One Strategy.» 2012.


1   2   3   4   5

Похожие:

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

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

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

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

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

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

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

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

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

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

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


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




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

Поиск