Онлайн поддержка
Все операторы заняты. Пожалуйста, оставьте свои контакты и ваш вопрос, мы с вами свяжемся!
ВАШЕ ИМЯ
ВАШ EMAIL
СООБЩЕНИЕ
* Пожалуйста, указывайте в сообщении номер вашего заказа (если есть)

Войти в мой кабинет
Регистрация
ГОТОВЫЕ РАБОТЫ / ДИПЛОМНАЯ РАБОТА, ТЕХНОЛОГИЧЕСКИЕ МАШИНЫ И ОБОРУДОВАНИЕ

Применение методов машинного обучения при ранжировании и подборе новостей по заданной теме

irina_k200 1200 руб. КУПИТЬ ЭТУ РАБОТУ
Страниц: 48 Заказ написания работы может стоить дешевле
Оригинальность: неизвестно После покупки вы можете повысить уникальность этой работы до 80-100% с помощью сервиса
Размещено: 17.09.2020
Целью работы является решение задачи подбора новостей по заданной теме и ранжирование найденных новостей по степени их релевантности. Основным инструментом решения задачи должны являться методы машинного обучения. Для этого будут проанализированы и реализованы два алгоритма: нейронная сеть и метод опорных векторов. Оба они реализованы с попарным подходом решения задач ранжирования. Попарный подход был выбран, так как он показывает лучшие результаты на практике, чем, например, поточечный подход, да и предсказывание порядка двух документов по отношению друг к другу ближе к природе ранжирования, чем предсказывание оценки релевантности в отрыве от других документов в списке. И многие популярные алгоритмы, например, RankNet, LambdaRank и LambdaMART [2] [3] относятся к попарномуподходу. Для данной работы поставлены задачи: ? Сбор и изучение материалов по существующим алгоритмам машинного обучения для задачи ранжирования: ? поточечные методы; ? попарные методы; ? списочные методы. ? Разбор полученной информации по ранжированию: ? способы реализации; ? различия; ? преимущества и недостатки. ? Реализация двух алгоритмов машинного обучения для задачи ранжирования: ? нейронная сеть; ? метод опорных векторов. ? Тестирование. ? Анализ результатов работы отобранных алгоритмов и выбор оптимального алгоритма.
Введение

Каждый человек в своей жизни сталкивался с тем или иным ранжированием, так как многие пользуются различными онлайн- кинотеатрами, социальными сетями, крупными интернет-магазинами и уж точно поисковыми системами. Во всех перечисленных интернет-площадках можно столкнуться с ранжированием: будь то поисковая выдача на запрос или индивидуально подобранная для каждого пользователя лента рекомендаций в онлайн-кинотеатре Netflix и видеохостинге Youtube или таргетированная реклама в соцсетях, как Вконтакте и Инстаграм. К тому же, помимо очевидных примеров, ранжирование встречается в таких сферах, как машинный перевод[1] и даже в вычислительной биологии. Для такой распространенной задачи существуют разные алгоритмы решения, и одними из основных являются алгоритмы обучения ранжированию. Обучение ранжированию – один из классов задач машинного обучения, обычно обучения с учителем, обучения с частичным учителем и обучения с подкреплением, которое направлено на решение проблем ранжирования информации. Данная задача выделяется на фоне других задач машинного обучения, так как обычно конечным результатом, например, классификации или регрессии является предсказывание одного или нескольких значений к одному элементу выборки, то есть класса в случае классификации и вектора значений в случае регрессии. Однако обучение ранжированию – это анализ сразу целого списка элементов выборки одновременно, так как стоит задача отсортировать этот список так, чтобы получить релевантную выдачу на какой-либо запрос. Однако анализ сразу корпуса элементов – задача непростая, и существует несколько подходов обучения ранжированию для решения данной задачи: поточечный, попарный и списочный. У каждого есть свои преимущества и свои проблемы, и существует огромное количество различных алгоритмов в каждом подходе.
Содержание

ВВЕДЕНИЕ3 1. Обзор существующих алгоритмов машинного обучения для задачи ранжирования 1.1. Поточечный подход5 1.2. Попарный подход6 1.3. Посписочные методы7 2. Теоретические основы алгоритмовранжирования текстов8 2.1. Предобработка входных данных8 2.2. Нейронные сети11 2.3. Метод опорных векторов19 3. Практическая реализация24 3.1. Обработка текста24 3.2. Нейронные сети29 3.3. Метод опорных векторов37 ЗАКЛЮЧЕНИЕ41 СПИСОК ЛИТЕРАТУРЫ42 ПРИЛОЖЕНИЕ45
Список литературы

1. Hang Li, A Short Introduction to Learning to Rank [Текст] / Hang Li // IEICE Transactions on Information and Systems. – 2011. –С.1854-1863. 2. What is the intuitive explanation of Learning to Rank and algorithms like RankNet, LambdaRank and LambdaMART? In what types of data/variables can these techniques be used? What are their strengths and limitations? [Электронный ресурс] – 2016. – URL: https://www.quora.com/What-is- the-intuitive-explanation-of-Learning-to-Rank-and-algorithms-like- RankNet-LambdaRank-and-LambdaMART-In-what-types-of-data- variables-can-these-techniques-be-used-What-are-their-strengths-and- limitations/answer/Nikhil-Dandekar (дата обращения: 18.05.2019) 3. Chris Burges, Learning to Rank using Gradient Descent [Текст] / Chris Burges, Tal Shaked, Erin Renshaw // ICML, Proceedings of the 22nd international conference on Machine learning. – 2011. – С.89-96. 4. Tie-Yan Liu, Learning to Rank for Information Retrieval [Текст] / Tie-Yan Liu. – Now Publishers Inc. – 2009. – 110 с. 5. Norbert Fuhr, Optimum polynomial retrieval functions based on the probability ranking principle [Текст] / Norbert Fuhr // ACM Transactions on Information Systems. – 1989. – С:183-204. 6. Cooper, William S., Probabilistic retrieval based on staged logistic regression [Текст] / Cooper, William S., Gey, Frederic C., Dabney, Daniel P. // SIGIR '92 Proceedings of the 15th Annual International ACM SIGIR Conference on Research and Development in Information Retrieval. – 1992. – С:198-210. 7. Ping Li, Learning to Rank Using Classification and Gradient Boosting [Текст] / Ping Li, Chris J.C., Burges Qiang Wu // NIPS'07 Proceedings of the 20th International Conference on Neural Information Processing Systems. – 2007. – С:1-10. 8. Yunbo CAO, Adapting Ranking SVM to Document Retrieval [Текст] / Yunbo CAO, Jun XU, Tie-Yan LIU, Hang LI, Yalou HUANG, Hsiao- Wuen HON // SIGIR '06 Proceedings of the 29th annual international ACM SIGIR conference on Research and development in information retrieval. – 2006. – С:186-193. 9. Mike Taylor, SoftRank: Optimising Non-Smooth Rank Metrics [Текст] / Mike Taylor, John Guiver, Stephen Robertson, Tom Minka // WSDM '08 Proceedings of the 2008 International Conference on Web Search and Data Mining. – 2008. – С:77-86. 10. Jun Xu, AdaRank: a boosting algorithm for information retrieval [Текст] / Jun Xu // SIGIR '07 Proceedings of the 30th annual international ACM SIGIR conference on Research and development in information retrieval. – 2007. – С:391-398. 11. Zhe Cao, Learning to rank: from pairwise approach to listwise approach [Текст] / Zhe Cao, Tao Qin, Tie-Yan Liu, Ming-Feng Tsai, Hang Li // ICML '07 Proceedings of the 24th international conference on Machine learning. – 2007. – С:129-136. 12. Fen Xia, Listwise approach to learning to rank: theory and algorithm [Текст] / Fen Xia, Tie-Yan Liu, Jue Wang, Wensheng Zhang, Hang Li // ICML '08 Proceedings of the 25th international conference on Machine learning. – 2008. – С:1192-1199. 13. T. Mikolov, Efficient Estimation of Word Representations in Vector Space [Текст] / T. Mikolov, K. Chen, G. Corrado, J. Dean // ICLR 2013 conference submission. – 2013. – arXiv: 1301.3781. 14. T. Mikolov, Distributed Representations of Words and Phrases and their Compositionality / T. Mikolov, I. Sutskever, K. Chen, G. Corrado, J. Dean // NIPS'13 Proceedings of the 26th International Conference on Neural Information Processing Systems - Volume 2. – 2013. – С:3111-3119. 15. Многослойный персептрон [Электронный ресурс] – 2016. – URL: http://www.aiportal.ru/articles/neural-networks/multi-perceptron.html (Дата обращения: 18.05.2019) 16. Нейросетевоемоделирование:многослойныйперсептрон [Электронныйресурс]–2004.–URL: http://www.ievbras.ru/ecostat/Kiril/Library/Book1/Content394/Content394. htm (Дата обращения: 18.05.2019) 17. Nitish Shirish Keskar, adaQN: An Adaptive Quasi-Newton Algorithm for Training RNNs / Nitish Shirish Keskar, Albert S. Berahas // ECML PKDD 2016 European Conference on Machine Learning and Knowledge Discovery in Databases - Volume 9851. – 2016. – С:1-16. 18. R. H. Byrd, A Stochastic Quasi-Newton Method for Large-Scale Optimization / R. H. Byrd, S. L. Hansen, Jorge Nocedal, and Y. Singer // SIAM Journal on Optimization 26. – 2014. –С:1008-1031. 19. Jascha Sohl-Dickstein, Fast large-scale optimization by unifying stochastic gradient and quasi-Newton methods / Jascha Sohl-Dickstein, Ben Poole, Surya Ganguli // ICML'14 Proceedings of the 31st International Conference on International Conference on Machine Learning. – 2014. –С:604-612. 20. Условия Вольфе – Википедия [Электронный ресурс] – 2013. – URL: https://ru.wikipedia.org/wiki/Условия_Вольфе (Дата обращения: 18.05.2019) 21. Outer product – Википедия [Электронный ресурс] – 2016. – URL: https://en.wikipedia.org/wiki/Outer_product (Дата обращения:18.05.2019) 22. Линейная сепарабельность – Википедия [Электронный ресурс] – 2011. –URL:https://ru.wikipedia.org/wiki/Линейная_сепарабельность (Дата обращения: 18.05.2019)
Отрывок из работы

1. Обзор существующих алгоритмов машинного обучения для задачи ранжирования В своей статье «Learning to Rank for Information Retrieval»[4] Тай-Ян Лю из Microsoft Research Asia провёл анализ по существующим на тот момент (2009 год) алгоритмам машинного обучения для задач ранжирования и привёл для них классификацию по их входным данным и функциям потерь из трёх типов: поточечный подход, попарный подход и посписочныйподход. 1.1. Поточечный подход Поточечный подход в своей целевой функции рассматривает каждый элемент обучающей выборки отдельно, как это делается во многих других задачах машинного обучения. То есть алгоритмы поточечного подхода тренируют классификацию или регрессию для предсказывания по каждому отдельному элементу, насколько он релевантен для данного запроса. Далее список элементов сортируется по их полученным оценкам релевантности, и на выходе выдает ранжированные по запросу элементы. Для поточечного подхода могут применяться любые алгоритмы машинного обучения для регрессии или классификации практически без модификаций. Неудивительно, что одними из первых алгоритмов обучения ранжированию являются поточечные методы. Например, алгоритм OPRF[5] появился ещё в 1989 году. В нём используется полиномиальная регрессия: каждая пара запрос-документ представляется в векторном виде, а полиномиальная функция подбирается так, что она даёт оценку вероятности релевантности запросу документа с минимальной квадратичной ошибкой. Следующий алгоритм SLR[6], представленный в 1992 году, уже использует многоэтапную логистическую регрессию – каждый раз уменьшая выборку элементов по установленному порогу. Более современным поточечным алгоритмом (2007 год) является McRank[7], являющийся улучшением другого попарного метода – LambdaRank (описан в главе 1.3.2). Основан алгоритм на множественной порядковой классификации, которая обучается при помощи дерева градиентного бустинга. Несмотря на разнообразие и относительную легкость алгоритмов, которые можно применить в поточечном методе, его недостаток состоит в том, что каждый элемент рассматривается независимо от других элементов, входящих в окончательный список. И следующий метод – попарный – пытается решить данное упущение, сравнивая сразу пару элементов. 1.2. Попарный подход В попарном подходе в целевой функции сразу рассматривается пара элементов, которую нужно разместить в оптимальном порядке, соответствующим их релевантности запросу. Задача обучения ранжированию тут состоит в том, чтобы уменьшить количество инверсий в таких парах, то есть уменьшить количество выходных пар, которые не соответствуют действительному порядку. Существует огромное количество алгоритмов попарного метода ранжирования. Большинство из них основаны на попарной классификации или регрессии. Например, есть целая группа алгоритмов попарного подхода – RankNet (2005), LambdaRank (2006) и LambdaMART (2008) [2] [3], которые были разработаны Крисом Бёрджесом и его коллегами из Microsoft Research. Исходный RankNet использовал в своей основе нейронную сеть, обучаемую стохастическим градиентным спуском, однако позже команда разработчиков заметила, что градиент не просто помогает правильно модель обучить, так же он может указывать, в каком направлении нужно сдвигать документ в списке, к тому же, в этот раз они использовали другую метрику – nDCG (normalized discounted cumulative gain). LambdaMART является уже гибридом LambdaRank и MART, Multiple Additive Regression Tree. От первого алгоритма осталась функция потерь, от второго – способ решения поставленной задачи, то есть деревья градиентного бустинга, что увеличило скорость и точность в сравнении сLambdaRank. Также в попарном подходе обучения ранжированию представлены алгоритмы, в основе своей использующие метод опорных векторов – RankSVM и IR-SVM[8]. Второй алгоритм является улучшением первого за счёт изменения функции потерь линейного SVM, чтобы в ней также учитывались такие факторы, как требования к высокой точности ранжирования для самых верхних документов в поисковой выдаче и возможность малого количества релевантных документов на запрос. Попарный подход работает лучше, чем поточечный за счёт того, что упорядочивание документов ближе к истинной природе ранжирования, то есть определения порядка релевантных документов, чем предсказывание независимой от других элементов оценки конкретного элемента выборки. Однако всё так же имеется ограничение, которое заключается в рассмотрении одновременно только двух элемента, поэтому результат во многом может зависеть от разбиения на пары. Следующий подход – посписочный – уже рассматривает все элементы в группе. 1.3. Посписочные методы Посписочный подход уже рассматривает целую группу элементов и пытается предсказать релевантный порядок расположения элемента в этой группе, согласно запросу. Для решения такой задачи есть два типа методов: 1. Оптимизация метрик поиска информаций, как, например, DCG (discounted cumulative gain). Такой метод используется в SoftRank[9] и AdaRank[10]. 2. Минимизация специфичнойдля конкретной задачи целевой функции, основанной на понимании особенных свойств ранжирования в данной ситуации. Например, в ListNet[11] и вListMLE[12]. 2. Теоретические основы алгоритмов ранжированиятекстов 2.1. Предобработка входныхданных Перед тем, как приступить к обучению ранжированию, стоит определиться с форматом и обработкой входных данных. Ни один из выбранных алгоритмов машинного обучения – ни нейронная сеть в виде многослойного персептрона, ни метод опорных векторов – не способны принимать в качестве входных данных обычный текст, для них нужно некое числовое представление данных. Так как задача эта распространённая, то для векторизации текста можно воспользоваться уже существующей моделью word embedding. В данной работе была выбрана разработанная в 2013 году в компании Google Томасом Миколовым модель Word2Vec[13], которая, обрабатывая корпус текстов и основываясь на статистике совместного появления разных слов, представляет вектора в виде слов. К тому же, ещё в оригинальной статье отмечаются интересные свойства составленных нейронной сетью векторов слов: в векторах отражаются семантические связи слов, которые можно продемонстрировать с помощью линейных преобразований. К примеру, если к вектору слова «King» прибавить «Woman» и вычесть «Man», то в результате будет вектор, близкий к слову «Queen» [13]. Для обучения модели Word2Vec используются два разных подхода: Continuous Bag of Words (CBOW, «мешок слов») и Skip-gram. У каждого подхода есть свои особенности, например, если описать кратко, то в CBOW обучение основывается на предсказывании окружающего контекста по слову, Skip-gram же работает наоборот – предсказывает слово по контексту (модели их обучения отражены на рисунке 1). Рисунок 1 – Архитектура CBOW и Skip-gram Однако встаёт вопрос, какой из этих алгоритмов справляется лучше со своей задачей? Во второй оригинальной статье [14] приводится следующая таблица сравнения (таблица 1): Таблица 1 – Сравнение разных моделей на одинаковых выборках Model Architecture Semantic-Syntatic Word Relationship test set MSR Word Relatedness Test Set Semantic Accuracy [%] Syntatic Accuracy [%] RNNLM 9 36 35 NNLM 23 53 47 CBOW 24 64 61 Skip-gram 55 59 56 Алгоритмы, предложенные в статье, сравнивались по двум факторам: точность семантических отношений и точность грамматический (синтетических) отношений. В приведённой таблице 1 точность по первому показателю лучше у подхода Skip-gram, а синтетическая точность выше у «мешка слов». В данной работе стояла задача скорее оценить семантическую близость документов к запросам, поэтому для обучения была выбрана модель Skip-gram. Теперь более подробно про обучение Skip-gram модели, главная задача которой найти такое векторное представление слова, по которому можно максимально точно предсказать окружающий контекст. На вход поступает последовательность слов , тогда задача состоит в максимизации функции вида: 1) где – размер обучающей выборки. Как определить условную вероятность в данном случае? Для этого в «классическом» алгоритме используется обычная функцияsoftmax: ? 2) Но она вычислительно сложная, что будет влиять на время обучения, поэтому в обучении используется более вычислительно эффективная аппроксимация softmax’а – иерархический softmax (рисунок 2): Рисунок 2 – Иерархический Softmax Теперь для получения вычисления вероятности вместо W выходных узлов нейронной сети модели Word2Vec оценивается только log2(W) узлов [14], и это даёт большое преимущество. В иерархическом softmax’е для этой цели строится дерево Хаффмана, где каждый лист – это слово (см. рисунок 2). Тогда вычисление вероятности сводится к формуле: ([ ( )] )3) где , ch – левый дочерний узел, а L(w) – длина пути до слова. То есть искомая вероятность – это произведение всех шагов с вероятностью пойти по левому ребру равной ( ) и по правому – ( ). Итак, для преобработки текста для задач обучения ранжированию в данной работе в качестве модели для получения векторов слов, учитывая все перечисленные преимущество, можно использовать Skip-gram модель Word2Vec с иерархическим Softmax. 2.2. Нейронные сети В попарном подходе задача заключается в определении ранга относительно друг друга двух элементов выборки. Сводится эта задача или к регрессии, или к бинарной классификации, и с обоими типами задач прекрасно справляются нейронные сети. В данной работе задача ранжирования сводилась к задаче бинарной классификации, где класс (или 0, или 1) означал отсутствие или наличие инверсии. Инверсия в рамках попарного подхода обучения ранжированию – это неправильный порядок расположения в паре, то есть если на первом месте стоит элемент наименее релевантный запросу, то это свидетельствует о наличии инверсии. В данной работе в качестве нейронной сети использовался многослойный персептрон для бинарной классификации с двумя выходами. На вход персептрон подавались три элемента – запрос + первый текст + второй текст. Многослойный персептрон – модель искусственной нейронной сети прямого распространения. Существует три различных типа нейронов в персептроне: узлы входного слоя (сенсорные), узлы скрытых слоев (ассоциативные) и узлы выходного слоя (реагирующие). Многослойный персептрон можно представить в виде направленного ацикличного взвешенного графа, где каждый узел связан с узлами последующего слоя ребрами с установленными весами, при этом узлы одного слоя не связаны между собой (рисунок 3). Рисунок 3 – Схема многослойного персептрона Количество нейронов во входном слое устанавливаются количеством компонент в векторе входных данных, а количество выходных узлов зависят от условий поставленной задачи. Оптимальное количество скрытых слоев и количества их нейронов решаются в ходе экспериментов с моделью, однако обычно в качестве начального приближения можно взять один промежуточный слой, а число элементов в нем положить равным полусумме числа входных и выходных элементов [15]. На вход нейрона каждого слоя поступает вектор по ребрам с весами . Нейрон после получения вектора (сигнала) суммирует все входные значения, умножая на соответствующие веса, и прибавляет смещение. Полученное значение передают в качестве параметра некой функции и результат уже передаётся дальше по рёбрам (рисунок 4). Такая функция называется функцией активации. Рисунок 4 – Схема искусственного нейрона Чаще всего в качестве функции активации берётся гладкая (т.е. всюду дифференцируемая) и монотонно возрастающая функция, есть разные типы функций, выбирают их в зависимости от задачи: 1. В некоторых задачах используется линейная функция, то есть совершается линейной преобразования над комбинацией входа нейрона. Есть, например, линейные функции с насыщением (шаговая). Примером такой функции является: {4) 2. Существуют также пороговая функция активации, также известная, как функция Хевисайда. В этом случае пока комбинация входных сигналов не будет больше определенного порога T, выходной равняется нулю, в обратном случае – единице. { 3. Одной из популярных функций активаций является ReLU («выпрямитель») – пороговый переход внуле. 6) 4. Есть целый класс сигмоидальных функций активации – гладкие монотонно возрастающие функции, графики которых имеют вид буквы «S» (рисунок 5). Рисунок 5 – Семейство сигмоидальных функций В это семейство функций активаций входят, например, логистическая функция (7) и гиперболический тангенс (8). 7) 8) Однако более популярна логистическая функция, так как одним из её преимуществ является простота её производной. 9) Также одним из преимуществ является её способность лучше усиливать слабые сигналы, но при этом не допускать перенасыщение от сильных сигналов [16] (рисунок 6). Рисунок 6 – График логистической функции Для обучения многослойного персептрона используются разные алгоритмы обучения. Одним из самых распространённых является алгоритм обратного распространения ошибки, где для минимизации целевой функции используютсяразличныеметодыоптимизации,например,градиентный спуск. Назван этот алгоритм в связи с тем, что после прямого прогона по модели нейронной сети её выходные значения сравниваются с тем, что нужно получить, вычисляется ошибка (некая разница), а далее эта ошибка используется в вычислении ошибок на предыдущихслоях. Целевая функция (функция ошибки) зависит от поставленной задачи. Однако для задачи классификации такой функцией является квадратичная функция ошибок: 10) где – выходы нейронной сети с матрицей весов W, а – правильный вектор классов, соответствующие входным данным . Тогда вычисляется её градиент по весам для минимизации этой функции, то есть вычисляется частная производная функции ошибки по весам, используется при этом правила дифференцирования сложной функции. Производная целевой функции по весам последнего слоя: · 11) где ? – линейнаякомбинация входов,– значение функции активации нейронов. Тогда: · · 12) 13) 14) Длявычисленияградиентафункцииошибкидлявесовкаждого скрытого слоя используется ошибка следующего слоя (рисунок 7). Для этого обозначим ошибку одного нейрона выходного слоя . Рисунок 7 – Обратное распространение ошибки Таким образом, ошибка k-ого нейрона скрытого слоя зависит от ошибок всех нейронов последующего слоя с весами . Тогда: 15) Теперь можно вычислить новые веса по полученному градиенту по формуле: , 16) Однако существуют и другие алгоритмы оптимизации целевой функции для обучения нейронной сети, один из них – итерационный метод, относящий к классу квазиньютоновских методов, BFGS, названный так в честь своих создателей Бройдена, Флетчера, Гольдфарба и Шанно. Его, например, используют при обучении рекурентных нейронных сетей [17] и просто для оптимизации работы нейронных сетей [18][19].
Условия покупки ?
Не смогли найти подходящую работу?
Вы можете заказать учебную работу от 100 рублей у наших авторов.
Оформите заказ и авторы начнут откликаться уже через 5 мин!
Похожие работы
Дипломная работа, Технологические машины и оборудование, 82 страницы
1200 руб.
Дипломная работа, Технологические машины и оборудование, 76 страниц
1500 руб.
Дипломная работа, Технологические машины и оборудование, 161 страница
1800 руб.
Дипломная работа, Технологические машины и оборудование, 99 страниц
2000 руб.
Дипломная работа, Технологические машины и оборудование, 79 страниц
1600 руб.
Служба поддержки сервиса
+7 (499) 346-70-XX
Принимаем к оплате
Способы оплаты
© «Препод24»

Все права защищены

/slider/1.jpg /slider/2.jpg /slider/3.jpg /slider/4.jpg /slider/5.jpg