Яндекс научился предсказывать погоду
Погода до сих пор влияет на нашу жизнь гораздо сильнее, чем нам, возможно, хотелось бы. Мы начинаем утро с прогноза погоды, а в течение дня жалуемся друг другу на его точность. Раньше люди пытались предсказывать погоду на основе своих наблюдений. Если птицы низко летают, а лягушки громко квакают, будет дождь. Если небо на закате красное — будет ветер. Сейчас для прогнозирования погоды используются чрезвычайно сложные метеорологические модели, которые учитывают большую часть человеческих знаний о поведении жидкостей и газов, — и всё равно прогнозы оказываются неточными. В результате появляются новые погодные приметы: всем известно, что помыть машину — это к дождю.
Современные метеомодели представляют собой сотни тысяч строк кода и задействуют для расчётов самые мощные суперкомпьютеры. В качестве исходных данных они используют практически всю метеорологическую информацию, которую можно собрать, — данные со спутников, профессиональных метеостанций и станций радиозондирования. Тем не менее, прогнозы всё равно могут ошибаться: достаточно переоценить или недооценить значение одного из тысяч факторов, и вот вы уже не взяли с собой зонтик, потому что прогноз не предупредил о дожде. Кроме того, в большинстве случаев прогнозы делаются для города в целом, и даже самым большим городам достаётся всего один прогноз, вне зависимости от размера территории.
Задача прогнозирования погоды достаточно сильно похожа на то, чем занимается Яндекс. Мы стараемся найти закономерности в огромном количестве данных и на основе этого ранжируем сайты, рекомендуем музыку или помогаем ЦЕРНу искать редкие события среди столкновений частиц. Для этого мы используем машинное обучение. И к прогнозированию погоды тоже применили машинное обучение.
Мы разработали уникальную технологию — Метеум. Она умеет строить прогноз погоды с точностью до районов города и даже до отдельных домов. Метеум сочетает классические метеорологические модели и технологии машинного обучения. Это позволяет сконцентрировать машинное обучение на том, чтобы уточнить существующие модели и учесть локальные особенности. А следовательно — давать более точный прогноз и делать меньше ошибок.
В качестве начальной информации Метеум использует данные метеостанций и данные из других источников, которые могут уточнить локальные особенности. Например, от Яндекс.Карт мы получаем данные о том, что находится у человека под ногами — асфальт, трава или, может, песчаный пляж. Всего получается более 9 ТБ данных каждый день. Начальные данные Метеум обрабатывает с помощью традиционных метеомоделей, а результаты — с помощью технологии машинного обучения Матрикснет. Матрикснет постоянно сравнивает прогнозы погоды от разных моделей с реальной погодой за окном и выделяет ситуации, когда нужно, например, взять прогноз осадков из первой модели, скорость ветра — из третьей, температуру рассчитать как линейную комбинацию второй и четвёртой. Всего Матрикснет использует более 10 тысяч различных параметров, в том числе и такие, которые напрямую не воспринимаются как погода — скажем, профиль температуры или высоту пограничного слоя.
Когда пользователь обращается к сервису, Метеум каждый раз рассчитывает новый прогноз. Яндекс.Погода определяет, где человек находится и показывает свежий прогноз именно для этого места. Можно выбрать любое время и любое место — главное, чтобы был известен его адрес. И посмотреть, что ожидается через час у офиса, вечером — во дворе рядом с домом, а на следующее утро — в аэропорту. Если прогноз оказался неправильным — на него можно пожаловаться, причём не только знакомым, а прямо на сервисе. Пока новая Погода работает в бета-версии, и мы очень рассчитываем на замечания пользователей. Они помогут сделать прогноз точнее.
Прогноз от Метеум появился в веб-версии Яндекс.Погоды, в обновлённом приложении для Android и совсем новой Яндекс.Погоде для iOS. Сейчас он доступен для 36 регионов России, но в дальнейшем география расширится. Полный список регионов, для которых работает Метеум, такой: Белгородская, Брянская, Владимирская, Воронежская, Ивановская, Калужская, Кировская, Костромская, Курганская, Курская, Липецкая, Московская, Нижегородская, Новгородская, Оренбургская, Орловская, Пензенская, Рязанская, Самарская, Саратовская, Свердловская, Смоленская, Тамбовская, Тверская, Тульская, Тюменская, Ульяновская, Челябинская, Ярославская области, республики Башкортостан, Марий Эл, Мордовия, Татарстан, Удмуртия, Чувашская, Пермский край.
© Яндекс