Machine learning is Yandex's core technology. We’ve long been using it in almost all of our services — to answer users’ search queries, for machine translation, ad targeting, personal recommendations, and plotting routes on maps, among others. Since last year, our MatrixNet machine learning algorithm has been utilised for the optimisation of business processes in real enterprises — weopened Yandex Data Factory for this purpose.
Today we announce yet another application of machine learning in a new field for us — weather forecasting. For this we have developed our own forecasting technology Meteum, which will now be used in the web service and mobile application Yandex.Weather available for iOS and Android.
Basic weather forecasts are traditionally constructed using the Navier-Stokes equations. Models for describing weather are extremely complex, as they depend on a multitude of factors. Programs for their calculation consist of hundreds of thousands of lines of code and run on huge supercomputers. Nonetheless, they still make mistakes, so their forecasts need to be fine-tuned. Besides that, the complexity and resource-intensiveness of traditional calculations results in a situation where forecasts are made for relatively large regions and cities. Constructing a precise forecast for, say, a small village would require taking into account a large number of local factors – such as, solar radiation, phase transitions of water vapour, or thermal radiation from the soil. Performing this task using traditional methods is not much less resource-intensive than for a large city, while the number of people using such a forecast is much lower.
Using machine learning allows collating a large volume of historical data about forecasts and actual weather, identifying causality in forecasting errors and correcting them. This is quicker and easier, as it doesn’t require factoring in laws of nature for each new forecast, but simply corrects traditional mathematical models and localises the forecast down to specific latitude and longitude. That’s exactly what Meteum does.
Our new technology uses traditional meteo models to process the initial data, and works with intermediate results using Yandex’s machine learning technology MatrixNet. To calculate the weather, Meteum constantly compares forecast with actual weather conditions — more than 140,000 times a day. To learn about current weather conditions, we use meteorological station data, as well as weather information from other sources indirectly indicating the situation — about 9 terabytes of data every day. One of the sources is our users, who can let us know about discrepancies between forecasts and real weather conditions via the app. The more data we receive from them, the more precise Meteum’s forecasts will become.
Meteum calculates a new forecast each time a user consults Yandex.Weather on their desktop or mobile device. It locates a person and shows them a fresh forecast for precisely that location. The user can choose another place and time for the forecast to see what the weather will be like around their office in an hour or if it might rain when they go out of town in the evening.
Meteum currently works in 36 regions of Russia, with a possibility to expand to other regions or countries.