Parallel parameter estimation in Bayesian regression models for demand forecasting

dc.contributorAalto-yliopistofi
dc.contributorAalto Universityen
dc.contributor.advisorMoskalev, Artem
dc.contributor.authorPiikki, Juho
dc.contributor.schoolPerustieteiden korkeakoulufi
dc.contributor.supervisorSuomela, Jukka
dc.date.accessioned2020-08-23T17:12:05Z
dc.date.available2020-08-23T17:12:05Z
dc.date.issued2020-08-18
dc.description.abstractDemand forecasting is an important part of today’s retail industry. Accurate forecasts help to save costs in transport and manpower and result in less spoilage. Different statistical models are used to create predictions of the demand and models that use machine learning have been found good in forecasting. Largest retailers have hundreds of millions of product locations to predict the sales for. Forecasting models are trained by using previous sales records with some optimization routine. In retail, the model optimization must be done on a regular basis, and it should not take too long even for a large number of product-locations. To achieve this we need to utilize as much of the available computation power as possible, and parallel computing is needed to achieve acceptable run time. In our work we are using a Bayesian linear regression model for demand forecasting. Bayesian approach to modelling allows setting priors for the model parameters, which leads to a better forecasting performance in uncertain situations. The model is optimized using an algorithm called L-BFGS. The goal of the thesis is to optimize the regression models as efficiently as possible for a group of product locations, using parallel computation methods, and study if the estimation procedure benefits from using the GPU (graphics processing unit) compared to the CPU (central processing unit). Efficient model estimation was achieved by defining a single large model, called MultiPL, that optimizes a group of product locations simultaneously. Instead of executing a large amount of small optimizations, the procedure performs a smaller number of large computations like matrix multiplications. The estimation was 1.89–5.00 times faster when executed on GPU rather than on CPU. With an optimal set up the fastest run time was 47.5 microseconds per product location. Compared to the initial naive algorithm, the run time was about 467 000 times faster.en
dc.description.abstractKysynnän ennustaminen on tärkeä osa nykypäivän päivittäistavarakauppojen toimintaa. Tarkat ennusteet tuottavat säästöjä kuljetuskustannuksissa ja työvoimassa sekä vähentävät hävikkiä. Erilaisia tilastollisia malleja käytetään ennusteiden laskemiseen ja koneoppimismallit on havaittu hyväksi tähän tehtävään. Suurimmilla kauppaketjuilla on satoja miljoonia tuotelokaatioita, joiden kysyntää ennustetaan. Ennustemallit luodaan käyttämällä optimointimenetelmiä ja tuotteiden myyntihistoriaa. Mallien optimointi tulee tehdä säännöllisesti, eikä optimointi saisi kestää liian kauaa edes suurimmilla tuotelokaatiomäärillä. Päästäkseen hyväksyttäviin ajoaikoihin, tulee käytettävissä olevaa laskentatehoa käyttää hyödyksi niin paljon kuin mahdollista. Tämän tavoitteen saavuttamiseen tarvitaan rinnakkaislaskennan menetelmiä. Työssä käytetään kysynnän ennustukseen bayesiläistä lineaarista regressiomallia. Bayesiläinen lähestymistapa mahdollistaa priorien eli ennakkotietojen asettamisen mallin parametreille, mikä johtaa parempiin ennusteisiin epävarmoissa tilanteissa. Malli optimoidaan käyttämällä L-BFGS-algoritmia. Työn tavoitteena on optimoida regressiomalli joukolle tuotelokaatioita niin nopeasti kuin mahdollista käyttäen rinnakkaislaskennan menetelmiä sekä tutkia, hyötyykö optimointiprosessi GPU:n (grafiikkasuoritin) käytöstä CPU:n (keskussuoritin) sijaan. Tehokas mallien optimointi saavutettiin määrittelemällä yksi laaja malli, niin kutsuttu MultiPL, joka optimoi mallin parametrit joukolle tuotelokaatioita samanaikaisesti. Useiden pienten mallien optimointien sijaan yksi suuri optimointi suorittaa pienemmän määrän suurempia laskentaoperaatioita, kuten matriisituloja, joiden laskenta on rinnakkaistettu tehokkaasti. Optimoinnin ajoaika oli 1.895.00 nopeampi käytettäessä GPU:ta CPU:n sijaan. Nopeimmillaan optimoinnin ajoaika oli 47.5 mikrosekuntia per tuotelokaatio. Ensimmäiseen naiiviin algoritmiin verrattuna ajoaika oli noin 467 000 kertaa nopeampi.fi
dc.format.extent88+10
dc.identifier.urihttps://aaltodoc.aalto.fi/handle/123456789/46072
dc.identifier.urnURN:NBN:fi:aalto-202008235004
dc.language.isoenen
dc.programmeMaster’s Programme in Computer, Communication and Information Sciencesfi
dc.programme.majorComputer Sciencefi
dc.programme.mcodeSCI3042fi
dc.subject.keywordBayesian linear regressionen
dc.subject.keyworddemand forecastingen
dc.subject.keywordL-BFGSen
dc.subject.keywordparallel computingen
dc.subject.keywordGPUen
dc.subject.keywordquasi-Newtonen
dc.titleParallel parameter estimation in Bayesian regression models for demand forecastingen
dc.titleBayesian regressiomallien parametrien rinnakkainen estimointi kysynnän ennustamiseenfi
dc.typeG2 Pro gradu, diplomityöfi
dc.type.ontasotMaster's thesisen
dc.type.ontasotDiplomityöfi
local.aalto.electroniconlyyes
local.aalto.openaccessno
Files