Блендинг что это такое
Анализ малых данных
КвазиНаучный блог Александра Дьяконова
Cтекинг (Stacking) и блендинг (Blending)
Стекинг (Stacked Generalization или Stacking) — один из самых популярных способов ансамблирования алгоритмов, т.е. использования нескольких алгоритмов для решения одной задачи машинного обучения. Пожалуй, он замечателен уже тем, что постоянно переизобретается новыми любителями анализа данных. Это вполне естественно, его идея лежит на поверхности. Известно, что если обучить несколько разных алгоритмов, то в задаче регрессии их среднее, а в задаче классификации — голосование по большинству, часто превосходят по качеству все эти алгоритмы. Возникает вопрос: почему, собственно, использовать для ансамблирования такие простые операции как усреднение или голосование? Можно же ансамблироование доверить очередному алгоритму (т.н. «метаалгоритму») машинного обучения.
Простейшая схема стекинга — блендинг (Blending): обучающую выборку делят на две части. На первой обучают базовые алгоритмы. Затем получают их ответы на второй части и на тестовой выборке. Понятно, что ответ каждого алгоритма можно рассматривать как новый признак (т.н. «метапризнак»). На метапризнаках второй части обучения настраивают метаалгоритм. Затем запускают его на метапризнаках теста и получают ответ.
Рис.1. Схема классического блендинга.
Самый большой недостаток блендинга (в описанной реализации) — деление обучающей выборки. Получается, что ни базовые алгоритмы, ни метаалгоритм не используют всего объёма обучения (каждый — только свой кусочек). Понятно, что для повышения качества надо усреднить несколько блендингов с разными разбиениями обучения. Вместо усреднения иногда конкатенируют обучающие (и тестовые) таблицы для метаалгоритма, полученные при разных разбиениях (см. рис. 2): здесь мы получаем несколько ответов для каждого объекта тестовой выборки — их усредняют. На практике такая схема блендинга сложнее в реализации и более медленная, а по качеству может не превосходить обычного усреднения.
Рис.2. Возможная модификация блендинга.
Второй способ борьбы за использование всей обучающей выборки — реализация классического стекинга. Ясно, что совсем не делить обучение на подвыборки (т.е. обучить базовые алгоритмы на всей обучающей выборке и потом для всей выборки построить метапризнаки) нельзя: будет переобучение, поскольку в каждом метапризнаке будет «зашита» информация о значении целевого вектора (чтобы понять, представьте, что один из базовых алгоритмов — ближайший сосед). Поэтому выборку разбивают на части (фолды), затем последовательно перебирая фолды обучают базовые алгоритмы на всех фолдах, кроме одного, а на оставшемся получают ответы базовых алгоритмов и трактуют их как значения соответствующих признаков на этом фолде. Для получения метапризнаков объектов тестовой выборки базовые алгоритмы обучают на всей обучающей выборке и берут их ответы на тестовой.
Рис.3. Получение метапризнака в классическом стекинге.
Здесь тоже желательно реализовывать несколько разных разбиений на фолды и затем усреднить соответствующие метапризнаки (или ответы стекингов!). Но самый главный недостаток (классического) стекинга в том, что метапризнаки на обучении (пусть и полноценном — не урезанном) и на тесте разные. Для объяснения возьмём какой-нибудь базовый алгоритм, например, гребневую регрессию. Мета-признак на обучающей выборке — это не ответы какого-то конкретного регрессора, он состоит из кусочков, которые являются ответами разных регрессий (с разными коэффициентами). А метапризнак на контрольной выборке вообще является ответом совсем другой регрессии, настроенной на всём обучениии. В классическом стекинге могут возникать весьма забавные ситуации, когда какой-то метапризнак содержит мало уникальных значений, но множества этих значений на обучении и тесте не пересекаются!
Часто с указанными недостатками борются обычной регуляризацией. Если в качестве метаалгоритма используется гребневая регрессия, то в ней есть соответствующий параметр. А если что-то более сложное (например бустинг над деревьями), то к метапризнакам добавляют нормальный шум. Коэффициент с которым происходит добавка и будет здесь некоторым аналогом коэффициента регуляризации (это очень интересный приём — поиграйтесь на досуге).
Полезно посмотреть работу моего студента Саши Гущина про его попытки (весьма удачные) создать «стекинг без недостатков».
Качество стекинга
Стоит отметить, что не всегда стекинг существенно повышает качество лучшего из базовых алгоритмов. На рис.4 показаны результаты для простейшей модельной задачи (о ней — ниже). Видно, что качество блендинга и стекинга сравнимы с лучшим базовым алгоритмом. Но если этот алгоритм убрать из базовых, качество стекинга падает не сильно.
Рис.4. Качество базовых алгоритмов, блендинга и стекинга в модельной задаче.
А вот (рис.4b) качество на случайно взятой реальной задаче (я взял данные проходящего сейчас соревнования mlbootcamp, несколько случайных лесов и LightGBM-ов в качестве базовых алгоритмов).
Рис.4b. Качество базовых алгоритмов, блендинга и стекинга в реальной задаче.
Также отметим, что здесь мы использовали однократный стекинг (без усреднения), усреднение ещё повышает качество, но незначительно (см. рис. 5-5b).
Рис.5. Качество при усреднении блендинга для разных пропорций деления обучающей выборки.
Рис.5b. Качество при усреднении блендинга на реальной задаче.
Кстати, для стекинга нужны достаточно большие выборки (скажем, в двумерных модельных задачах он «начинает работать», когда число объектов измеряется десятками тысяч). На малых выборках он тоже может работать, но тут надо аккуратно подбирать базовые алгоритмы и, главное, метаалгоритм.
Природа алгоритмов
В отличие от бустинга и традиционного бэгинга при стекинге можно (и нужно!) использовать алгоритмы разной природы (например, гребневую регрессию вместе со случайным лесом). Для формирования мета-признаков используют, как правило, регрессоры.
Но стоит помнить о том, что правильное применение стекинга — это не взять кучу разных алгоритмов и «состекать». Дело в том, что для разных алгоритмов нужны разные признаковые пространства. Скажем, если есть категориальные признаки с малым (3-4) числом категорий, то алгоритму «случайный лес» их можно подавать «как есть», а вот для регрессионных (ridge, log_reg) нужно предварительно выполнить one-hot-кодировку.
Метапризнаки
Поскольку это ответы уже натренированных алгоритмов, то они сильно коррелируют. Это априорно один из недостатков подхода. Для борьбы с этим часто базовые алгоритмы не сильно оптимизируют. Иногда здорово срабатывают идеи настройки не на целевой признак, а, например, на разницу между каким-то признаком и целевым.
Стекинг на практике
Стекинг можно и нужно использовать при решении реальных бизнес-задач, поскольку при умелом построении композиции алгоритмов он даже помогает бороться с типичными проблемами реальных данных. Например, одна из таких проблем — значения признаков у нас появляются в реальном времени и в будущем могут быть артефакты, которые мы не наблюдали в прошлом. Скажем, из опыта автора: «сломались» счётчики посещений интернет-ресурсов и начали показывать аномальные значения (в 100 раз больше истины). Это совершенно губит регрессионные алгоритмы (у них ответы также могут возрасти в 100 раз), но если регрессии использовать как базовые алгоритмы (натренировать на разных признаковых пространствах), а в качестве метаалгоритма использовать что-то основанное на деревьях, то ответ такого стекинга уже не будет совсем неадекватным даже при «повреждении» некоторых признаков.
Использование признаков вместе с метапризнаками
Автор знает несколько случаев (у своих учеников), когда это повышало качество. Есть также и случаи, когда это приводит лишь к переобучению. В любом случае: при решении практической задачи для бизнеса лучше так не делать! Модели становятся совсем неинтерпретируемыми и «неуправляемыми».
Рис.6. Использование признаков с метапризнаками
Деформация признаков
Очень полезный приём, о котором часто забывают — преобразование (деформация) метапризнакового пространства. Скажем, вместо стандартных метапризнаков (ответов алгоритмов) можно использовать мономы над ними (например, все попарные произведения).
Параметры стекинга
У самого стекинга (а не только алгоритмов, из которых он состоит) есть параметры. Скажем, число фолдов. Как правило выбирают максимальное, при котором он ещё работает (обучается) за приемлемое время. На рис.7 показано качество в модельной задаче от числа фолдов при разном уровне «регуляризационного шума».
Рис.7. Качество второй схемы стекинга от параметров (число фолдов и уровень шума).
Выбор метаалгоритма
Здесь всё просто — он должен оптимизировать заданный функционал качества. От базовых алгоритмов это, вообще говоря, не требуется. Вообще-то, от того, какую композицию Вы будете использовать в ансамбле, сильно зависит качество. Например, в задаче бинарной классификации с функцией ошибки log_loss, если у Вас есть несколько хороших алгоритмов, то сложно придумать стекинг, который их улучшит… Если в качестве метаалгоритма взять гребневую регрессию, то она совсем не годится для log_loss-a, а если логистическую, то обратите внимание на вид Вашего алгоритма: Вы в аргумент сигмоиды «вставляете» линейную комбинацию «почти правильных ответов», вряд ли Вы получите что-то более близкое к правильному ответу…
Связь с другими техниками
Удивительно, но стекинг является обощением практически всего, с чем приходится иметь дело при решении задач. Например, рассмотрим классическую проблему — кодирование категориальных признаков. Если мы для кодирования используем значение целевого вектора, то это эквивалентно тому, что мы получаем метапризнак с помощью байесовского алгоритма, который использует лишь один (кодируемый категориальный) признак. Если мы так закодируем все категориальные признгаки, а потом обучим какой-нибудь алгоритм, то получается, что мы неявно применили стекинг. Ну, а изображение схемы применения стекинга часто похоже на изображение нейронной сети, просто вместо стандартных нейронов используются названия алгоритмов.
Рис.8. Стандартное изображение стекинга
Многоуровневый стекинг
Естественное обобщение стекинга — сделать его многоуровневым, т.е. ввести понятие мета-мета-признака (и мета-мета-алгоритма) и т.д. Опять же, лучше воздержаться от этого при решении реальных бизнес-задач, а в спортивном анализе данных так часто делают.
История
Стекинг был предложен Д. Волпертом в 1992 году, хотя, как я уже писал, он постоянно переоткрывается, и, возможно, кто-нибудь использовал уже подобную технику под другим названием раньше. Кстати, Д. Волперт больше известен как автор серии теорем «No free lunch».
Термин «блендинг» вроде бы ввели в обиход победители конкурса Netflix. Есть постоянная путаница, что называть «стекингом», а что «блендингом». Часто негласно считают, что простые схемы стекинга лучше называть «блендингом».
Удивительно, но стекингу посвящено очень мало научных статей, хотя он порождает очень много теоретических вопросов. Например, как решать задачи машинного обучения в пространстве метапризнаков? Ясно, что в отличие от традиционного признакового пространства здесь все признаки сильно коррелируют друг с другом и с целевым признаком. Это, например, может предъявлять особые требования к регуляризации.
Стекинг часто используют в спортивном анализе данных, в частности, автор с его помощью побеждал в соревнованиии Kaggle WISE 2014 и занимал 3е место в TunedIt JRS 2012.
Геометрия стекинга
Просто приведу пример модельной задачи: линии уровней базовых регрессоров, блендинга и стекинга.
В интернете можно найти разные реализации стекинга, например brew и heamy. Если Вы плотно занимаетесь машинным обучением, то лучше сделать свою. В какой-то момент Вы захотите что-нибудь модифицировать и тогда она Вам пригодится.
Вот ноутбук, в котором есть (достаточно простая) авторская реализация.
Методы сбора ансамблей алгоритмов машинного обучения: стекинг, бэггинг, бустинг
Что такое ансамбли моделей?
Стекинг. Могут рассматриваться разнородные отдельно взятые модели. Существует мета-модель, которой на вход подаются базовые модели, а выходом является итоговый прогноз.
Бэггинг. Рассматриваются однородные модели, которые обучаются независимо и параллельно, а затем их результаты просто усредняются. Ярким представителем данного метода является случайный лес.
Бустинг. Рассматриваются однородные модели, которые обучаются последовательно, причем последующая модель должна исправлять ошибки предыдущей. Конечно, в качестве примера здесь сразу приходит на ум градиентный бустинг.
Рисунок 1
Три этих способа и будут детальнее рассмотрены далее.
Стекинг
Из трех вариантов стекинг является наименее популярным. Это можно проследить и по числу готовых реализаций данного метода в программных библиотеках. В том же sklearn.ensemble в python куда чаше используют AdaBoost, Bagging, GradientBoosting, чем тот же самый Stacking (хотя его реализация там тоже есть).
Стекинг выделяется двумя основными чертами: он может объединить в себе алгоритмы разной природы в качестве базовых. Например, взять метод опорных векторов (SVM), k-ближайших соседей (KNN) в качестве базовых и на основе их результатов обучить логистическую регрессию для классификации. Также стоит отметить непредсказуемость работы метамодели. Если в случае бэггинга и бустинга существует достаточно четкий и конкретный ансамблевый алгоритм (увидим далее), то здесь метамодель может с течением времени по-разному обучаться на входных данных.
Алгоритм обучения выглядит следующим образом (рис. 2):
Делим выборку на k фолдов (тот же смысл, что и в кросс-валидации).
Для объекта из выборки, который находится в k-ом фолде, делается предсказание слабыми алгоритмами, которые были обучены на k-1 фолдах. Этот процесс итеративен и происходит для каждого фолда.
Создается набор прогнозов слабых алгоритмов для каждого объекта выборки.
На сформированных низкоуровневыми алгоритмами прогнозах в итоге обучается метамодель.
Рисунок 2
Ссылки на библиотеки для использования метода приведены ниже:
Бэггинг
Бэггинг является уже более популярным подходом и зачастую при упоминании этого термина вспоминается алгоритм построения случайного леса, как наиболее типичного его представителя.
При данном методе базовые алгоритмы являются представителями одного и того же семейства, они обучаются параллельно и почти независимо друг от друга, а финальные результаты лишь агрегируются. Нам необходимо, чтобы на вход слабым алгоритмам подавались разные данные, а не один и тот же набор, ведь тогда результат базовых моделей будет идентичен и смысла в них не будет.
0.632*n разных объектов. Таким образом, должны сформироваться m обучающих выборок для m слабых алгоритмов.
Бутстрэп выборки являются в значительной степени независимыми. Отчасти поэтому и говорят, что базовые алгоритмы обучаются на выборках независимо.
Что касается агрегации выходов базовых алгоритмов, то в случае задачи классификации зачастую просто выбирается наиболее часто встречающийся класс, а в случае задачи регрессии выходы алгоритмов усредняются (рис. 3). В формуле под ai подразумеваются выходы базовых алгоритмов.
Рисунок 3
Общий процесс приведен на рисунке ниже (рис. 4):
Рисунок 4
Случайный лес
Рисунок 5
Ссылки на библиотеки для использования метода приведены ниже:
Бустинг
В данном случае, модели уже не обучаются отдельно друг от друга, а каждая следующая правит ошибки предыдущей. То есть можно сказать, что если один слабый алгоритм не смог выявить какую-либо закономерность в данных, так как это было для него сложно, то следующая модель должна сделать это. Но из данного подхода вытекает недостаток: работу алгоритма трудно распараллелить из-за зависимости предыдущего и последующего шагов.
Бустинг направлен скорее на уменьшение смещения в данных, чем на снижение разброса в них. Поэтому в качестве базовых алгоритмов могут браться модели с достаточно высоким смещением, например, неглубокие случайные деревья.
Рисунок 6
Типичными представителями бустинга являются две модели: градиентный бустинг и AdaBoost. Обе по-разному решают одну и ту же оптимизационную задачу по поиску итоговой модели, представляющей собой взвешенную сумму слабых алгоритмов (рис. 6).
Градиентный бустинг использует типичный алгоритм градиентного спуска для решения задачи. Когда приходит время добавить новый слабый алгоритм в ансамбль делается следующее:
Находится оптимальный вектор сдвига, улучшающий предыдущий ансамбль алгоритмов.
Этот вектор сдвига является антиградиентом от функции ошибок работы предыдущего ансамбля моделей
Благодаря вектору сдвигов мы знаем, какие значения должны принимать объекты обучающей выборки
А поскольку нам надо найти очередной алгоритм в композиции, то находим тот, при использовании которого минимизируется отклонение ответов от истинных
Ссылки на библиотеки для использования метода приведены ниже:
Заключение
Таким образом, мы увидели, что для того, чтобы улучшить качество функционирования отдельно взятых моделей машинного обучения, существует ряд техник их объединения в ансамбли. Эти техники уже заложены в программные продукты и ими можно пользоваться, улучшая свое решение. Однако, с моей точки зрения, при решении задачи не стоит сразу же браться за них. Лучше сначала попробовать одну простую, отдельную модель, понять, как она функционирует на конкретных данных, а уже дальше использовать ансамбли.
Блендинг что это такое
Blending как способ словообразования
Автор работы награжден дипломом победителя III степени
Английский язык является одним из самых лексически могучих и развитых языков мира. Как и другие языки, он постоянно изменяется. Самуил Яковлевич Маршак писал: «Язык изменчив, как изменчива сама жизнь». Язык как хороший барометр откликается на все изменения жизни. Часть слов устаревает и выходит из общения. Словарный запас каждого нового поколения пополняется новыми словами и выражениями для обозначения меняющейся действительности. Новые слова появляются не только для обозначения появляющихся предметов обихода, названий новых инструментов, явлений, открытий, но и при помощи добавления суффиксов, приставок к уже имеющимся словам или при помощи словосложения, конверсии. Это словообразование. «Словообразование – это раздел науки о языке, который изучает строение слов (из каких частей они состоят) и способы их образования». 1
К способам словообразования в английском языке относятся: аффиксация (префиксы, суффиксы), конверсия, словосложение, словослияние, сокращение.
Актуальность темы: Словообразовательная система современного английского языка активно и плодотворно изучалась как отечественными, так и зарубежными лингвистами; было написано значительное количество работ, рассматривающих отдельные аспекты словообразования. Однако в последнее время язык изменяется очень быстро, частично меняется его структура, но, главным образом, меняется лексический состава языка и продуктивность словообразовательных моделей. Существующих теоретических знаний становится недостаточно. Поэтому необходимо выявление новых, современных тенденций, прослеживающихся в последние десятилетия.
Выдвинем гипотезу: образование слов при помощи блендинга – это достаточно распространенный способ словообразования, имеющий свои особенности.
Объектом настоящего исследования является словообразовательная система английского языка. Предметом исследования являются особенности блендинга (словослияния) как способа словообразования на современном этапе.
Цель работы: исследование процесса образования новых слов путем словослияния ( blending ).
Из поставленной цели вытекают следующие задачи:
изучить теоретический материал по данной теме и понять, что представляет собой блендинг;
выяснить причины появления блендингов в английском языке и русском языках;
выделить основные способы образования блендов;
провести анализ слов, образованных путем словослияния, с точки зрения морфологии;
составить список блендов, образованных одноклассниками.
В ходе работы над темой использовались различные методы: метод сплошной выборки, словообразовательный анализ, анализ словарных единиц, систематизации.
Поставленные цели и задачи, а так же актуальность исследуемой темы предопределили структуру данной работы, состоящую из двух частей, введения, заключения, списка использованных источников и приложения. В первой части данной работы освещаются основные вопросы теории блендинга, во второй (практической) части анализируются бленды с точки зрения морфологии, а также приводятся примеры блендов, которые составили девятиклассники.
1.1 Что такое «бленд» и типы блендов
Всем нам хорошо известен бытовой прибор блендер, который предназначен для измельчения пищи, приготовления смесей, пюре, напитков. Какое же отношение имеет однокоренное слово блендинг к словообразованию. Словослияние ( blending ) – процесс, предполагающий слияние двух и более фрагментов слов в новую единицу языка. Данный способ словообразования является общеязыковым явлением — известны исследования слов-слияний в английском, немецком, французском, испанском, арабском, японском, русском языках. В современной отечественной науке проблемы блендинга раскрыты в трудах таких ученых: Л.С. Абросимовой, О.А. Хрущевой, Н.А. Лавровой и др.
В британском варианте английского языка такие образования используются преимущественно в журналистике, например: edvertorial ( an advertisement и an editorial ). Благодаря политикам появилось слово Brexit ( Britain и exit ). Под этим словом понимают процесс выхода Великобритании из Евросоюза.Еще одна большая область, давшая большое количество блендов – это область науки и техники. Например, chunnel ( channel и tunnel ). Типичным примером слов – блендов в русском языке является сетеголик → сетевой + трудоголик. Мы можем заметить слова – бленды, которые образованы из части английского слова и концовки русского слова, например: VIP ендриваться → (от англ. Very Important Person – особо важное лицо) + выпендриваться, club иться → club (клуб) + клубиться. Дети, которые растут в семьях, где родители разных национальностей и в семье говорят на двух языках, сами придумывают слова – бленды: merci бочки, spoon очка.
Бленд – это слово, образованное путем «склейки» двух слов, обычно начала первого и конца второго. Например, слово Brangelina ( Brad + Angelina ). Хотя Беляева Наталья Васильевна – кандидат филологических наук, докторант кафедры лингвистики и прикладных исследований языка Университета Виктория (Веллингтон, Новая Зеландия) в своей статье «Структура и семантика современных английских блендов» называет шесть типов и их описаний: «1) начало первого слова (либо первое слово целиком) плюс конец второго ( chofa → chair + sofa ); 2) начало первого слова плюс второе полностью ( fabulash → fabulous + lash ); 3) оба слова включены полностью за счет наложения ( flabdomen → fl ab + ab domen ); 4) начало первого слова плюс начало второго ( hydrail → hydrogen + railway ); 5) более короткое слово вставлено в середину более длинного с замещением его центрального фрагмента ( parahawking → paragliding + hawk ); 6) бленды из 3-4 элементов ( afflufemza → affluent + feminist + mothers = influenza )». 2
Oxbridge (Ox(ford) + (Cam)bridge) — обозначение двух крупнейших университетов Великобритании.
Videorazzi — video + paparazzi — тот, кто преследует знаменитостей и снимает их видеокамерой, а не фотоаппаратом.
В жизни каждого человека бывают моменты, когда он спит очень мало. Это может быть связано с загруженностью на работе, во время экзаменов, когда в семье беспокойный ребенок. Обычное лекарство здесь не поможет. Выход в одном. Человеку для улучшения жизни нужно хорошенько выспаться. Bedicine – «кроватная терапия». Данный бленд образован из слов bed и усеченной части слова medicine (лекарство).
Школьной программой по литературе в 6 классе предусмотрено изучение повести Н.С. Лескова «Левша». Автор употребляет слова – бленды, например: бюстры и мелкоскоп. Он имитирует простонародную лексику. Лесков замечает, что в сознании народа предметы роскоши слились в непонятный клубок, люди не отличают бюсты от люстр. А слово «мелкоскоп» стало иллюстрацией другой идеи автора: русские мастера с опасением относятся к достижениям чужеземной науки. Их талант настолько велик, что технические изобретения не победят гений мастера. Бленд «мелкоскоп» состоит из микроскоп + мелкий – smallcroscope (small и microscope). Н.С. Лесков приводит еще несколько примеров: нимфозория – от слов нимфа и инфузория (означает нечто диковинное, микроскопическое); клеветон – от слов фельетон и клевета; свистовые от слов свисток и вестовой (посланный для передачи вести). Список блендов, используемых Н.С. Лесковым в повести «Левша», можно увидеть в Приложении 2.
Подводя итог вышесказанному, следует отметить следующие аспекты:
1. Блендинг является самостоятельным способом словообразования.
2. Бленды – соединения, которые состоят из одного слова и части другого или частей двух других слов, которые объединяются путём соединения и/или наложения друг на друга.
2. Практическая часть
2.1 Анализ блендов с точки зрения морфологии
2.2 Образование собственных блендов