Ti 01.09.2015 @ 20:54Risto Tuomainen

Kesähessujen suositukset

Kirjoittaja Risto Tuomainen toimi kesäharjoittelijana Ylen verkkovälinekehitystiimissä. Tiimiin kuului myös Henri Ståhl ja Jarkko Tuovinen.

Internetin avulla on helppo ylläpitää niin laajaa tuotekatalogia, ettei käyttäjän ole käytännössä mahdollista tutustua kuin pieneen osaan siitä. Erilaiset suosittelualgoritmit ovat monien palveluiden käyttämä tapa päihittää tämä runsaudenpula. Onkin käyttökokemuksen kannalta erittäin hyödyllistä, mikäli nokkela algoritmi osaa löytää käyttäjän puolesta tätä kiinnostavia sisältöjä ja näin säästää häneltä työlään etsiskelyn vaivan. 

Myös Yle tarjoaa Areenassa käyttäjilleen näennäisen loputtoman listan erilaisia ohjelmia, joiden seulomisessa suosittelukone olisi paikallaan. Vaikka tässä Yle kohtaa saman yleisen ongelman kuin kaikki suosittelujärjestelmiä rakentavat yritykset, Areenan aineistot muodostavat monella tavalla erityisen haasteen suosittelujen kannalta: katalogi vaihtuu jatkuvasti, katalogi on sisällöiltään hyvin heterogeeninen ja osa sisällöstä on hyvin sidottu tiettyyn ajankohtaan. Esimerkiksi vanhoja uutisia ei pitäisi suositella kenellekään, vaikka ne ovatkin olleet hyvin suosittuja sisältöjä. Toisaalta tuoreita uutisia voi hyvinkin suositella, mutta niitäkin vain katsojille joita ylipäänsä kiinnostavat uutislähetykset.

Kolmen kesäharjoittelijan tiimimme saikin tehtäväkseen kokeilla erilaisia suosittelualgoritmeja ja katsoa, minkälaisia suosituksia ne saisivat Ylen datoista aikaan. 

Ensimmäinen roiskaisumme oli satunnaisten katsottavissa olevien ohjelmien suositteleminen. Tämän tarkoituksena oli lähinnä saada pystyyn ohjelmointirajapinta, joka osaa antaa edes jotakin suosituksia. Silloin emme vielä asiaa aavistaneet, mutta kesän kuluessa kävi ilmi, että satunnaissuosittelijaa varten kokoon kyhätty arkkitehtuuri muuttui toiminnallisuuden monimutkaistuessa läpitunkemattomaksi viidakoksi R-skriptejä ja csv-tiedostoja. 

Askel satunnaissuosittelusta eteenpäin oli suosittujen ohjelmien suosittelu. Nämä kaksi triviaalia algoritmia myös havainnollistavat hyvin suositteluun liittyviä vaihtokauppoja: suosittelemalla täysin satunnaisesti saadaan esiin hyvin vähän katsottuja katalogin ohjelmia ja suositukset ovat mahdollisimman yllättäviä. Toisaalta suosituksista kelpo osa on käyttäjän kannalta hyödyttömiä, sillä kutakin käyttäjää kiinnostaa vain pieni osa kaikista sisällöistä. Sen sijaan suosittelemalla pelkkiä hittejä saadaan käyttäjälle tarjottua varsin todennäköisesti ohjelmia, joista hän pitää. Toisaalta hittien suosittelu ei täytä kovinkaan hyvin suosittelukoneen tärkeintä tehtävää, käyttäjälle tuntemattomien sisältöjen nostamista esiin.

Tietysti satunnaissuosittelu ja suosittujen ohjelmien suosittelu eivät olleet kumpikaan kummoisia, koska ne suosittelivat samalla tavalla jokaiselle käyttäjälle. Suosittujen ohjelmien suosittelusta oli kuitenkin lyhyt matka hieman vahvempaan suosittelualgoritmiin, jolle annoimme nimen popular v2. Popularv2 perustui käyttäjän viimeksi näkemään ohjelmaan. Algoritmi etsi ne muut käyttäjät, jotka myös olivat nähneet tämän ohjelman, ja suositteli sitten näiden käyttäjien parissa suosituimpia ohjelmia. Tämä osoittautui suoraviivaisesti otteestaan huolimatta yllättävän kiinnostavaksi ideaksi, ja tuotti jo aivan kelpo suosituksia. 

Neljäntenä suosittelualgoritmina käytimme Collaborative Filtering -algoritmia (CF). CF oli muita menetelmiä huomattavasti sofistukoituneempi, ja osasi käyttää hyödykseen käyttäjän koko katseluhistoriaa. Hienostuneisuudestaan huolimatta se oli myös hyvin helppo toteuttaa, sillä tunnettuna algoritmina sen toteutus löytyi suoraan Sparkin MLlib-kirjastosta. Näennäiseen helppouteen liittyi kuitenkin omat sudenkuoppansa. Yhdessä vaiheessa esimerkiksi huomasimme, että CF-suosittelija tyrkytti jokaiselle käyttäjälle katseluhistoriasta riippumatta lastenohjelmia. Tietysti lastenohjelmat ovat kasvattavaa ja tervehenkistä viihdettä myös varttuneemmille katsojille, mutta pelkkien lastenohjelmien suositteleminen aina ja kaikille vaikutti silti hieman liialliselta. Yritys saada CF suosittelemaan muutakin johti melko pitkään sivupolkuun. Käsin kokeilemalle kävi ilmi, että eräs mallin toimintaa säätelevä parametri vaikuttaa ratkaisevasti suositusten laatuun, ja että käyttämämme arvo ei ollut lainkaan hyvä. Tämä sai loogisen selityksen, kun huomasimme, että Sparkin-dokumentaatiossa olleessa koodiesimerkissä ehdotettu 0.01 oli ilmeisesti kirjoitusvirhe ja yleensä vastaavana lukuna käytetään esim. kymmentä.

Toisaalta lastenohjelmakatastrofi myös motivoi pohtimaan, millä keinoin olisi mahdollista visualisoida katseluhistorioita ja suosituksia. Olisi hyödyllistä, mikäli jostain kuvasta voisi nähdä minkälaisia ohjelmia käyttäjä on katsonut, ja minkälaisia hänelle annetut suositukset ovat. Katseluhistorian visualisointi ei kuitenkaan ole aivan suoraviivaista, koska pienessäkin otoksessa on kymmeniä tuhansia ohjelmia ja satoja tuhansia käyttäjiä. Ensimmäinen yrityksemme näkyy kuvassa. Kuvassa pisteet ovat ohjelmia. Ohjelmien pitäisi olla ympyrän kaarella lähellä toisiaan, mikäli niitä ovat katsoneet samat käyttäjät. Etäisyys ympyrän keskipisteestä taas kertoo kuinka paljon katselukertoja kyseistä ohjelmaa ylipäänsä on katsottu. Esimerkkikuvissa lastenohjelmat ovat painottuneet vasemmalle, kun taas dokumentit ja ajankohtaisohjelmat ovat enemmän oikealla reunalla. Vaikka visualisointi siten tavoittaa jotakin ohjelmien eroista, se ei kuitenkaan ollut riittävän hyvä tarkoitukseensa. Kaarella nimittäin on vierekkäin täysin erilaisia ohjelmia, eikä siksi olisi juurikaan mahdollista sanoa sijainnin perusteella onko suosituksessa järkeä vai ei. 




Seuraava yritys oli astetta kehittyneempi menetelmä nimeltään t-SNE (t-Distributed Stochastic Neighbor Embedding). Se tuotti hieman kiinnostavimpia tuloksia. Edelleen kuvassa vierekkäin ovat ohjelmat, joita ovat katselleet samat käyttäjät. Kuten kuvasta voi nähdä, lastenohjelmat erottuvat selkeästi omana klusterinaan. Samoin saman sarjan jaksot ovat yleensä lähellä toisiaan.

 



Kesä kuitenkin osoittautui yllättävän lyhyeksi, ja loppui hetkeä ennen kuin ehdimme selvittää lopullista ja kattavaa totuutta suosittelukoneista, moniulotteisten aineistojen visualisoinnista ja koneoppimisesta. Vaikka monta kiinnostavaa polkua jäikin tutkimatta, ehdimme kesän aikana oppia paljon suosittelukoneiden kehittämisestä. Erityisesti käytännön kautta tuli selväksi, että vaikka algoritmi löytyisi valmiiksi toteutettuna, sen kääriminen toimivaksi ohjelmointirajapinnaksi ei ole niinkään suoraviivaista. Itse puuhailimme kokeiluversion parissa, jonka ei ollut tarkoituskaan skaalautua kestämään todellisessa käytössä syntyviä kuormia. Sellaisenakin sen pystyttämiseen liittyi paljon omanlaisiaan teknisiä haasteita.

Lisää Yleä Wikipediaan

Tuo kulttuuri Wikipediaan -kurssi Yle Arkistossa.

Wikipedia on maailman suurin tietosanakirja. Sitä rakennetaan yhteisvoimin, ja joskus jopa fyysisesti yhdessä. Maailmalla yleistyvät
editathonit, ”muokkaustapahtumat” joissa uudet ja vanhat Wikipedia-käyttäjät kerääntyvät tietyn aiheen ympärille oppimaan toisiltaan, mielellään inspiroivassa ympäristössä kuten museossa tai kirjastossa.

Tänä syksynä järjestetään sarja tällaisia tapahtumia, joiden päämääränä on rikastaa suomenkielinen Wikipedia kulttuuriperintöaineistolla. Kesäyliopiston ja Wikimedia Suomen järjestämällä Tuo kulttuuri Wikipediaan –kurssilla vieraillaan kuudessa eri kirjastossa, arkistossa ja museossa, myös Ylen arkistossa. Jokaisessa paikassa luodaan ja parannellaan sisältöjä jotka liittyvät kyseisen organisaation kokoelmiin.

Ensimmäinen kurssikerta järjestettiin Yle Arkistossa viime viikolla. Arkiston palvelukerros täyttyi kurssilaisista ja Wikipedia-opettajista. Osallistujien ikä vaihteli kaksikymppisistä eläkeläisiin. Wikipedia-opetushetken jälkeen läppärit avattiin ja ryhdyttiin töihin.


Tietolähteinä käytettiin arkiston tietokantoja, lehtiarkistoa sekä Elävää arkistoa. Wikimedia Suomi oli kurssia varten myös ladannut vanhoja valokuvia arkiston Flickr Commons -tililtä Wikimedia Commonsiin, jotta kuvia pystyisi käyttämään artikkelin kuvituksena.

Pian sali täyttyi puhesorinasta. Yhdessä työpisteessä kurssilainen täydensi tietoja Eero Saarenheimosta, toisessa pöydässä käytiin Merisään kimppuun. Wikipedisti ja informaatikko pohti yhteistuumin tekijänoikeuksia. Saako Ilmatieteen laitoksen sivuilta löytyvä rannikkomittausasemien nimien lista viedä sellaisenaan Wikipediaan? (Vastaus: luultavimmin saa, sillä suppea lista 13 asemasta todennäköisesti ei nauti tekijänoikeuslain mukaista luettelosuojaa.)

Maria Koskijoki oli tullut kurssille, koska pohtii, miten hän voisi hyödyntää Wikipediaa omassa työssään museoalalla. Illan aikana hän täydensi sivua, joka kertoo itsenäisyyspäivän vastaanoton tv-lähetyksistä. Apunaan hänellä oli muun muassa arkiston oma 1990-luvulla tehty selvitys ohjelman historiasta. ”Oli mielenkiintoista päästä kahlaamaan erilaisia lähteitä, joissa näkyy ajan henki. Löysin vuoden 1959 tv-lähetyksestä kertovan jutun Radiokuuntelija-lehdestä, josta laitoin lainauksen Wikipediaan”, Maria kertoi.

Illan aikana vierailtiin radioarkiston ja levystön kokoelmissa. Osallistujat pääsivät myös tutustumaan arkiston verkossa olevaan levytietokantaan.

Vierailu radioarkiston kokoelmissa.

Illan lopuksi käytiin keskustelua siitä, mitä saatiin aikaiseksi. Joillakin ilta oli mennyt Wikipediaan tutustumiseen, mutta toiset olivat jo päässeet varsinaisen työn vauhtiin. Artikkelien aiheet vaihtelivat kuuluttaja Kaisu Puuska-Joesta radiolupaan ja Luontoiltaan. ”No, vein sellaiset kaksikymmentä kuvaa artikkeleihin ja täydensin lastenohjelmien tietoja,” ilmoitti yksi, ilmeisen kokenut kurssilainen.

 

Tuo kulttuuri Wikipediaan -kurssia voi seurata Twitterissä #kulttuuriwiki –tunnisteella.

Ke 06.08.2014 @ 15:46Jaakko "Zeikko" Ojalehto

Ainutlaatuiset Assyt

Ylen Assembly-lähetyksen tarkkaamo

Ostin konepaikkalipun Assemblyille tarkoituksenani nähdä kavereita, tutustua uusiin ihmisiin, katsoa demoja ja tietenkin pelata. En kuitenkaan nähnyt yhtäkään demoa, pelannut juuri lainkaan saati edes ehtinyt istua konepaikallani muutamaa minuuttia pidempään. Mitä tapahtui?

Tarina alkaa jo tammikuussa, jolloin Yle striimasi Teemu “wabbit” Hiilisen sekä Otto “shAsur” Turkin juontaman Lantrek lähetyksen Yle Areenasta. Pian tämän jälkeen Yle sopi Huutosakki Ry:n kanssa myös Dreamhackin Summerin StarCraft 2 -turnauksen selostamisesta, jonka tuotannossa olin itsekin mukana. Lantrek ja Dreamhack lähetykset olivat ainakin omasta mielestäni teknisesti ja sisällöllisesti hyviä, mutta eivät kuitenkaan keränneet suuria määriä katsojia.

Katsojaluvuista huolimatta päätimme kokeilla pidemmän ja useita pelejä näyttävän lähetyksen tekemistä Assemblyiltä yhdessä Assemblyn järjestäjien kanssa. Tavoitteena ainakin oman käsitykseni mukaan oli kokeilla löytyykö pidemmälle ja useita pelejä näyttävälle suomenkieliselle lähetykselle katsojia. Mahtavana lisänä myös Yle TV2 oli kiinnostunut näyttämään Assemblyn pääturnauksen finaalin televisiossa.

Striimin ja TV-lähetyksen tuotti Assemblyjen LiveCrew sekä GameCrew, joiden työntekijät tekevät työtään vapaaehtoisvoimin ja rakkaudesta lajiin periaatteella. Yle lainasi kuvauskalustoa ja osallistui TV-tuotantoon muutaman hengen voimin. Yle ei luonnollisesti osallistunut itse turnauksen tai koko tapahtuman järjestämiseen millään tavalla.

Mitä siis itse tein Assemblyillä? En osallistunut itse lähetyksen tekemiseen, vaan taustoitin ja kirjoitin yhdessä Kim Viljasen kanssa juttuja Assemblyjen elektronisen urheilun turnauksista Ylen verkkosivuille ennen tapahtumaa ja sen aikana, ylläpidin @yle_eurheilu-twitter tiliä ja moderoin striimin chattiä. Päivät venyivät siis aina vähintäänkin striimi-lähetyksen pituisiksi ja yleensä tunteja pidemmäksikin. Näiden töiden lisäksi ehdin nähdä muutamia kavereita, pelata kaksi peliä Counter-Strike Global Offensivea sekä nukkua muutamia tunteja joka yö Assemblyn nukkumatiloissa.

Ennen näitä Assemblyjä olen intohimoisena pelaajana kiertänyt elektronisen urheilun turnauksissa niin katsojana kuin pelaajana aina Saksan Kölnissä asti, mutta nämä Assemblyt olivat silti täysin ainutlaatuiset. Henkilökohtaisesti ainutlaatuisuuden takasi täysin uusi perspektiivi elektroniseen urheiluun striimi- ja TV-tuotannon kautta ja ne useat uudet ihmiset, jotka tapasin sekä se upea fiilis, joka varsinkin CS:GO semifinaaleissa ja finaalissa oli läsnä.

Isommassa perspektiivissä ainutlaatuiset näistä Assemblyistä teki elektronisen urheilun näyttäminen valtakunnallisessa televisiossa, elektronisen urheilun nouseminen puheenaiheeksi ja ehkä jopa koko kansan tietoisuuteen. Ja mikä tärkeintä elektroninen urheilu näyttäisi kiinnostavan ihmisiä. Finaalilähetystä katsoi samanaikaisesti televisiosta  parhaimmillaan 72 000 ihmistä, joka on hyvä luku lämpimälle ja kesäiselle lauantai-illalle. Myös striimi herätti erittäin paljon kiinnostusta ja livestriimi sekä finaalin Areena tallenne on tähän mennessä käynnistetty noin 155 000 kertaa, joka on sekin huikea luku. Lähetys herätti paljon keskustelua myös Twitterissä. Kirjoitin itse tapahtuman aikana noin neljäsataa twiittiä ja yhteensä koko #yleassembly-hashtagille kertyi reilut neljä tuhatta twiittiä. Myös chat oli suosittu ja sen moderointi oli ajoittain erittäin haastavaa suuren viestitulvan myötä. Chattiin kirjoitti yhteensä 1115 eri nimimerkkiä, jotka lähettivät yhteensä 10844 viestiä.

Assemblyn aikana ja sen jälkeen olen saanut lukuisia kysymyksiä Ylen seuraavista elektronisen urheilun lähetyksistä. Mitään päätöksiä ei ole vielä tehty, mutta henkilökohtaisesti toivon ja uskon että elektronisen urheilun lähetykset saavat jatkoa. Omasta mielestäni Ylen tulisi keskittyä ensisijaisesti kotimaisten sekä pohjoismaisten tapahtumien lähettämiseen sekä elektronisen urheilun journalismin kehittämiseen. Mielestäni elektronisen urheilun tulisi keskittyä jatkuvuuteen ja liiga- sekä turnaustoiminnan kehittämiseen. Mikäli elektronisesta urheilusta halutaan televisiossa usein näytettävä laji myös peliformaatteja tulisi miettiä hieman uudestaan, televisiossa on hyvin vaikea näyttää otteluita joiden kesto voi vaihdella jopa 90 minuuttia. Pelaajana tiedän, että tämä ei ole helppoa ja että striimaus tai televisiointi ei ole hyvä syy tehdä pelistä arpapeliä tai epämieluisaa kokemusta pelaajille. Ilman pelaajia ei ole katsojia, mutta onko ilman katsojia kovatasoisia pelaajia?


Tietokone ymmärtää videokuvaa ja puhetta

Genevessä järjestetyssä Euroopan yleisradioliiton EBU:n tapaamisessa pureuduttiin viime viikolla tv- ja radioalan metatietokysymyksiin. Yhdeksi pääteemaksi muodostui metatiedon automaatiomahdollisuudet, joista tässä pääkohtia.

ebu-yhteensopiva.jpg

Kuva: Metatieto tuottaa yhteensopivuutta. (EBU:n kokoustilat ovat yhteensopiva monenlaisten sähkötarpeiden kanssa.)

Belgian flaaminkielinen yleisradioyhtiö VRT:llä on tyypillinen yleisradioyhtiöiden arkistohaaste: osa VRT:n radioarkiston tallenteista ei sisällä käytännössä mitään metatietoa ohjelman sisällöstä, jonka takia radio-ohjelmien löytäminen on vaikeaa.

Ratkaisuna tähän VRT on nyt kokeillut audiosisältöjensä automaattista analysointia, jossa kone on ensin muuntanut audion tekstiksi, jonka jälkeen tekstistä on tunnistettu avainsanoja (substantiivit, henkilöiden ja paikannimet). Lisäksi VRT:n järjestelmä osaa myös tunnistaa audiosta eri henkilöt ja milloin kukakin puhuu sekä mikä kunkin puhujan sukupuoli todennäköisesti on. Lopputuloksena on (ei julkinen) hakukone, jolla voi hakea arkiston sisältöjä eri avainsanojen perusteella. Aikakoodin perusteella järjestelmä osaa myös näyttää täsmälleen sen kohdan, jossa tekstintunnistuksen perusteella tietty termi mainitaan. Hakukone hyödyntää RDF-tietokantaa metatietojen tallentamiseen. Haasteita audion tekstintunnistuksen onnistumiselle ovat mm. audion taustahäly, puheen ääntämisen laatu (esim. murteet), puheen kieliopillinen oikeellisuus ja muuttuva kieli (esim. uudet sanat).

Muutamien eurooppalaisten TV-yhtiöiden ja tutkimuslaitosten 3DTVS-tutkimusprojekti on kehittänyt monenlaisia työkaluja videon automaattiseen analysointiin. He pystyvät yksilöimään videokuvasta henkilöt ja seuraamaan heitä läpi videon. Lisäksi videosta pystytään tunnistamaan mitä henkilö tekee (esim. hyppii, juoksee, kävelee), millaisia tunteita henkilöllä on (esim. iloinen, surullinen), kuvakokoja (esim. yleiskuva, lähikuva), kohtauksen alku- ja loppukohdat, yms. Haasteena kuitenkin on se, että tunnistamisen tarkkuus ei aina ole kovin hyvä. Todellisella aineistolla kokeiltuna tarkkuus saattoi olla vain 30 %.

BBC:n tutkimusosaston James Harrison esitteli pilvipohjaista video- ja audioanalysointikehikko COMMA:a, jonka avulla BBC hyödyntämään alehintaan myytävää käyttämätöntä pilvikapasiteettia arkistojensa automaattiseen analysointiin. Esimerkiksi 25 dollarilla saa prosessointikapasiteettia, joka riittää kuukauden mittaisen audioaineiston analysointiin. Tarkempi hinta riippuu mm. siitä millaisia analyyseja materiaalille halutaan tehdä ja miten paljon prosessorikapasiteettia se vaatii. COMMA on modulaarinen eli siihen voi kytkeä kaikenlaisia analyysikomponentteja. COMMA on myös erittäin vikasietoinen ja toimii hajautetusti, rinnakkain.

Jana Eggink BBC:ltä puolestaan esitteli “videosormenjälkitekniikkaa”, jonka avulla on mahdollista hakea videotiedostoja muista videotiedostoista. Tätä tarvitaan esimerkiksi silloin, jos halutaan löytää missä kaikkialla tiettyä otosta on käytetty, jos halutaan asettaa tietty klippi esityskieltoon (esim. uutistoiminnassa samaa materiaalia saatetaan käyttää lukuisissa eri jutuissa kuvituskuvana) tai jos halutaan pitää kirjaa siitä, miten usein tietty klippi on ajettu ulos (esim. jotta vältettäisiin tietyn kuvituskuvan puhkikuluttamista).

Ylen kannalta nämä automaatiomahdollisuudet tarkoittavat sitä, että markkinoilta löytyy työkaluja, joilla sekä Ylen arkiston materiaalit että päivittäin syntyvät uudet video- ja audioaineistot voitaisiin ajaa automaattisen analyysin läpi ja tunnistaa sisällöstä avainsanoja, sisällön rakenteita ja esimerkiksi miltä osin Ylen ohjelmat lainaavat videomateriaalia toisiltaan.

PS. Kuvaussihteerin paras apuväline?

Kuvaussihteerin paras apuväline on jatkossa tabletti ja älykännykkä, jolla kuvaustilanteessa voidaan pitää kirjaa eri otoista ja välittää tiedot reaaliaikaisesti muiden käyttöön. Esimerkiksi elokuvan päätuottaja voi seurata kotisohvaltaan miten kuvausryhmien työt maastossa etenevät.

limecraft-digital-clap.png

Kuva: Tabletilla voi korvata fyysisen klaffin audion ja videon synkkaamiseen. Lisäksi 2D-viivakoodin avulla oton voi automaattisesti tunnistaa videokuvasta. (Lähde: Limecraft)

Yle.fi hakukoneen tekninen toteutus

Aiemmassa blogauksessa käsittelin kevään aikana uudistuneen yle.fi hakukoneen uusia ominaisuuksia. Tämä postaus keskittyy tekniikkaan, jolla nämä ominaisuudet ja koko haku on toteutettu.

Suurin arkkitehtuurillinen muutos uudessa hakukoneessa on hakutulosten tuottamiseen ja näyttämiseen käytetyn tekniikan eriyttäminen. Tavoitteena eriyttämisessä on se, että pystymme kehittämään käyttöliittymää itsenäisesti, mutta ulkoistamaan sivujen indeksoinnin, analysoimisen, hakualgoritmien kehittämisen ja muun toiminnan, joka ei ole Ylen verkkokehitystiimin ydinosaamista. Eriyttämisen ansiosta voimme luoda käyttöliittymästä sellaisen, joka palvelee käyttäjiämme mahdollisimman hyvin ja sopii parhaiten juuri Ylen tarjoamille sisällöille. Voimme lisäksi mitata hakukoneen ja sen toimintojen käyttöä monipuolisemmin.

Hakukäyttöliittymä ja hakutulokset tuottava järjestelmä ovat siis täysin itsenäisiä ja erillisiä kokonaisuuksia, joista toista voidaan muuttaa tai se voidaan peräti vaihtaa ilman suuria muutoksia toiseen järjestelmään. Järjestelmät välittävät tietoa toisilleen HTTP-protokollaa käyttäen JSONP-formaatissa.

Hakutulokset tuotetaan käyttäen Google Search Appliance (GSA) tuotetta. GSA on käytännössä Googlen myymä palvelin, joka etsii, indeksoi ja analysoi kaiken Ylen sisällön sekä tuottaa hakutulokset annetuilla hakuparametreilla. Oletuksena GSA tuottaa myös hakutulossivun, mutta olemme määritelleet GSA:n tuottaman hakutulossivun sijaan hakutulokset JSONP-formaatissa. Tämä onnistuu GitHubista löytyvällä avoimen lähdekoodin GSA Frontend konfiguraatiolla, jota olemme kehittäneet eteenpäin.

Google Search Appliancen tallentamaa metatietoa artikkelista. Osa tiedoista on crawl proxyn tuottamia.

Google Search Appliancen tuottama JSONP vastaus.

Hakukäyttöliittymä itsessään on toteutettu JavaScript-ohjelmointikielellä käyttäen angular.js-sovelluskehystä. Web-palvelin on toteutettu kahdennetulla node.js-palvelimella, jotka käyttävät myös express.js-sovelluskehystä mm. yle.fi ylä- ja alatunnisteen lisäämiseen sivulle. Valitut tekniikat ovat osoittautuneet hyviksi ja taanneet nopean käyttöliittymäkehityksen, helpon testattavuuden, hyvän skaalautuvuuden ja jatkuvan käyttöönoton.

GSA:n ja hakukäyttöliittymän lisäksi hakukone koostuu kolmannesta osasta jota kutsumme Crawl proxyksi. Käytännössä Crawl proxy on palvelu, joka tulkitsee ylen sisältöjä GSA:lle. Teknisesti Crawl proxy on node.js-palvelin, jonka kautta GSA:n tekemät HTTP-pyynnöt tehdään muihin Ylen palveluihin. Crawl proxy lukee kaikki sen läpi menevän HTML-merkkauksen ja lisää merkkaukseen elementtejä ennalta määritettyjen sääntöjen perusteella.

Crawl proxy lisää merkkaukseen mm. kielen, julkaisuajan, esikatselukuvan ja sisällön aiheen. Teoriassa GSA osaa itsekin päätellä artikkelin julkaisuajan ja kielen, mutta erilaisten merkkaustapojen ja aikaformaattien takia tämä ei käytännössä toimi yhtä hyvin kuin määrittely crawl proxyssä. Esikatselukuvat ja sisällön aiheet olisi mahdollista määritellä myös palveluissa kuten Yle Uutisissa ja Yle Areenassa, mutta koska määritystavat ovat pitkälti GSA:n omia emme halunneet lisätä näitä itse palveluihin.

Määritysten pitäminen crawl proxyssä pitää ylläpidon ja päivittämisen helppona ja keskitettynä, eikä muihin palveluihin tarvitse tehdä muutoksia. Näin voimme helposti parantaa ja lisätä GSA:n ominaisuuksia. Crawl proxy myös testaa automaattisesti Ylen muiden palveluiden HTML-merkkauksen niiltä osin kuin crawl proxylle on tarpeellista. Crawl proxy siis hälyttää mikäli jonkun palvelun HTML-merkkaus muuttuu niin että proxyn toiminta häiriintyy.

Google Search Appliancen tallentamaa metatietoa artikkelista. Osa tiedoista on crawl proxyn tuottamia.

Hakupalvelusta on haluttu tehdä mahdollisimman itsenäinen järjestelmä, joka ei riipu muiden järjestelmien sisäisestä toimintalogiikasta. GSA ei siis ole suoraan yhteydessä esimerkiksi Yle Uutisten tai Yle Areenan taustajärjestelmiin vaan lukee ainoastaan näiden julkisia verkkosivuja.

Hakupalvelu käyttää kuitenkin muutamia Ylen rajapintoja lisätoimintojen tuottamiseen. Esimerkiksi crawl proxy käyttää Ylen Images API:a kuvien pienentämiseen sopivan kokoisiksi esikatselukuviksi. Tulevaisuudessa rajapintojen kautta on tarkoitus tuoda lisää mielenkiintoisia toiminnallisuuksia. Tulevia toiminnallisuuksia voisivat olla mm. ohjelmatietojen haku, sosiaalisen medioiden jakomäärien näyttö, latausmäärien näyttö, jakomäärien ja latausmäärien käyttö hakualgoritmin optimoinnissa, jne.

Hakukone koostuu siis useasta itsenäisestä moduulista, joiden tekniikka ja kehitys eivät ole riippuvaisia toisistaan. Hakukoneen modulaarisuus takaa sen että uusia moduuleja voidaan kehittää, lisätä ja poistaa ketterästi ja tehokkaasti. Nyt kun uudistuneen hakukoneen perusarkkitehtuuri on rakennettu ja todettu toimivaksi keskitymme hakukoneen eri osien ja toimintojen parantamiseen sekä uusien toimintojen lisäämiseen. Mikäli sinulla on ideoita miten hakua voisi kehittää voit kommentoida alle, lähettää sähköpostia osoitteeseen haku.ylefi@yle.fi tai tweetata @zeikko


Ti 20.05.2014 @ 15:02Jaakko Ojalehto

Uudistuneen yle.fi hakukoneen ominaisuudet

Ylen verkkosivujen hakukone on uudistunut. Uudistuksen merkittävin muutos on hakukoneen käyttöliittymän erottaminen hakutulosten tuottamiseen käytettävästä tekniikasta. Erotuksen myötä käyttöliittymää pystytään kehittämään entistä ketterämmin ja tehokkaammin. Myös hakutulosten tuottamiseen käytettävää tekniikkaa voidaan päivittää tai muuttaa entistä vapaammin ilman että käyttöliittymään tarvitsee tehdä suuria muutoksia. 

Uudistuksen ensimmäisessä vaiheessa hakukoneeseen palautettiin rajaus- ja järjestystoiminnot, jotka aiemmin löytyivät hausta, mutta poistuivat hetkeksi hakutekniikan vaihdoksen myötä. Näitä toimintoja ovat mm. rajaus ajan mukaan sekä järjestys ajan ja relevanssin mukaan.

 Yle.fi haku

Uudistuksen myötä myös hakukoneen käyttöliittymän tekniikka on uudistettu. Uusi käyttöliittymä perustuu moderneihin angular.js-, node.js- ja express.js-ohjelmistokehyksiin. Uusi käyttöliittymä on myös responsiivinen eli se mukautuu käyttäjän laitteen ruudun koon mukaan. Uudessa käyttöliittymässä on keskitytty myös nopeuteen ja helppokäyttöisyyteen. Hakutulokset päivittyvät heti hakusanaa tai rajaus- sekä järjestyssääntöjä muutettaessa, eikä hakupainiketta tarvitse napsauttaa lainkaan.

Uudistuksen toisessa vaiheessa hakuun tuotiin lisäominaisuuksia kuten kielirajaus ja esikatselukuvat. Kielirajaus on mahdollista suomeksi, ruotsiksi, englanniksi, saameksi ja venäjäksi. Myös hakutuloksista näytettävien metatietojen kuten julkaisupäivän rikastamiseen panostettiin. Suurin muutos oli kuitenkin rajaustoiminnon uusiminen. Aiemmin rajaus tapahtui julkaisijan tai kanavan mukaan. Rajauksen vaihtoehtoina olivat mm. Areena, Elävä arkisto ja YleX. Oletuksemme oli että hakupalvelun käyttäjä tietää mihin aihealueeseen hänen etsimänsä asia kuuluu, mutta ei välttämättä kanavaa tai julkaisua, jossa se on Ylen sisällä julkaistu, joten muutimme rajausta aihepohjaiseksi. Uudessa rajauksessa vaihtoehtoina ovat mm. Tv- ja radio-ohjelmat, Tiede ja luonto sekä Lapset ja nuoret. Sama sisältö voi löytyä useamman aiheen alta.

Aiherajaus perustuu täysin olemassaolevaan metadataan, eikä mitään uutta käsityötä sisällön luokittelemiseksi ole tehty. Ylen sisältöjen luokittelu eri palveluiden välillä ei ole yhtenäistä, joten hakupalvelu poimii eri palveluiden sisältöjä ennalta määritetyistä kategorioista lisää sisällöt sopiviin aiheisiin. Hakupalvelun aihejaottelu perustuu siis muiden Ylen palveluiden sisällön kategorisointiin. 

Yle Uutiset jaottelevat tuottamansa sisällön myös uutisalueiden ja -toimitusten mukaan. Testaamme uutisten jaottelun käyttämistä myös hakukoneessa, kun käyttäjä on valinnut aiherajaukseksi uutiset. Tämän ansiosta haut pystytään kohdistamaan esimerkiksi ainoastaan kotimaan uutisiin tai jopa Etelä-Karjalan uutisiin. Koska uutisalueita ja -toimituksia on useita, niistä näytetään kerralla vain kymmenen, jotka sisältävät eniten valittuun hakulauseeseen liittyviä artikkeleita.

 

Jatkamme hakukoneen kehitystä kehittämällä, testaamalla ja julkaisemalla pieniä muutoksia pienissä erissä käyttödatan ja asiakaspalautteen perusteella. Mikäli sinulla on palautetta uudistuneesta hakukoneesta tai kehitysideoita voit kommentoida tähän artikkeliin, lähettää viestiä sähköpostiosoitteeseen haku.ylefi@yle.fi tai tweetata @zeikko.

Voit kokeilla uudistunutta hakua sivun yläreunan hakulaatikosta tai osoitteessa haku.yle.fi

Yle.fi -haku uudistuu

Verkkopalveluiden omat hakutoiminnot tyypillisesti vievät käyttäjänsä enemmän harhaan kuin auttavat tiedon lähteelle. Sivustojen hakutoiminnot ovat usein se viimeinen ja samalla heikoin lenkki mihin sivustolla kävijä turvautuu.

Miksi verkkopalveluiden hakutoiminnot eivät avaa suoraan Googlen tarjoamia hakutuloksia? Google sekä muut hakukoneet tarjoavat tunnetusti relevantteja hakutuloksia ja analysoivat isoja datamääriä oman palvelunsa kehittämiseksi mainostuloja kasvattaakseen. Miksi meidän kannattaisi kehittää omaa sivuston hakutoimintoa?

Vastaus piilee ehkä juuri näissä samoissa syissä.

Haku on tärkeä toiminnallisuus meidän palvelujemme käyttäjille. Keräsimme palautetta haun pilottiversiosta jatkokehityksen tueksi. Paikoitellen kärkevänkin palautteen perusteella hakuun latautuu usein suuria odotuksia.
Tämä ei ole yllätys, kun sisältöä on paljon: reilusti yli miljoona sivua ja lisää tulee satoja päivittäin. Ehkä palautetta antanut käyttäjä on kokenut haun viimeiseksi keinoksi löytää sivuiltamme sen tietyn radio-ohjelman, jonka nimeä ei juuri nyt muista, mutta aiheen ja ajankohdan kylläkin.

Haku tarjoaa meille mahdollisuuden päästä lähemmäksi palvelujemme käyttäjiä. Mitä etsitään, miten sisältöjä etsitään, mitä toiminnallisuuksia haussa käytetään jne. - Kaikki tämä on hyödyllistä informaatiota, jota voi hyödyntää jopa koko sivuston kehittämisessä.

Vielä tärkeämpi syy on se, että tunnemme jo nyt omat käyttäjämme paremmin kuin kukaan muu. Ja koko ajan opimme lisää. Voimme rakentaa hakupalvelun juuri meidän palvelujen käyttäjien muuttuvien tarpeiden mukaan. Dataan perustuen voimme tuoda ne toiminnallisuudet mille käyttäjät näkevät tarvetta sekä kokeilla täysin uusia tapoja edistää sisältöjemme löydettävyyttä. Tai voimme vaikka jättää kokonaan pois ominaisuudet joille ei näytä olevan käyttöä.

Ylen eri verkkopalveluilla on erilaiset sisältöjen löydettävyyteen liittyvät haasteensa, joihin myös sivuston oman hakutoiminnon pitää mukautua. Uutisissa julkaisuajankohta on tavallistakin tärkeämpi kriteeri, kun taas Areenalla erilaiset ohjelmatiedot ovat ratkaiseva tekijä. Jossain toisessa palvelussa ehkä artikkelin toimittaja on se keskeinen kriteeri löytää relevantteja sisältöjä. Omaan hakuun voimme räätälöidä tapaan tehdä rajauksia, painottaa ja järjestää hakutuloksia vaikka palvelukohtaisesti. Tunnemme sisältömme ja niiden käyttötavat paremmin kuin hakukoneet, joten meillä on paremmat mahdollisuudet ennakoida tärkein sisältö käyttäjälle.

Käytämme nyt hyväksi havaittua hakumoottoria, Google Search Appliancea, etsimään osuvimmat hakutulokset. Haku on siis yhtä kattava ja tarkka kuin Googlen oma hakupalvelukin. Tosin tavoitteenamme on tehdä hausta parempi kuin mihin Google pystyy Ylen sisältöjen suhteen.

Käyttöliittymän ja lisäominaisuuksien kehityksen olemme ottaneet omaan haltuumme. Tämä mahdollistaa edellä esitettyjen ominaisuuksien ja kehittyneemmän mittauksen käyttöönoton. Oma kehitystyö antaa myös vapauden lisätä tulevaisuudessa muita Ylen omia järjestelmiä ja lähteitä osaksi hakua. Esimerkkejä on helppo keksiä useita. Ohjelman tiedot voisi näyttää jo hakutuloksissa tai jopa käynnistää suoraan itse ohjelman yhdellä klikkauksella. Tai ehkä tietystä henkilöstä tai aiheesta kirjoitettujen artikkelien määrä olisi hyödyllistä nähdä aikajanalle järjestettynä. Tai kenties haun pitäisi tuntea juuri minun hakuhistoriani ja ehdottaa sen perusteella hakutulosta ennen kuin olen ehtinyt kirjoittaa hakulauseketta loppuun.

Myös itse hakutulosten kuvailun voi tehdä totutusta poikkeavalla tavalla. Hakutulosten rikastaminen tiedoilla sosiaalisen median jaoista tai artikkelin lukukerroista auttaa löytämään päivän puheenaiheet. Esikatselukuvakkeet hyödyttävät tulosten nopeassa silmäilyssä. Ehkä koko käyttöliittymä olisikin helppokäyttöisempi Pinterestin tapaan kuvien ja tekstien kollaasina.

Parhaimmillaan hakua ei edes huomaa käyttävänsä. Verkkokaupoissa ja erilaisissa varausjärjestelmissä haku tyypillisesti sulautuu osaksi kokonaisuutta. Haku ei näytä perinteiseltä haulta. Sivustolla navigointi käy sujuvasti eri vaihtoehtoja rajaamalla kunnes haluttu tieto on löytynyt.

Käy ja kokeile mitä ominaisuuksia on jo käytössä. Jatko riippuu siitä mitä ominaisuuksia käytetään ja minkälaista palautetta tulee. Käyttäjät valitsevat.

Ma 14.04.2014 @ 10:06Veini Simolin

Yle API - mikä se edes on?

Kun olin Ylellä TET-harjoittelussa, työpistettäni vastapäätä toisella puolella toimistoa istui merkillinen porukka. Tämä ”porukka” on Ylen, Reaktorin ja Affecton API-koodaustiimi.

Ylellä on ongelma, ja se ongelma olen minä. Tai oikeastaan kuulun Ylen ongelmaan eli 15–29 vuotiaisiin. Nuoret katsovat entistä vähemmän TV:tä, sillä kaikki ohjelmathan löytää myös netistä. Tämän lisäksi nuorten TV:n katselusta yhä pienempi prosentti kuluu Ylen kanavilla, mikä tarkoittaa, että Yle menettää relevanssia. Eivätkä ne Ylen ongelmat siihen lopu. Kun nuorten median kulutus suuntautuu entistä enemmän nettiin ja mobiililaitteille, syntyy aivan uusi ongelma: päätelaitteiden fragmentaatio. ”Huh, mikä termi”, saattaa heikkohermoisin jo puuskahtaa, mutta pelottavasta nimestä huolimatta ongelma on helppo ymmärtää.

Päätelaitteiden fragmentaatio tarkoittaa siis sitä, että erilaisia tietokoneita ja mobillilaitteita on niin monia, että sovellusta tehtäessä siitä pitää tehdä tuhansia erilaisia versioita, jokaisella alustalle omansa. Tämä ei ole helppoa eikä varsinkaan halpaa, joten Ylen voimavarat eivät riitä siihen, että kaikille laitteille tehtäisiin oma versio samasta sovelluksesta. Tässä kohtaa kuvaan astuu minua vastapäätä juuri tälläkin hetkellä istuva joukko koodaajia. He ovat sankarit APIen taustalla.

”API, mikä se edes on?” kysyy moni lukija itseltään, ja totta puhuakseni en itsekään aivan täysin ymmärrä, mutta jotenkin näin se menee: Sinä, hyvä lukija, et ole tyytyväinen Ylen nettisivujen uutispalveluun ja haluat tehdä siitä hyvän mobiiliversion, joten saat Ylen apin kautta tarjolla olevaa dataa, joka on tietokoneelle helposti luettavassa ja käsiteltävässä muodossa. Tämä data voi olla esimerkiksi jokin yksittäinen artikkeli tai vain artikkelin teksti. APIn saatuasi kirjoitat sen ympärille koodia, josta tulee ulkoasu sovelluksellesi, ja sovellus on valmis.

Voit kuvitella APIn ruokalistana ravintolassa. Tässä ravintolassa asiakkaina ovat sivustot ja sovellukset. Ravintolassa asiakkaat eivät tiedä, mitä keittiössä tapahtuu, he vain saavat ruokalistan eteensä ja tilaavat mitä listalla lukee. API toimii samalla tavoin, kuin ruokalista. Sivustot ja sovellukset saavat valita ruokalistalta, millaista dataa haluavat. Eli siis API on kuin dataruokalista, joka peittää taustalla olevaa monimutkaisuutta tehden tiedon jakelun ja käsittelyn helpoksi.

Miten APIt siis ratkaisevat Ylen ongelman ja mitä muuta ne mahdollistavat? No, jos jollain koodaustaitoisella on mobiililaite, johon ei vielä ole tehty vaikkapa Yle Areena-sovellusta, hän voi hakea APIn kautta datan, kirjoittaa pätkän koodia ja julkaista sovelluksen. Yle säästyy uuden sovelluksen kehitykseltä ja ylläpidolta, ja voi keskittyä laadukkaan sisällön tuottamiseen.

No, tällä hetkellä Ylen APIt eivät ole vielä julkisia, mutta töitä tehdään kovaa tahtia julkaisun eteen. Ja juuri tästä syystä työpistettäni vastapäätä, toisella puolella toimistoa, istuu merkillinen porukka, ja tämä porukka tekee kovasti töitä mahdollistaakseen median jakelun alustasta riippumatta mahdollisimman suurelle kohderyhmälle.

Ma 17.03.2014 @ 11:18Maria Hausen, tuottaja, Yle Internet / Verkkokehitystiimi

Yle kokeilee äänentunnistusta ja sosiaalista tv:tä Ps:n Tyyliviikolla

Kyseessä on kokeilu, jossa katsojat pääsevät Puoli seitsemän -ohjelman suorien lähetysten aikana osallistumaan ohjelmaan sosiaalisen median ja tv:n avulla. Tätä varten olemme kehittäneet Ps:n Osallistu-näkymän, ts. second screenin.

Kokeilu ajoittuu Puoli seitsemän Tyyliviikolle 18.-21.3.2014.


 

Ps:n Osallistu-näkymä


Kokeilun tavoitteet

Kokeilun tärkein tavoite Ylelle on oppiminen. Opimme miten katsojat, Ylen asiakkaat, kokevat tällaisen mahdollisuuden. Tämän vuoksi palaute on ensisijaisen tärkeää. Keräämme sitä Osallistu-näkymän Anna palautetta -linkistä avautuvassa kyselyssä. Myös tämän kirjoituksen kommentteissa saa mieluusti jakaa omia kokemuksiaan. Oppimisessa auttaa myös verkkoanalytiikkajärjestelmämme, joka kerää anonyymiä käyttödataa.

Ohjelmantekijät oppivat miten katsojien osallistaminen vaikuttaa ohjelmantekoon: käsikirjoitukseen, roolitukseen, resurssointiin, työnkulkuun. Saamme ymmärrystä siitä miten eri teknologiat toimivat yhteen Ylen monisyisessä teknologisessa ympäristössä.

Kokeilujakson loputtua keräämme pilotin tarjoamat opit ja päätämme jatkosta.  

 

Osallistu-näkymä Yle Areena iPad-sovelluksessa ja verkossa

Osallistu-näkymä löytyy Yle Areena sovelluksen uusimmasta iPad-versiosta (v. 1.0.7.), joka julkaistaan App Storessa 17.3.2014.

Sovellus tunnistaa toisessa laitteessa (esim. TV, tietokone, kannettava) parhaillaan katsottavan Ylen ohjelman äänen perusteella. Ps:n suoran lähetyksen aikana sovellus avaa käyttäjän niin halutessa ohjelman Osallistu-näkymän Areena-sovelluksessa. Tunnistamiseen menee jokunen sekunti. 

Äänentunnistus, ohjaus Osallistu-näkymään

Äänentunnistusta varten sovellus käyttää iPadin mikrofonia. Mikrofoni kytkeytyy päälle käyttäjän avatessa sovelluksen, ja vastaavasti pois päältä, kun sovellus suljetaan. Merkkinä tästä iPadin näytön ylälaidan kapea palkki vaihtuu hetkeksi punaiseksi.

Vaikka äänentunnistus onkin testattua, turvallista tekniikkaa eikä se vaaranna käyttäjän yksityisyyttä, laitteen mikrofonin voi kytkeä pois päältä sovelluksen Ohje-näkymästä. Osallistu-näkymään pääsee myös Osallistu-painikkeesta.

Haluamme kokeilla äänentunnistusteknologian toimivuuttaa yleensä, saada siitä katsojien kokemuksia sekä parantaa Osallistu-näkymän löydettävyyttä Areenan iPad-sovelluksessa.

Osallistu-näkymä on saavutettavissa verkossa osoitteessa http://yle.fi/puoliseitseman/osallistu millä tahansa päätelaitteella, jossa on selain. Näkymä on kuitenkin optimoitu iPadille. Olemme tehneet tämän valinnan siksi, että Areenaa käytetään tableteista ylivoimaisesti eniten iPadilla*.

* Viikoilla 1-10 2014 Yle Areenan kaikista tableteilla käynnistetyistä ohjelmista lähes 65% käynnistettiin iPadilla. Lähde: comScore Digital Analytix


Osallistu-näkymän toiminnallisuudet

Osallistu-näkymässä katsojan voivat

  • äänestää päivittäin vaihtuvassa äänestyksessä äänestyssivulla. Äänestyksen tulokset näytetään Ps:n lähetyksissä

  • keskustella muiden katsojien kanssa chatissa - tai vain lukea chat-viestejä. Viestiä lähetettäessä chat-järjestelmä pyytää nimimerkkiä.  

  • seurata yhdessä näkymässä, yhdessä ja samassa virrassa Ps:ään ja Tyyliviikkoon liittyviä omia ja muiden Facebook-, Twitter- ja Instagram-sisältöjä sekä sähköpostitse lähettämiä kuvia. Osa viesteistä ja kuvista näytetään Ps:n lähetyksissä. 

Nämä toiminnallisuudet löytyvät Osallistu-näkymän mustassa palkissa olevista painikkeista:  

Osallistu-näkymän painikkeet

Pilotin rajoitteet

Kyseessä on mitä suurimmassa määrin kokeilu, pilotti. Siksi  

  • se on optimoitu vain yhdelle laitteelle, iPadille

  • se rajoittuu suoriin lähetyksiin

  • mukana on vain yksi ohjelma

  • kokeiluaika on rajallinen

  • Osallistu-näkymän latautumisessa saattaa ilmetä hitautta

 Pääsemme testaamaan Osallistu-näkymää ensimmäistä kertaa todellisessa tilanteessa Ps:n Tyyliviikon ensimmäisessä lähetyksessä tiistaina 18.3.

 


Puoli seitsemän Tyyliviikko Yle TV1:ssä 18.-21.3.2014 klo 18.30-19.00 ja Yle Areenassa

Osallistu-näkymä: http://yle.fi/puoliseitseman/osallistu, Yle Areena iPad sovellus

Puoli seitsemän sosiaalisessa mediassa

Mikä on todellinen tyylisi? Testaa Tyylinpaljastuskoneessa.  

Ti 21.01.2014 @ 20:05Pia Virtanen, Yle Internet / Verkkokehitystiimi

Linkitetty tieto Ylellä ja BBC:llä

Kirjoittaja on Ylen Metatietohankkeen tuottaja ja oli joulukuussa tutustumassa BBC:llä heidän Linkitetyn tiedon palveluunsa - Linked Data Platformiin.


Yle tuottaa runsaasti laadukkaita sisältöjä. Samoistakin aiheista tehdään juttuja (uutisia, artikkeleita, tv- ja radio-ohjelmia) eri toimituksissa eri välineisiin ja eri kanaville, useammalla kielellä. Jos Ylen sisältöjen kuluttaja haluaisi löytää sisältöjä jostain häntä kiinnostavasta tietystä aiheesta, pitäisi hänen lähestulkoon tuntea Ylen organisaatiorakenne, jotta hän löytäisi tuosta aiheesta eri puolilla Yleä tuotetun sisällön. Verkossa tämä eri paikoissa tuotettu sisältö voitaisiin kuitenkin saattaa yhteen yli erilaisten tuotannollisten raja-aitojen.


Olemme käynnistäneet Ylellä viime syksynä ns. Metatietohankkeen. Hanke tähtää siihen, että asiakkaat löytävät Ylen sisällöt verkossa helpommin ja rikkaampina kokonaisuuksina. Hankkeen tavoitteena on luoda teknologia, työkalut ja toimintatavat, joilla voidaan koostaa ja tarjota rikkaampia sisältökokonaisuuksia eri aiheista yli Ylen eri "siilorajojen": äänta, kuvaa ja tekstiä  eri kanavilta, eri toimituksista, eri aikakausilta.


Sisältöjen koostamiseen on tarkoitus käyttää metatietoa, tarkemmin sanoen linkitettyä tietoa, jota konekin ymmärtää. Tämä mahdollistaa uudentyyppisten kokonaisuuksien koostamisen automaattisemmin, kun linkityksiä eri sisältöjen välillä ei tarvitse tuottaa käsityönä.


Teknistä pohjaa (mm. metatietokanta, -API, linkitystyökalu) on nyt rakennettu muutaman viikon ajan käyttäen UEFA Mestarien liigaa pilottina. Tietokantana testataan verkostojen käsittelyyn sopivaa Neo4j-graafikantaa. Pilottihankkeeksi Mestarien liiga valikoitui, koska tietomalli ja käsitteistö voidaan pitää rajallisena ja siten helposti hallittavana. Toinen syy oli saatavilla oleva data: Metatietohanke on riippuvainen Ylellä samaan aikaan käynnissä olevista muista API-kehityshankkeista. Mestarien liiga -pilottia varten meillä on APIen kautta saatavilla tai tulossa saataville dataa kolmesta eri lähteestä: Yle Urheilun artikkeleita (Artikkeli-API), urheilun tulospalveludataa (Tulospalvelu-API) ja ohjelmatietoa Ylen tv- ja radio-ohjelmista (Ohjelma-API).


Sekä Metatietohankkeen että API-kehitystyön tavoitteena on myös Ylen sisältöjen avaaminen Ylen kumppaneille ja kehittäjäyhteisöille. Ja koska nyt käyttöön otettavat tekniset ratkaisut ja menetelmät ovat yleismaailmallisia, pääsemme mekin puolestamme tulevaisuudessa  hyödyntämään helpommin Ylen ulkopuolisia sisältöjä.


Mestarien liiga -pilottia oli alun perin tarkoitus rakentaa puhtaasti testiympäristössä, mutta nyt näyttää siltä, että Yle Urheilu voi hyödyntää jo nyt tehtyä kehitystyötä aika piankin sivuillaan!


Hankkeen alussa korostuu ehkä sen tekninen luonne. Teknisen alustan kehittäminen jatkuu, mutta toiminnan painopiste siirtyy jatkossa tietomallien, yhteisten käsitteistöjen ja uusien toimintatapojen kehittämiseen eri puolilla Yleä. Sen lisäksi että hanke palvelee asiakkaitamme, tulee sen tarjota yleläisille sisällöntuottajille sellaisia uusia työkaluja ja toimintamalleja, että heidän on halutessaan mahdollista luoda uudenlaisia, rikkaampia sisältökokonaisuuksia verkkoon.


BBC on linkitetyn tiedon alueella kuuluisa tuottamistaan urheilusisällöistä, varsinkin vuoden 2012 kesäolympialaisten sivustosta (http://www.bbc.co.uk/sport/0/olympics/2012/). He loivat sivut yli 200 maalle, yli 10 000 urheilijalle, yli 300 lajille ja 30 tapahtumapaikalle. Tällaisen sivuston luominen ja ylläpitäminen käsityönä olisi ollut mahdotonta, mutta linkitettyä tietoa käyttäen sivujen sisällön koostaminen pystyttiin automatisoimaan.


Kesäolympialaiset ja sitä ennen tapahtunut kehitystyö oli BBC:n urheilun oma hanke, ja linkitetyn tiedon palvelua - Dynamic Semantic Publishing Platformia (DSP) - kehitettiin urheilun omia tavoitteita silmällä pitäen. Kesäolympialaisten jälkeen palvelua varten perustettiin BBC:n Future Media -yksikköön 11 hengen Linked Data Platform -tiimi (LDP). Tiimiin kuuluu tuotepäällikkö, projektipäällikkö, business analyst, tietoarkkitehti ja 7 koodaajaa. LDP-tiimi on nyt ollut koossa reilun vuoden, syyskuusta 2012 lähtien.


LDP:n ensimmäinen toimintavuosi on kulunut paljolti tietokannan ja tietomallien muuntamiseen sellaisiksi, että ne voidaan ottaa käyttöön myös yleisemmin urheilun ulkopuolella. Voisi ehkä sanoa, että DSP rakennettiin innokkaasti, mutta siinä, mitä ja miten tietokantaan tallennettiin, panostettiin laadun sijasta määrään. Siksi esim. tietokannan siivoukseen käytetään edelleen paljon aikaa; mm. käsitteistöjä, joita kukaan ei käytä, poistetaan tietokannasta. Aikoinaan tehdyt ratkaisut lähtien tietokannan valinnasta (Ontotextin RDF-kanta OWLIM) määrittävät siis vahvasti nykyistä toimintaa. Nyt tietomallit ja käsitteistöt pidetään hyvin rajattuina, jotta niitä voidaan hallita paremmin.


LDP:ia ja sen tarjoamaa sisältöjen tagays-/linkitysmahdollisuutta BBC-käsitteistöllä hyödyntää tuotannossa olevilla verkkosivuillaan edelleen vain BBC:n urheilutoimitus. Tämän lisäksi meneillään tai suunnitteilla on useampia pilotteja ja laajennuksia: Uutiset julkistivat ennen joulua n. 300 testikäyttäjälle betaversion mobiilisovelluksesta, jolla voi seurata BBC:n uutisia. Uutiset tagaavat juttunsa, ja sovelluksen käyttäjä voi kerätä My topics -listalleen tageja vastaavia aiheita seurattavaakseen. Tagaaminen palvelee tällä hetkellä vain ja ainoastaan mobiilisovellusta, ei laajemmin uutisten verkkosisältöjä. Uutisten puolella myös Birminghamin aluetoimitus (Birmingham & Black Country) pilotoi linkitetyn tiedon käyttöä testisivustonsa koostamiseen. BBC:n uutisilla ja urheilulla on yhteinen julkaisujärjestelmä, jossa tagaaminen on mahdollista. Sen lisäksi Knowledge & Learning -yksikölle ollaan tekemässä julkaisujärjestelmää, jossa tulee myös olemaan tagaysmahdollisuus.


Työkaluja linkitetyn tiedon (tietomallien ja käsitteistöjen) hallintaan ja hyödyntämiseen on kehitetty LDP:ssa mutta myös uutisissa ja Research & Development -yksikössä. Esim. tekstianalyysiin perustuvia ohjelmia käsitteiden automaattiseen tunnistamiseen (concept extraction) on ja on ollut käytössä useampia. Birmingham & Black Country testaa myös työkalua, jolla on mahdollista tagata sisältöjä niiden julkaisun jälkeen, ei julkaisujärjestelmässä vaan selaimessa. Ajatus on, että varsinkin radio- ja tv-ohjelmien sivujen sisältöjä voidaan tuoda uutisvirran joukkoon, vaikka radio- ja tv-ohjelmien toimituksissa ei tagaysta tehdäkään.


Mielenkiintoista kehitys- ja testaustyötä tehdään myös News Labs -nimisessä yksikössä ja sen järjestämissa hackathoneissa ja muissa kehittäjätapaamisissa. Yksi concept extraction -työkaluista - Juicer - on heidän kehittämänsä. News Labsin uusimmalla testikäytössä olevalla työkalulla puolestaan voi hakea BBC:n omaa mutta myös muiden medioiden (esim. The Guardianin) sisältöjä. Työkalu on tarkoitettu ennen kaikkea toimittajalle taustatiedon keräämiseen ja se hyödyntää haussa LDP:n tietokantaan tallennettua käsitteistöä.


Eräs kiinnostava, BBC:llä oppimani uusi käsite on storyline. Sen lisäksi, että sisältöjä voidaan linkittää käsitteisiin, niitä voidaan linkittää myös näihin “tarinoihin”. Storylinen voi ymmärtää lähinnä ehkä uutistapahtumana (esim. Seija-myrsky) tai tapahtumien ketjuna (syksyn Eino-, Oskari- ja Seija-myrskyt) ja siitä tehtyinä juttuina. Storyline pitää sisällään tietyt käsitteeet, ja kun sisältö tagataan storylinella, periytyvät sen sisällään pitämät käsitteet myös tuolle sisällölle. Yle-näkökulmasta tämä(kin) on seikka, johon pitää perehtyä vielä tarkemmin!


BBC-vierailu antoi vastauksia moniin kysymyksiin, mutta avasi vähintään yhtä paljon uusia kysymyksiä, joihin joudumme etsimään vastauksia omaa linkitetyn tiedon palveluamme rakentaessa: Edetäänkö pienin rajatuin mutta siten hyvin hallituin kokonaisuuksin vaiko laajemmalla rintamalla ja yleisemmällä tasolla? Rakennetaanko omia käsitteistöjä ja missä määrin hyödynnetään ulkoisia? Mitä voi ja kannattaa automatisoida ja missä journalistinen valinta on edelleen ensisijaista? Kumpi osaa tagata paremmin, ihminen vai kone? Mikä palvelee yleläistä sisällöntuottajaa, mikä Ylen asiakasta? Missä sisältöjen julkaisemissa kannattaa käyttää linkitettyä tietoa ja missä ei, vaikka se ehkä olisikin mahdollista? Jne., jne.


Paljon kysymyksiä, paljon työtä - eli hyvää uutta, linkitetyn tiedon vuotta 2014 kaikille!


Loppuun muutama linkki:

Sivut

Kehitys kehittyy - kokeile ja kommentoi yle.fi:tä

Tässä ryhmäblogissa yle.fi:n tekijät kertovat tulevista verkkopalveluista sekä valottavat ajatuksiaan suunnitelmien takaa.

Blogiarkisto