Koneoppiminen Suosittelujärjestelmiin-Osa 1 (algoritmit, arviointi ja kylmäkäynnistys)

Pavel Kordík
Pavel Kordík

seuraa

Jun 3, 2018 * 7 min Lue

Suosittelujärjestelmät ovat yksi menestyksekkäimmistä ja laajimmalle levinneistä koneoppimisteknologioiden sovelluksista liiketoiminnassa. Oli monia ihmisiä jonotuslistalla, jotka eivät voineet osallistua meidän mlmu puhua joten olen jakaa dioja ja kommentteja täällä.

voit käyttää suosittelujärjestelmiä tilanteissa, joissa monet käyttäjät ovat vuorovaikutuksessa monien kohteiden kanssa.

löydät suuren mittakaavan suosittelujärjestelmiä vähittäiskaupassa, video on demand, tai musiikin suoratoisto. Tällaisten järjestelmien kehittämiseen ja ylläpitoon tarvitaan tyypillisesti ryhmä kalliita datatieteilijöitä ja insinöörejä. Siksi jopa suuret yhtiöt, kuten BBC, päättivät ulkoistaa suosituspalvelunsa.

yrityksemme Recombee sijaitsee Prahassa ja kehittää Yleismaailmallisen automatisoidun suositusmoottorin, joka pystyy mukautumaan liiketoiminnan tarpeisiin useilla aloilla. Moottoriamme käyttävät sadat yritykset ympäri maailmaa.

yllättävää kyllä, uutisten tai videoiden suositus medialle, tuotesuositus tai Personointi matkailussa ja vähittäiskaupassa voidaan hoitaa samankaltaisilla koneoppimisalgoritmeilla. Lisäksi näitä algoritmeja voidaan säätää käyttämällä erityistä kyselykieltä jokaisessa suosituspyynnössä.

suosittelujärjestelmissä koneoppimisen algoritmit luokitellaan tyypillisesti kahteen kategoriaan — sisältöpohjaisiin ja yhteistoiminnallisiin suodatusmenetelmiin, vaikka nykyaikaiset suosittelijat yhdistävät molemmat lähestymistavat. Sisältöpohjaiset menetelmät perustuvat kohteen attribuuttien samankaltaisuuteen ja yhteistoiminnalliset menetelmät laskevat samankaltaisuuden vuorovaikutuksista. Alla keskustelemme enimmäkseen yhteistyömenetelmistä, joiden avulla käyttäjät voivat löytää uutta sisältöä, joka poikkeaa aiemmin tarkastelluista kohteista.

Yhteistyömenetelmät toimivat vuorovaikutusmatriisin kanssa, jota voidaan kutsua myös luokitusmatriisiksi siinä harvinaisessa tapauksessa, että käyttäjät antavat eksplisiittisen luokituksen kohteille. Koneoppimisen tehtävänä on oppia toiminto, joka ennustaa kohteiden hyödyllisyyttä jokaiselle käyttäjälle. Matriisi on tyypillisesti valtava, hyvin harva ja suurin osa arvoista puuttuu.

yksinkertaisin algoritmi laskee kosinin tai korrelaation samankaltaisuuden rivien (käyttäjät) tai sarakkeiden (kohteet) ja suosittelee kohteita, jotka K — lähimmät naapurit nauttivat.

Matriisifaktorointiin perustuvat menetelmät pyrkivät vähentämään vuorovaikutusmatriisin dimensionaalisuutta ja approksimoimaan sitä kahdella tai useammalla pienellä matriisilla, joissa on K-latentteja komponentteja.

kertomalla vastaava rivi ja sarake ennustat luokitus kohteen käyttäjän. Koulutusvirhe saadaan vertaamalla ei-tyhjiä luokituksia ennustettuihin arvioihin. Yksi voi myös säännönmukaistaa koulutuksen menetys lisäämällä rangaistus aikavälillä pitää arvot piileviä vektoreita Alhainen.

suosituin harjoitusalgoritmi on stokastinen gradienttilasku, joka minimoi sekä P A q-matriisien sarakkeiden että rivien gradienttipäivitysten aiheuttamat menetykset.

Vaihtoehtoisesti voidaan käyttää vuorotellen pienimmän neliösumman menetelmää, joka iteratiivisesti optimoi matriisin p ja matriisin q yleisen pienimmän neliösumman vaiheen avulla.

yhdistyksen sääntöjä voidaan käyttää myös suosituksiin. Kohteet, jotka usein kulutetaan yhdessä liittyvät reuna kaaviossa. Näet klustereita best sellers (tiheästi kytketty kohteita, jotka lähes kaikki vuorovaikutuksessa) ja pieni erotettu klustereita niche sisältöä.

vuorovaikutusmatriisista louhituilla säännöillä pitäisi olla ainakin jonkin verran kannatusta ja luottamusta. Tuki liittyy esiintymistiheyteen – bestsellereiden vaikutukset ovat erittäin kannatettuja. Korkea luottamus tarkoittaa, että sääntöjä ei usein rikota.

Kaivossäännöt eivät ole kovin skaalautuvia. APRIORI-algoritmi tutkii mahdollisten toistuvien itemsetien tila-avaruutta ja poistaa hakuavaruuden haarat, jotka eivät ole tiheitä.

usein eri sarjoja käytetään luomaan sääntöjä ja nämä säännöt tuottavat suosituksia.

esitämme esimerkkinä Tsekin tasavallan pankkitapahtumista poimittuja sääntöjä. Solmut (vuorovaikutukset) ovat päätteitä ja reunat ovat usein tapahtumia. Voit suositella pankkipäätteitä, jotka ovat merkityksellisiä aiempien nostojen / maksujen perusteella.

suosittujen kohteiden rankaiseminen ja pitkien häntäsääntöjen purkaminen pienemmällä tuella johtaa mielenkiintoisiin sääntöihin, jotka monipuolistavat suosituksia ja auttavat löytämään uutta sisältöä.

Rating matrix voidaan myös tiivistää neuroverkon avulla. Niin sanottu autokooderi on hyvin samanlainen kuin matriisi factorization. Deep autoencoders, useita piilotettuja kerroksia ja epälinearities ovat tehokkaampia, mutta vaikeampi kouluttaa. Neural netiä voidaan käyttää myös kohteen attribuuttien esikäsittelyyn, jotta voimme yhdistää sisältöpohjaisia ja yhteistyöhön perustuvia lähestymistapoja.

User-KNN top n suositus pseudokoodi on annettu edellä.

Assosiaatiosääntöjä voidaan louhia useiden eri algoritmien avulla. Täällä näytämme paras-sääntö suositukset pseudokoodi.

matriisifaktoroinnin pseudokoodi on esitetty edellä.

collaborative deep learning, voit kouluttaa matriisi factorization samanaikaisesti autoencoder sisältää kohteen attribuutteja. On tietenkin paljon enemmän algoritmeja voit käyttää suositus ja seuraava osa esityksen esittelee joitakin menetelmiä, jotka perustuvat syvä ja vahvistaminen oppimista.

suosittelijoiden arviointi

suosittelijoita voidaan arvioida samalla tavalla kuin klassisia koneoppimismalleja historiatietojen perusteella (offline evaluation).

satunnaisesti valittujen testauskäyttäjien interaktiot ristiintarkastetaan, jotta voidaan arvioida suosittelijan suorituskyky näkymättömien luokitusten perusteella.

Root mean squared error (RMSE) on edelleen laajalti käytössä, vaikka monet tutkimukset osoittivat, että rmse on huono estimaattori verkossa suorituskykyä.

käytännöllisempi offline-arviointimenetelmä on oikein suositeltujen kohteiden takaisinkutsu tai tarkkuusarviointi (pois suositelluista tai asiaankuuluvista kohteista). DCG ottaa myös kannan huomioon olettaen, että kohteiden merkitys logaritmisesti vähenee.

yksi voi käyttää lisätoimenpide, joka ei ole niin herkkä bias offline-tietoja. Luettelo kattavuus yhdessä takaisinkutsu tai tarkkuus voidaan käyttää multiobjective optimointi. Olemme ottaneet käyttöön säännönmukaistamisparametrit kaikkiin algoritmeihin, joiden avulla voidaan manipuloida niiden plastisuutta ja rangaista suositusta suosituista kohteista.

sekä takaisinkutsu että kattavuus olisi maksimoitava, joten ajamme recommenderia kohti tarkkoja ja monipuolisia suosituksia, joiden avulla käyttäjät voivat tutkia uutta sisältöä.

kylmäkäynnistys ja sisältöpohjainen suositus

joskus vuorovaikutukset puuttuvat. Kylmäkäynnistystuotteilla tai kylmäkäynnistystuotteilla ei ole riittävästi yhteisvaikutuksia niiden yhteisvaikutusten samankaltaisuuden luotettavaan mittaamiseen, joten yhteistoiminnalliset suodatusmenetelmät eivät tuota suosituksia.

Kylmäkäynnistysongelmaa voidaan vähentää, kun attribuuttien samankaltaisuus otetaan huomioon. Voit koodata attribuutteja binäärivektoriin ja syöttää sen suosittelijalle.

niiden yhteisvaikutusten samankaltaisuuden ja attribuuttien samankaltaisuuden perusteella ryhmitellyt kohteet ovat usein yhteneväisiä.

neuroverkkoa voi käyttää ennustamaan vuorovaikutuksen samankaltaisuutta attribuuttien samankaltaisuudesta ja päinvastoin.

kylmäkäynnistysongelmaa voidaan vähentää ja suosituksen laatua parantaa monilla muilla keinoilla. Puheemme toisessa osassa keskustelimme sessiopohjaisista suositustekniikoista, syväsuosituksesta, ryhmittelyalgoritmeista ja Automlista, jonka avulla voimme suorittaa ja optimoida tuhansia erilaisia suositusalgoritmeja tuotannossa.

jatketaan esityksen toiseen osaan, jossa käsitellään Syväsuositusta, sekvenssin ennustamista, AutoML: ää ja Vahvistusoppimista suosituksessa.

tai tarkista viimeisimmät päivitykset Rekombee in 2019: uusia ominaisuuksia ja parannuksia.