Mobiilisovelluksen sisällön suosittelu tekoälyn avulla
Jalava, Matias Jaakko Aukusti (2022)
Jalava, Matias Jaakko Aukusti
2022
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2022051810205
https://urn.fi/URN:NBN:fi:amk-2022051810205
Tiivistelmä
Insinöörityön tarkoituksena oli toteuttaa suosittelujärjestelmä yhdistäen koneoppimisen ja suosittelujärjestelmien toimintatapoja. Suosittelujärjestelmä kehitettiin osaksi tilaajan mobiilisovellusta, jossa sen tarkoituksena oli tuoda sovelluksen käyttäjälle personoituja suosituksia perustuen käyttäjien katseluhistoriaan.
Suosittelujärjestelmä tuli osaksi käytetyn tavaran mobiilisovelluksen etusivua, jossa on listattuna sovelluksessa myynnissä olevia tuotteita. Työn tavoitteena oli korvata etusivun tuotteiden noudon satunnaisuus personoiduilla suosituksilla. Koska puhelinsovellusta, jonka osaksi järjestelmä tuli, ei julkaistu työn aikana, suosittelujärjestelmä piti testata generoidulla datalla ja kehittää niin, että jatkokehittäminen on tulevaisuudessa helppoa.
Tekoälymalli, eli suosituksia luova osa, luotiin Tensorflow-kirjaston metodeilla. Järjestelmä koostettiin sisältämään neuroverkko katseluaikojen ennustamiseen ja metodit käyttäjien ja tuotteiden profiloimiseen 32-ulotteisiin vektoreihin. Tuotteiden noutovaihe, joka hakee käyttäjäkohtaisesti X-määrän tuotteita koko valikoimasta, toteutettiin palauttamaan ne tuotteet, joiden pistetulot pyydettyyn käyttäjään olivat pienimmät. Tuotteiden pisteytys, eli vaihe, jossa arvioitiin noudettujen tuotteiden sopivuus käyttäjälle, mahdollistettiin neuroverkon avulla. Neuroverkko ennusti käyttäjän ja tuotteen välisen katseluajan yksi kerrallaan, minkä jälkeen kohteet järjesteltiin suurin aika ensin.
Järjestelmän toimivuutta mitattiin vertaamalla sen suosituksia käyttäjien oikeisiin näyttökertoihin, vertaamalla käyttäjien ja tuotteiden upotusvektoreita ja tarkkailemalla mallin harjoitusmetriikoita. Työn testeistä selvisi, että järjestelmä onnistuu molemmissa sen tehtävissä, eli tuotteiden noudossa ja pisteytyksessä. Työ tehtiin melko itsenäisesti aihetta opiskellen, yritysten ja erehdysten kautta. Suurin osa tekoälyn toimintatavoista testattiin Python-notebook-ympäristössä. Kun jokin osa todettiin toimivaksi, se lisättiin järjestelmän rajapintasovellukseen. Tuloksena oli tehtäväänsä sopiva suosittelujärjestelmä, joka suositteli testikäyttäjille osuvia tuotteita.
Suosittelujärjestelmä tuli osaksi käytetyn tavaran mobiilisovelluksen etusivua, jossa on listattuna sovelluksessa myynnissä olevia tuotteita. Työn tavoitteena oli korvata etusivun tuotteiden noudon satunnaisuus personoiduilla suosituksilla. Koska puhelinsovellusta, jonka osaksi järjestelmä tuli, ei julkaistu työn aikana, suosittelujärjestelmä piti testata generoidulla datalla ja kehittää niin, että jatkokehittäminen on tulevaisuudessa helppoa.
Tekoälymalli, eli suosituksia luova osa, luotiin Tensorflow-kirjaston metodeilla. Järjestelmä koostettiin sisältämään neuroverkko katseluaikojen ennustamiseen ja metodit käyttäjien ja tuotteiden profiloimiseen 32-ulotteisiin vektoreihin. Tuotteiden noutovaihe, joka hakee käyttäjäkohtaisesti X-määrän tuotteita koko valikoimasta, toteutettiin palauttamaan ne tuotteet, joiden pistetulot pyydettyyn käyttäjään olivat pienimmät. Tuotteiden pisteytys, eli vaihe, jossa arvioitiin noudettujen tuotteiden sopivuus käyttäjälle, mahdollistettiin neuroverkon avulla. Neuroverkko ennusti käyttäjän ja tuotteen välisen katseluajan yksi kerrallaan, minkä jälkeen kohteet järjesteltiin suurin aika ensin.
Järjestelmän toimivuutta mitattiin vertaamalla sen suosituksia käyttäjien oikeisiin näyttökertoihin, vertaamalla käyttäjien ja tuotteiden upotusvektoreita ja tarkkailemalla mallin harjoitusmetriikoita. Työn testeistä selvisi, että järjestelmä onnistuu molemmissa sen tehtävissä, eli tuotteiden noudossa ja pisteytyksessä. Työ tehtiin melko itsenäisesti aihetta opiskellen, yritysten ja erehdysten kautta. Suurin osa tekoälyn toimintatavoista testattiin Python-notebook-ympäristössä. Kun jokin osa todettiin toimivaksi, se lisättiin järjestelmän rajapintasovellukseen. Tuloksena oli tehtäväänsä sopiva suosittelujärjestelmä, joka suositteli testikäyttäjille osuvia tuotteita.
