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 позволяет каждому из нас внести вклад в прогноз погоды и сделать его ещё чуть-чуть точнее и полезнее для всех. Возможно, в будущем сообщения обычных пользователей станут во всём мире таким же стандартным источником метеоданных, как и данные с метеостанций. Хочется верить, что сегодня мы приблизили это будущее.

Спасибо за помощь!

Прогноз погоды. Помощь

  1. Как работает прогноз погоды
  2. Что такое Meteum
  3. Где посмотреть прогноз
  4. Как часто обновляются данные о погоде
  1. Спутники наблюдения и станции мониторинга по всему миру собирают данные о погоде.

  2. Данные отправляются в метеоцентры.

  3. Метеорологи добавляют данные в прогностические модели и обрабатывают их на компьютерах.

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

Ни одна из прогностических моделей не является абсолютно точной, и каждая из них имеет свои преимущества и недостатки. Вот почему Яндекс Погода делает свои прогнозы с помощью технологии Meteum, которая сочетает в себе прогнозное моделирование с машинным обучением.

Meteum — собственная технология Яндекса для прогнозирования погоды. Благодаря машинному обучению Meteum сравнивает данные различных прогностических моделей, а затем составляет собственный прогноз.

Meteum составляет прогноз в два этапа.

Этап 1. Составление собственного прогноза
  1. Яндекс Погода получает данные от метеостанций и спутников. Чтобы сделать свой прогноз более точным, сервис использует подробные данные о типе подстилающей местности из Яндекс-карт.

  2. Служба составляет собственный прогноз с использованием прогностической модели. В отличие от большинства метеосервисов, модель погоды Яндекса дает точный прогноз для регионов и городов, а также для конкретных городских районов, станций метро, ​​пригородных населенных пунктов и других локаций.

Этап 2. Формирование финальной версии прогноза
  1. Сервис получает информацию о прогнозах, сделанных с использованием других прогностических моделей, в том числе американских, канадских, японских и европейских.

  2. Яндекс Погода сравнивает прогнозы и реальные погодные условия с помощью алгоритмов машинного обучения. Алгоритмы определяют модель с наиболее точным прогнозом для конкретных погодных условий и региона. Если ни одна модель не дает высокоточного прогноза, Meteum объединяет данные самых точных прогнозов, чтобы сделать свой собственный.

Сервис использует Meteum для прогнозирования погоды в регионах и городах по всему миру.

Прогноз учитывает точное местоположение пользователя.



Показатели прогноза отображаются в числовом виде на главной странице Яндекс Погода и в подробном прогнозе.

Наглядное представление прогноза погоды можно найти на картах температуры, ветра, осадков и давления.

Служба предоставляет текущие данные о погоде и данные на ближайшие часы и дни.

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