[БЕЗ ЗВУКА] Давайте пойдем дальше. Вот еще один пример, и мы уже переходим от задач классификации к задачам регрессии. Это тоже пример из области экономики: как оценить стоимость объекта недвижимости, например, квартиры в Москве. Здесь признаками могут быть характеристики данного объекта недвижимости. Вот бинарные признаки: наличие балкона, лифта, мусоропровода и так далее. Номинальные признаки: район города, тип дома и так далее. Количественные признаки, которые измеряются числами: жилая площадь, расстояние до центра города, расстояние до метро ну и так далее. То есть это опять-таки задачи с разнотипными признаками. Особенности этой задачи в том, что выборка очень неоднородная, и эти объекты недвижимости, которые оценивались в разные моменты времени, эта оценка еще очень сильно зависит от текущей ситуации на рынке недвижимости, и она меняется во времени. Кроме того, вот кажется, что здесь неплохо работала бы линейная модель, потому что, например, такие признаки, как наличие балкона или жилая площадь, или число комнат — каждая, кажется, дает какой-то аддитивный вклад в стоимость квартиры, то есть чем больше площадь, тем больше будет стоимость квартиры. Даже кажется, что эта зависимость похожа на линейную. Но тем не менее есть такие признаки, у которых ну явно этот признак не дает линейный вклад в стоимость квартиры. Например, как учесть расстояние до метро? Понятно, что чем оно больше, тем, наверное, ниже стоимость квартиры, но вот как учесть, значит, на сколько понижается стоимость квартиры с каждым километром до метро? Это тоже вопрос, который, если мы хотим пользоваться линейными моделями, должен как-то решаться. Еще один пример прикладной задачи, тоже из области экономики, это задача прогнозирования объемов продаж. Ну в данном случае задачу решают крупные сети, ритейл, и особенностью задачи является то, что здесь в роли объекта выступает уже такая достаточно сложная вещь, как товар в данном магазине в данный день. Значит, понятно, что стоимость товара может меняться от магазина к магазину, и она может меняться во времени, поэтому объект выглядит достаточно сложно. А признаки — да, они здесь тоже разнотипные. Конечно, самый главный признак — это стоимость данного товара в данном магазине в предыстории, это может быть стоимость этого же товара, но в других магазинах. Все эти признаки опять-таки исходно имеются в виде сырых временных рядов, и надо еще придумывать, как эти временные ряды объемов продаж преобразовывать в признаки, которые были бы удобны для построения предсказательных моделей. Но на этом не заканчиваются все особенности этой задачи, здесь еще очень важно, что очень необычная функция потерь. И если мы прогнозируем объемы продаж для того, чтобы планировать закупки, конечно же, надо учитывать такие факторы, как различные стоимости потерь при недопрогнозе и перепрогнозе. Перепрогноз может приводить к тому, что мы купим слишком много товара: и место на полках займет, и в конце концов может быть даже испортится. Если же мы товара недозакупим, мы можем потерять и на торговой наценке (спрос есть — мы товар не продаем), и можем потерять лояльность клиентов, и оценивать это достаточно тяжело. А целью решения таких задач, конечно же, является не уменьшение какой-то среднеквадратичной ошибки прогнозов, которая не имеет экономического смысла, а целью является получение максимальной прибыли компанией. И в таких задачах очень важно правильно формализовать, какую цель мы хотим достичь, и в соответствии с этим, как мы хотим оптимизировать модель. Иногда функционалы приходится строить настолько необычные, что сложно и нестандартно ставятся оптимизационные задачи для построения предсказательных моделей. Очень много примеров прикладных задач можно увидеть на сайте kaggle.com, на котором проходят регулярно и в большом количестве конкурсы по анализу данных. Вот пример одной из прикладных задач: объектом является некое место, где предполагается открыть новый ресторан, и хочется предсказать прибыль от ресторана, которую он будет приносить через год. Естественно, обучающая выборка — это исторический материал, который собран по большому количеству ресторанов, которые были когда-то открыты: через год измерили их прибыль, и имеется вот эта вот информация. Нам хочется обучиться для того, чтобы принимать решения, в каком месте нам выгоднее открывать ресторан. Ну здесь примеры признаков — это, конечно, демографические свойства того района, где предполагается расположить ресторан, цены на объекты недвижимости поблизости, есть ли рядом школы, офисы, то есть есть ли большое количество людей, которых имело бы смысл накормить. И, конечно, особенности этой задачи в том, что здесь можно очень много померить признаков, а объектов, по которым собрана достоверная информация, не так уж много. Признаки разнотипные, есть выбросы, есть неправильно померенная информация, но неизвестно, где измерения правильные, неправильные, вот. И, конечно же, разнородность, то есть и города очень разные, и сами рестораны очень разные, и, тем не менее, решать задачу хочется. Еще один пример, — это мы уже переходим от задач регрессии к задачам ранжирования, — задача ранжирования поисковой выдачи, которая решается поисковыми системами, такими как Яндекс, Google, Yahoo!, Bing и другие. В данном случае тоже очень важно разобраться, что же является объектом. Это не отдельный документ, это не отдельный запрос, а это именно пара запрос—документ, а классом является ответ на вопрос: релевантен ли данный документ для данного запроса? И важной особенностью этой задачи является то, что обучающая информация здесь должна составляться людьми. Есть специальная профессия людей, которые называются асессорами, которые занимаются тем, что размечают поисковую выдачу, и для каждого документа ставят оценку: релевантен или нет. Если бы поисковые системы не имели возможность получать эту информацию от людей, от пользователей поисковой системы, то, конечно же, вот понять, а в чем же человеческое понятие релевантности заключается, бы не удалось. Эта задача тоже, в которой очень много разных признаков. Количественные признаки здесь — это частота слов запросов в документе, число ссылок на документ, число кликов на документ и так далее. Сейчас используются сотни таких признаков. Итак, особенностью данной задачи является то, что здесь уже мы оптимизируем не число ошибок, а качество ранжирования. Важно, что выборки здесь очень большие и что нам нужно как-то конструировать признаки по сырым данным. Мы имеем информацию о всем Интернете и имеем информацию о том, как пользователи кликают по документам, и вот из этой информации должны как-то научиться извлекать признаки. Вот еще один очень похожий пример. Это теперь рекомендательные системы, это тоже пример из области коммерческих применений в Интернете. Здесь объектами является пара клиент—товар, причем это такие товары, к которым клиенты имеют какие-то вкусовые пристрастия, например, книги, фильмы, музыка. И нам очень хочется в огромном море всех вот этих товаров выбирать те, которые данному конкретному клиенту с большой вероятностью понравятся, и делать ему направленное предложение и помогать ему ориентироваться в этом море товаров. В данном случае примерами количественных признаков являются, например, частота покупок или средний рейтинг схожих товаров для данного клиента. Дело в том, что в разных рекомендательных системах клиенты по-разному проявляют свое поведение. И где-то, например, они могут ставить рейтинги, например, фильмам, а где-то они просто покупают или пишут комментарии или же как-то иначе высказывают свое отношение к товару. Вот вся эта информация разнородная должна быть в итоге сведена в признаки. Особенностью этой задачи является то, что данные, сырые данные, исходные, действительно очень большого объема, это транзакционные данные, информация о поведении клиентов. И кажется, что мы здесь должны выявлять какие-то интересы клиентов и те интересы, которые способны удовлетворять товары, и эти интересы, они и должны быть здесь признаками. Но дело в том, что никто не может точно сказать, сколько таких интересов, их 100 или их 1000, или их 10000, и как-то сформулировать четко, а что это за интересы. То есть это пример той задачи, где инженерными усилиями человеческими мы не можем изобрести признаки, и мы должны пользоваться такими методами, которые вот эти самые интересы, признаки найдут автоматически. А вот еще один пример из сайта kaggle.com, это пример, когда мы хотим предсказать, кликнет ли пользователь на контекстной рекламе. Схожую задачу решают также и поисковые системы, но в данном случае данные были предоставлены компанией Avito.ru. Сырые данные — это действия пользователя на сайте, это история показов и кликов этого пользователя и других пользователей по данному баннеру, и это огромное количество информации. Требуется предсказать, кликнет или не кликнет, то есть объектом в данном случае является тоже тройка (пользователь, объявление, баннер), причем нам важны все три компонента этого объекта, хотя информация может быть использована и только о пользователе, и только об объявлении, и только о баннере. Но очень важно и охарактеризовать какими-то признаками вот это тройное взаимодействие, что пользователь по объявлению кликнет еще и на рекламный баннер. И здесь, конечно, тоже нужно придумывать признаки, нужно ворочать этим огромным объемом данных в сотни миллионов показов. И важно правильно изобрести функцию потерь и функционал качества, который необходимо оптимизировать для построения предсказательной модели. На самом деле, конечно, невозможно в одной короткой лекции охватить огромное количество прикладных задач и примеров таких задач, но, думаю, что на этом ряде рассказов мне удалось показать, что задачи бывают самые разнообразные, они встречаются в самых разных прикладных областях. И свойства реальных задач, — в отличие от таких простых и классических примеров, как, например, решение задачи наименьших квадратов для проведения функции через заданные точки, — в машинном обучении данные гораздо более сложные: они могут быть разнородными, неполными, неточными, противоречивыми, они могут быть избыточными либо, наоборот, недостаточными, у них может быть какая-то сложная структура, — вспоминаем про транзакционные данные, — и в них может быть нетривиальный критерий качества, — вспоминаем про задачу ранжирования или про задачу предсказания потребительского спроса. Вот при всех этих условиях нам нужно будет с вами научиться строить предсказательные модели. [БЕЗ ЗВУКА] [БЕЗ ЗВУКА]