Meteum 2.0, или почему Яндекс.Погода спрашивает вас о дожде — Блог Яндекса
Блог Яндекса
12 июля 2021, 16:10
Прогноз погоды, который вы видите на Яндексе, — наш собственный. Его составляет технология метеопрогнозирования Meteum. Недавно Meteum обновился: прогноз стал точнее, и мы научились лучше определять зоны осадков. В этом помогают сигналы от пользователей — Яндекс спрашивает, идёт ли сейчас дождь, а люди дают ответы. Здесь мы расскажем, чем Meteum 2.0 отличается от Meteum 1.0 и почему сигналы о дожде не менее важны, чем показания метеостанций.
Сообщения пользователей об осадках отмечаются на карте зонтикамиС чего всё началось
Отказаться от стороннего прогноза погоды и делать свой мы решили в 2015 году. Яндекс всю историю занимается анализом данных, а прогнозирование погоды — задача как раз из этой области. Есть огромный архив данных о том, какой погода была в прошлом, есть данные о том, какая она сейчас. Нужно это проанализировать и сделать вывод, какой она будет в будущем.
Большинство прогнозов строится метеомоделями. Это математические модели, которые предсказывают, каким будет состояние атмосферы Земли в тот или иной момент. Хороших метеомоделей много, но все они иногда ошибаются. При этом в их ошибках, как правило, есть те или иные закономерности.
Мы взяли несколько метеомоделей, включая собственную, и стали обрабатывать их прогнозы с помощью машинного обучения. Результат — ещё один прогноз, в котором выявлены закономерности и скомпенсированы ошибки исходных моделей. Кроме того, этот прогноз рассчитывается для точки, где находится человек, а не для ближайшего города. Технология получила название Meteum.
Meteum 2.0
Прогнозов, которые всегда были бы абсолютно верными, к сожалению, пока не существует, и наш не исключение. Поэтому прогнозирование погоды — это постоянная борьба за повышение точности. На эту тему пишутся научные работы и выдаются патенты, но в целом сделать прогноз точнее можно двумя способами: использовать больше данных — чтобы учесть то, что не учитывалось раньше — и совершенствовать методы их обработки. В Meteum 2.0 мы задействовали оба.
Шесть лет назад, когда мы запускали первый Meteum, для обработки данных использовался метод машинного обучения MatrixNet. Сейчас мы перешли на CatBoost — более новый и более перспективный для задач анализа погоды метод. Система прогнозирования на основе CatBoost, помимо данных от исходных метеомоделей, умеет учитывать и дополнительные факторы: высоту солнца над горизонтом или удалённость от водоёма. Всё это тоже влияет на погоду.
Данных у нас тоже стало больше. Во-первых, мы, как и раньше, используем метеомодели. Когда Meteum только появился, их было три, а сейчас пять: из США, Канады, Японии, Европы и наша собственная. Во-вторых, мы начали применять для составления прогноза погоды данные с метеорадаров и спутниковые снимки.
Радары и спутники
Метеорологические радары находятся на поверхности Земли и делают трёхмерные снимки атмосферы в радиусе 200 километров. Спутники размещаются на геостационарной орбите и фотографируют Землю из космоса — на их снимках видны зоны облачности. По данным с радаров и спутников составляется карта осадков. Это краткосрочный прогноз, с помощью которого можно с точностью до минут понять, когда начнётся и когда закончится дождь.
Наконец, ещё один важный источник данных в Meteum 2.0 — сигналы от пользователей. Те, кто пользуется Яндекс.Погодой или приложением Яндекс, наверняка замечали, что время от времени мы спрашиваем, идёт ли сейчас дождь, и показываем два варианта: «Да» и «Нет». Ответить на вопрос — доли секунды, но между тем такие ответы сильно помогают улучшить качество прогноза.
Коллективный прогноз
Изначально мы задавали пользователям вопрос о дожде, чтобы проверить, верен ли наш прогноз. С каждым днём мы получали всё больше сообщений, и в какой-то момент стало ясно, что подобные сигналы могут быть не просто средством контроля, но и полноценным источником данных для обучения Meteum 2.0 — наряду с радарами, спутниковыми снимками и сводками с метеостанций.
Любой прогноз — это попытка предугадать развитие событий: какую температуру и силу ветра измерит метеостанция, куда двинется облако на спутниковом снимке и так далее. Так же и с сообщениями о дожде. Meteum 2.0 анализирует уже присланные сигналы и учится прогнозировать, какие пришлют в будущем.
В дождливые дни пользователи присылают до 2,5 млн сигналовБлагодаря сообщениям от пользователей краткосрочный прогноз осадков стал на 20% точнее. Самый заметный прирост качества — на Урале, в Сибири и на Дальнем Востоке, то есть в регионах, для которых у нас нет данных метеорадаров. Раньше мы прогнозировали осадки в этих местах, опираясь только на спутниковые снимки. С появлением нового источника данных — сигналов от пользователей — точность прогноза приблизилась к той, которую дают радарные наблюдения.
Погода
СправкаВсе блоги сервисов© 2013–2023 «Яндекс»Встречаем Meteum 2.0 — первую технологию метеопрогноза, алгоритмы которой обучаются на сообщениях пользователей / Хабр
Предсказывать погоду — дело неблагодарное. Рано или поздно каждый из нас сталкивается с ошибками в прогнозе, избежать которых трудно из-за постоянного недостатка информации и ограничений метеорологического оборудования. Но там, где не справляется техника, способен помочь человек.
Сегодня мы начинаем раскатывать новую версию прогнозирования осадков в Яндекс.Погоде. Ключевое изменение — внедрение технологии Meteum 2.0, которая впервые в истории метеопрогноза полагается не только на данные технических средств, но и на сообщения пользователей. В это сложно поверить, но сигналы пользователей оказались не менее полезны для качества прогнозов, чем данные радаров и спутников. Благодаря этому краткосрочный прогноз осадков стал точнее на 20%, а значит, люди будут реже попадать под дождь.
Присаживайтесь поудобнее: сейчас расскажу обо всём по порядку.
Про метеостанции, радары и спутники
Шесть лет назад первая версия технологии Meteum позволила нам начать строить собственный прогноз погоды, объединив опыт Яндекса в машинном обучении, прогнозы нескольких независимых поставщиков и данные метеостанций. Мы пошли на такой шаг, потому что все модели и источники прогнозов были не идеальны, основаны на эмпирически подобранных формулах и время от времени ошибались. Но эти ошибки не случайны. Между ними можно искать закономерности.
Вот как это работает. У нас есть пять источников прогноза (на старте было три) из национальных центров США, Канады, Японии и ЕС, а также наш собственный прогноз, рассчитываемый на основе модели с открытым исходным кодом WRF.
Как известно, с поиском любых сложных и неочевидных закономерностей лучше всего справляется машинное обучение. На старте мы использовали модель на базе MatrixNet, теперь — CatBoost. Модель учитывает не только всё многообразие погодных параметров из доступных источников, но и добавленные нами фичи, которые могут влиять на погоду. Например, высоту солнца над горизонтом, удалённость от водоёма и номер дня в году.
Для обучения мы используем исторические данные с профессиональных метеостанций. Если коротко: Meteum учится на большом архиве прогнозов, стараясь подобрать оптимальное соотношение всех погодных параметров, чтобы наиболее точно воспроизвести то, что было измерено на метеостанциях. А затем обученная модель уже в режиме реального времени составляет прогноз на основе свежих данных.
Такой подход имеет очевидное ограничение: Meteum хорошо изучит локальные особенности там, где много станций, и хуже там, где станций мало. Посмотрите на карту расположения метеостанций: из-за неравномерного покрытия точность прогноза погоды в Центральном федеральном округе будет лучше, чем на севере Сибири, где станций практически нет.
Для прогноза осадков это ограничение становится большой проблемой, так как, кроме пространственной разнородности, важна ещё и частота измерений. В отличие от температуры, которая меняется равномерно как при удалении от метеостанции, так и со временем, осадки — это условно дискретная величина. Либо они есть, либо их нет, прямо как в стихотворении Винни-Пуха про мёд. Кроме того, метеостанции фиксируют осадки не постоянно, а с определенной периодичностью. Это может происходить либо с помощью метеоролога, который раз в 3 часа описывает состояние погоды, либо с помощью специального ведра, которое накапливает влагу в течение 12 часов. В результате дождь может просто «проскочить» между соседними метеостанциями или между сроками измерения на них.
Качественного локального прогноза осадков на данных с метеостанций не построить. Поэтому в Яндекс.Погоде мы не используем эти данные для прогноза осадков на ближайшие часы, а полагаемся на другие инструменты: метеорологические радары и геостационарные спутники. Они покрывают большие области и чаще обновляют данные (каждые 10–15 минут). Получается, что мы даже выигрываем в покрытии, частоте и, как следствие, в качестве прогноза, используя не прямые измерения, а косвенные.
Хотя и тут без ограничений не обходится. К примеру, радары измеряют отражённые от мельчайших капелек воды радиоволны. Но всё, что окажется на пути луча (от насекомых и птиц до самолётов, зданий и даже Wi-Fi-роутеров, работающих на той же частоте), может исказить измерение. Со спутниками всё ещё сложнее: на фотографиях из космоса нужно суметь найти осадки, так как далеко не из каждой тучи идёт дождь. Кстати, более подробно о нашей работе с радарами и спутниками мы уже рассказывали на Хабре.
В общем, достоинства и недостатки есть у любой технологии. Метеостанции измеряют осадки напрямую, но расположены неравномерно и фиксируют их довольно редко. Радары и спутники покрывают большие пространства, обновляют данные часто, но из-за косвенного способа измерения вносят искажения. Кроме того, даже радары и спутники покрывают далеко не всю территорию нашей огромной страны.
Казалось бы, нам оставалось только смириться с этими ограничениями. Но к нам на помощь пришли люди.
Про людей
Чтобы получать информацию об осадках в тех местах, где люди живут и смотрят погоду, мы уже давно спрашиваем пользователей Яндекс.Погоды и приложения Яндекс о том, идёт ли дождь на улице или светит солнце. На самом деле мы знаем ответ (хотя, будем честны, в некоторых регионах — достоверно не знаем), но задаём вопросы, потому что верим: таким образом мы сможем создать измерительную сеть, основанную на сообщениях пользователей.
Если раньше мы только спрашивали, копили статистику и использовали сообщения в качестве народного контроля — то теперь готовы прогнозировать погоду с помощью ваших ответов.
Мы полностью меняем саму постановку задачи: теперь сообщения пользователей о погоде становятся в один ряд с профессиональными измерительными приборами. И если вернуться к изначальной задаче, то мы можем обучать наш Meteum предсказывать не только погоду на метеостанции, но и сообщения о дожде от пользователей. Если описать это на языке, понятном ML-специалистам, то мы берём в качестве фич прогнозы погоды, спутниковые измерения, радары, другие влияющие на погоду фичи, например высоту гор и расстояние до ближайшего радара, а в качестве таргетов — сообщения о дожде от пользователей, после чего обучаем CatBoost на таком датасете, а затем применяем обученную модель на сетке 0,02° × 0,02°, чтобы получить карту мест, где идёт дождь.
Кроме того, благодаря сообщениям пользователей мы сможем наконец свести два разных продукта: оригинальный Meteum, делающий прогноз на 10 дней вперёд, и карту осадков на ближайшие два часа, которая до этого момента развивалась параллельно.
Сегодня мы начинаем раскатывать нашу новую технологию Meteum 2.0, которая включает в себя два ключевых изменения.
Во-первых, данных для прогноза стало гораздо больше. Данные с радаров и спутников теперь интегрированы в общую систему прогноза наравне с метеомоделями. Мы можем смешивать все эти источники информации о дожде.
Во-вторых (и это самое главное!) — теперь мы обучаем модель предсказывать не показания метеостанций, а сообщения пользователей о погоде. Это логично, ведь наши пользователи — это люди, а не станции. Такой прогноз уже работает для дождя и напрямую влияет на карту осадков. Кроме того, мы используем сообщения с высоким кредитом доверия для корректировки ошибочной карты осадков в реальном времени, что позволяет улучшить точность карты до 20% в случае внезапного дождя. Человеку, который уже оказался под дождём, это мало поможет, но это полезно для жителей соседних районов.
К примеру, вот реальный случай, который произошёл 2 июля в Екатеринбурге. На кадре слева — результат работы модели без учёта сообщений пользователей. По центру — уже с учётом. Как вы можете заметить, грозную дождливую тучу удалось поймать только с помощью наших пользователей.
Сейчас мы получаем более миллиона сообщений об осадках в день (в особо дождливые дни — более 2,5 миллионов). Для сравнения: метеостанции присылают около 8 тысяч наблюдений в день.
На гифке ниже мы визуализировали сообщения за 28 июня, когда в Европейской части страны начались долгожданные дожди.
Если оставить только сообщения об осадках, то хорошо заметно, как перемещался фронт дождя.
Заключение
По нашим оценкам, в зонах, где были радары, мы смогли немного поднять качество прогнозов, а где их не было — приблизили качество к радарным наблюдениям. Технология хорошо масштабируется. Например, теперь с вашей помощью мы сможем закрыть мёртвую зону в районе Енисея, куда раньше не доставали спутники.
Meteum 2.0 позволяет каждому из нас внести вклад в прогноз погоды и сделать его ещё чуть-чуть точнее и полезнее для всех. Возможно, в будущем сообщения обычных пользователей станут во всём мире таким же стандартным источником метеоданных, как и данные с метеостанций. Хочется верить, что сегодня мы приблизили это будущее.
Спасибо за помощь!
Прогноз погоды. Помощь
- Как работает прогноз погоды
- Что такое Meteum
- Где посмотреть прогноз
- Как часто обновляются данные о погоде
Спутники наблюдения и станции мониторинга по всему миру собирают данные о погоде.
Данные отправляются в метеоцентры.
Метеорологи добавляют данные в прогностические модели и обрабатывают их на компьютерах.
Каждая прогностическая модель учитывает особенности атмосферной циркуляции, испарения и конденсации воды, тепла Земли и влияние многих других факторов. После обработки данных метеорологи получают прогноз температуры, осадков, скорости и направления ветра и других погодных явлений.
Ни одна из прогностических моделей не является абсолютно точной, и каждая из них имеет свои преимущества и недостатки. Вот почему Яндекс Погода делает свои прогнозы с помощью технологии Meteum, которая сочетает в себе прогнозное моделирование с машинным обучением.
Meteum — собственная технология Яндекса для прогнозирования погоды. Благодаря машинному обучению Meteum сравнивает данные различных прогностических моделей, а затем составляет собственный прогноз.
Meteum составляет прогноз в два этапа.
- Этап 1. Составление собственного прогноза
Яндекс Погода получает данные от метеостанций и спутников. Чтобы сделать свой прогноз более точным, сервис использует подробные данные о типе подстилающей местности из Яндекс-карт.
Служба составляет собственный прогноз с использованием прогностической модели. В отличие от большинства метеосервисов, модель погоды Яндекса дает точный прогноз для регионов и городов, а также для конкретных городских районов, станций метро, пригородных населенных пунктов и других локаций.
- Этап 2. Формирование финальной версии прогноза
Сервис получает информацию о прогнозах, сделанных с использованием других прогностических моделей, в том числе американских, канадских, японских и европейских.
Яндекс Погода сравнивает прогнозы и реальные погодные условия с помощью алгоритмов машинного обучения. Алгоритмы определяют модель с наиболее точным прогнозом для конкретных погодных условий и региона. Если ни одна модель не дает высокоточного прогноза, Meteum объединяет данные самых точных прогнозов, чтобы сделать свой собственный.
Сервис использует Meteum для прогнозирования погоды в регионах и городах по всему миру.
Прогноз учитывает точное местоположение пользователя.
Показатели прогноза отображаются в числовом виде на главной странице Яндекс Погода и в подробном прогнозе.
Наглядное представление прогноза погоды можно найти на картах температуры, ветра, осадков и давления.
Служба предоставляет текущие данные о погоде и данные на ближайшие часы и дни.
Данные о погоде обновляются не реже одного раза в три часа. Частота обновления данных о погоде для конкретного города зависит от того, когда данные обновляются на ближайшей метеостанции.