Portfolio Information

  • Date: 2026
  • Skills: Koodi (Python, JavaScript, PHP), algoritmin luominen, Claude.ai
  • Demo: See Demo

Vuosi: 2026

Taidot: Koodi (Python, JavaScript, PHP), algoritmin luominen, Claude.ai

Demo-linkki: https://github.com/iidis/bee-swarm-api

Millaisia tulevaisuuden mahdollisuuksia näet datan hyödyntämisessä tekoälyn avulla osana yhteiskehittämistä?

Mehiläisparvi päättää uudesta kodista ilman johtajaa. Satoja tiedustelijoita lähtee etsimään vaihtoehtoja ja raportoi vapaasti kaikista löytämistään paikoista, ketään ei hiljennetä. Mitä parempi pesäpaikka, sitä voimakkaammin mehiläinen tanssii: ensiluokkaisen paikan puolesta 100 kierrosta, keskinkertaisen vain 12. Päätös syntyy kilpailusta, ei kompromissista. Heti kun noin 15 mehiläistä on samassa paikassa, parvi lähtee, vaikka osa vielä tanssisi toisen paikan puolesta.

Tämä biologinen malli voisi inspiroida yhteiskehittämistä, mutta ei sellaisenaan. Mehiläisten voima on siinä, että ne arvioivat pesän laatua objektiivisesti: koko, sijainti, suojaisuus. Ihmiset sen sijaan vaikuttuvat helposti suosiosta. Siksi pelkkä “mikä saa eniten huomiota” ei toimi.

Perinteinen tapa: Kerätään mielipiteet, asiantuntija tekee yhteenvedon, palataan kommentoimaan. Hidas, hierarkinen, ja lopputulos on kompromissi jossa jokainen menettää jotain.

Mehiläisistä inspiroitunut malli Kuutiossa: Osallistujat esittävät ratkaisuja vapaasti. Tekoäly ei laske pelkkää kannatusta, vaan seuraa miten ideoita kehitetään, eli kuka rakentaa niitä eteenpäin, argumentoi, haastaa, linkittää toisiin. Liike visualisoidaan ja osallistujat näkevät reaaliajassa mitkä ratkaisut syvenevät vuorovaikutuksessa, mitkä jäävät pinnallisiksi, missä syntyy uusia yhdistelmiä. Ei suosion mittari vaan kehityksen kartta.

Kriittistä on että jokainen voi tarkistaa datan: “Tämä ratkaisu sai 23 kommenttia, joista 15 kehitti sitä eteenpäin näin, 8 haastoi näin.” Prosessi on väännetty rautalangasta helposti lähestyttäväksi. Ei mustaa laatikkoa.

Päätös syntyy kun riittävä joukko on sitoutunut, siis ei yksimielisyydestä. Sama periaate kuin mehiläisillä: quorum, ei konsensus. Tämä mahdollistaa nopean päätöksenteon säilyttäen demokratian.

vTaiwan-alusta on osoittanut että vastaava malli toimii: tekoäly nostaa esiin konsensusta rakentavia näkökulmia, ja 80% asioista on johtanut konkreettiseen toimenpiteeseen. Mehiläisistä inspiroitunut malli veisi tämän askelta pidemmälle: ei pelkkää konsensusta, vaan ajattelun syveneminen yhteiskehittämisessä.

Konkreettisesti tämä vaatisi tekoälyä, joka tunnistaa kommenttien suhteita: onko kommentti pelkkä “samaa mieltä” vai rakentaako se ideaa eteenpäin esittämällä uuden näkökulman, konkreettisen toteutustavan tai yhdistämällä kahta aiempaa ajatusta? Visualisoisin tämän verkostona, jossa näkyy ideoiden evoluutio. Haarautuva puu tai verkko jossa syvemmät keskustelut muodostavat tiheämpiä solmukohtia. Matemaattisesti tämä muistuttaa verkkoteoriaa: mitkä solmut toimivat siltoina eri ideoiden välillä, mitkä ovat kehityksen kuolleita päitä. Haaste on tehdä tästä niin yksinkertainen että jokainen osallistuja ymmärtää visuaalisen esityksen sekunneissa.

Alle olen tehnyt pienen demon, joka pyrkii esittelemään algoritmin ideaa hyvin kevyesti.

$$
i^* = \arg\max_{i: e_i \geq \theta} \sum_{c_j \in C_i} \phi(c_j)
$$

“Valitse se idea ($i$), jolla on riittävästi tanssijoita ($e$) JA korkein summa pyörähdyksiä ($\phi$).”

$i^*$ = voittajaidea
$i$ = yksittäinen idea
$e_i$ = montako on sitoutunut ideaan $i$
$\theta$ = Quorum-kynnys
$i: e_i \geq \theta$ = “tarkastellaan vain ideoita, jotka ovat saaneet vähintään $\theta$-määrän kannatusta”
$\sum$ = lasketaan kaikki yhteen
$c_j$ = kommentti numero $j$
$C_i$ = idean $i$ kaikki kommentit
$\phi(c_j)$ = kommentin paino eli “kuinka monta pyörähdystä tanssissa”
$\displaystyle\sum_{c_j \in C_i} \phi(c_j)$ = idean kokonaisvahvuus

Mehiläisalgoritmia voisi kutsua kardinaaliseksi quorumalgoritmiksi, joka soveltaa swarm intelligence -periaatetta päätöksentekoon. Sen erikoisuus on negatiivisten painojen käyttö (haasteet -2) ja quorum-ehtoisuus ($e_i ≥ θ$). Toisin kuin tavallinen äänestys (eniten ääniä voittaa) tai konsensus (kaikki samaa mieltä), tämä vaatii vain quorumin, kuten mehiläisparvessa, jossa ~15 mehiläistä riittää vaikka parvessa olisi tuhansia. Samantapaisia käytäntöjä on käytössä esim. vTaiwanissa, mutta tämä versio palkitsee erityisesti kehittämisestä eikä pelkästä kannatuksesta.

Vahvuusfunktio

Useimmat päätöksentekoalgoritmit optimoivat joko suosiota (montako kannattaa) tai laatua (kuinka vahvasti). Mehiläisparvi-algoritmin innovaatio on vaatia molemmat samanaikaisesti: riittävä määrä eri ihmisiä (quorum) JA korkea pistemäärä (vahvuus). Tämä estää kaksi klassista ongelmaa: spämmin ja populistisen idean suosion.

Idean $i$ vahvuus hetkellä $t$:

$$
S_i(t) = \sum_{c_j \in C_i(t)} \phi(c_j)
$$

missä:

$C_i​(t)$ = idean $i$ kaikki kommentit hetkellä $t$
$ϕ(c_j​)∈{−2,+2,+3,+4}$ = kommenttien paino

Tärkeää: $S_i∈Z$ ja voi olla negatiivinen. Se ei ole monotoninen: $S_i(t+1)$ voi olla $<S_i(t).$

Sitoutumisfunktio

Idean $i$ sitoutuneet käyttäjät:

$$e_i(t) = |E_i(t)|$$

missä:

$$E_i(t) = \{u \in U : \exists c = (u, i, \tau, w) \in C_i(t)\}$$

$e_i(t)$ = montako eri henkilöä on kommentoinut ideaa $i$
$E_i(t)$ = joukko käyttäjistä jotka ovat sitoutuneet ideaan $i$
$U$ = kaikkien käyttäjien joukko

Tärkeää: $e_i(t)$ on monotonisesti kasvava: $e_i(t+1) \geq e_i(t)$ kaikilla $t$. Kun käyttäjä on kerran sitoutunut, hän pysyy sitoutuneena.

Päätössääntö (rajoitettu optimointi)

$$i^* = \arg\max_{i \in I_{\text{valid}}} S_i(t)$$

missä hyväksyttävien ideoiden joukko:

$$I_{\text{valid}} = \{i \in I : e_i(t) \geq \theta\}$$

Alla olevassa esimerkissä $\theta = 3$. Idea voi siis voittaa vain jos vähintään 3 eri henkilöä on sitoutunut siihen.

Vertailu muihin menetelmiin

Plurality voting (eniten ääniä voittaa)

$$i^* = \arg\max_{i \in I} |V_i|$$

missä $V_i = \{u : u$ äänesti $i\}$.

Menetelmä valitsee idean, jolla on eniten ääniä. Ongelmana on että kaikki äänet ovat samanarvoisia riippumatta siitä, kuinka vahvasti henkilö kannattaa ideaa. Pieni, aktiivinen vähemmistö voi voittaa, koska menetelmä ei vaadi quorumia eikä huomioi äänten laatua.

Borda count

$$i^* = \arg\max_{i \in I} \sum_{u \in U} (n + 1 – r_u(i))$$

missä $r_u(i)$ = käyttäjän $u$ ranking idealle $i$.

Perustuu järjestysäänestykseen, jossa jokainen käyttäjä asettaa ideat paremmuusjärjestykseen. Jokaisen täytyy arvioida kaikki vaihtoehdot. Tämä suosii kompromisseja: keskinkertainen idea, joka on kaikkien listoilla kohtuullisella sijalla, voittaa usein vahvemman idean jolla on sekä innokkaimpia kannattajia että vastustajia.

Konsensus

$$i^* \text{ jos ja vain jos } e_i = |U| \text{ ja } S_i > 0$$

Menetelmä vaatii yksimielisyyttä. Yksi henkilö voi estää päätöksen, mikä johtaa jumitukseen tai liian laimeiden kompromissien etsimiseen.

Mehiläisparvi

$$i^* = \arg\max_{i: e_i \geq \theta} S_i$$

Ratkaisee ongelmat yhdistämällä quorum-vaatimuksen ja vahvuusmittarin.

Quorum takaa että päätös ei synny liian pienellä joukolla, mutta ei vaadi kaikkien osallistumista. Vahvuusmittari huomioi kommenttien laadun ja intensiteetin. Negatiiviset painot pakottavat vastaamaan kritiikkiin: idea joka kerää vain pinnallista kannatusta mutta ei kestä haastavia kysymyksiä, ei läpäise.

Mehiläisparvi-malli on ainoa näistä joka pystyy hylkäämään idean aktiivisesti ($S_i < 0$). Se sallii päätöksen syntymisen ilman täydellistä yksimielisyyttä, kuten biologinen mehiläisparvi jossa ~15 mehiläistä riittää päätökseen vaikka parvessa olisi satoja.

Optimointiongelman rakenne

Päätössääntö voidaan kirjoittaa kaksivaiheisena:

Vaihe 1: Suodata

$$I_{\text{valid}} = \{i : e_i \geq \theta\}$$

Vaihe 2: Optimoi

$$i^* = \arg\max_{i \in I_{\text{valid}}} S_i$$

Tämä on rajoitettu maksimointiongelma muotoa:

$$\max_{i} S_i \quad \text{s.t.} \quad e_i \geq \theta$$

missä rajoite on kokonaislukuehto (ei differentioituvissa).

Aikakompleksisuus:

Vaihe 1: $O(n)$ (tarkista jokainen idea)
Vaihe 2: $O(n)$ (etsi maksimi)
Yhteensä: $O(n)$ per päätös

Yhteenveto

Mehiläisparvi-malli tuo päätöksentekoon kaksiulotteisen valintakriteerin: ensin legitimiteetti (quorum), sitten optimointi (vahvuus). Se ei palkitse pelkkää suosiota eikä vaadi yksimielisyyttä, vaan valitsee idean, joka kestää kriittisen tarkastelun ja mobilisoi riittävän joukon ihmisiä.

__

Kirjoitettu tekoälyavusteisesti Claude.ai:ta hyödyntäen.

Heikkoudet nyt

Algoritmin kommenttien luokittelu toimii nyt pelkillä etukäteen määritellyillä avainsanoilla ja niiden painoarvot on asetettu mielivaltaisesti. Ammattikäytössä vaadittaisiin huomattavasti kehittyneempää LLM-pohjaista luokittelua. Kommenttien painoarvot tulisi kalibroida oikeasta käyttäjädatasta ja olla riippuvaisia kontekstista. Voisi myös miettiä onko tuore kommentti yhtä painava kuin kuukauden tai vuoden vanha verrokki.

Todellisessa käytössä kuka tahansa ei voi myöskään äänestää useammalla eri nimellä. Tämä mahdollisuus on rakennettu tähän ensimmäiseen demoon lähinnä havainnollistamaan toimintaa.

Seuraavat askeleet

Lähivaiheen kriittisin parannus on kommenttien luokittelun uudistaminen. Nykyinen sanapohjaisuus korvattaisiin LLM-pohjaisella luokittelulla, joka ymmärtää kontekstin ja rakentaa deliberatiivisen logiikan. Tavoite ei ole vain tunnistaa mitä sanottiin, vaan miten kommentti rakentuu edelliseen. Tämä on se ero mehiläistanssin laadun ja pelkän liikkeen välillä.

Seuraavassa vaiheessa algoritmi laajennetaan argumentaatioverkoksi. Jokainen kommentti linkittyy edelliseen, jolloin syntyy ajattelun evoluution kartta, haarautuva puu, jossa tiheät solmukohdat paljastavat missä ideat todella kehittyvät ja missä ne kuolevat. Pidemmällä tähtäimellä läpinäkyvyys on koko demokratisointiprojektin avain. Periaate siitä, että jokainen osallistuja voi tarkistaa miten päätös syntyi, vaatii selitettävää tekoälyä. Ilman sitä prosessi on juuri se musta laatikko, jonka välttäminen oli alusta asti tavoite.

Kaiken taustalla on kuitenkin kysymys, johon algoritmi ei vielä vastaa: kenen sitoutuminen painaa? Asiantuntijan haaste ja naapurin haaste ovat tällä hetkellä identtisiä. Jos tätä ei ratkaista, quorum voi täyttyä väärillä ihmisillä, ja silloin malli on demokraattinen muodollisesti mutta ei sisällöllisesti. Tämä ei ole vain tekninen ongelma. Se on poliittinen valinta, joka pitää tehdä tietoisesti ennen kuin järjestelmää viedään laajempaan käyttöön.

Yksi tapa kehittää voisi olla aloittaa jonkin kunnan tai organisaation jo olemassa olevasta osallistumisprosessista, vaikkapa budjettineuvottelusta tai strategian päivityksestä, jossa on valmiiksi mukana kymmeniä ihmisiä ja aito päätöksentekotarve. Pieni kehitystiimi, jossa on esimerkiksi ohjelmoija, yhteiskuntatieteilijä ja muotoilija, istuisi ensin seuraamaan yhtä tavallista kokousta ilman algoritmia, pelkästään oppiakseen miten keskustelu oikeasti etenee ja millaisia kommentit ovat luonteeltaan. Tämän pohjalta kalibroitaisiin luokittelu vastaamaan juuri tätä kontekstia, ei yleistä mallia. Seuraavassa tilaisuudessa algoritmi olisi taustalla reaaliajassa, ja perinteistä päätöstä verrattaisiin algoritmin tuotokseen. Vasta vertaamalla algoritmin ehdotusta ja ihmisten tekemää päätöstä nähtäisiin missä ne eroavat ja miksi. Tämä sykli, havainnointi, kalibrointi, rinnakkaisajo, vertailu, toistuisi kolmesta viiteen kertaan ennen kuin algoritmille annettaisiin todellista painoarvoa prosessissa.

Kun algoritmi saapui Kontuperään

Työporukkanne on kokoontunut virkistyspäiville Kontuperän kylään. Haluatte nauttia yhdessä Kontuperän ravintoloista, joita on peräti kolme kappaletta: Kontu-Sushi, Jaken kuningaspitsa ja naudanlihaa tarjoava Steakhouse. Vaihtoehdoissa on ongelmansa: Matilla on vakava kala-allergia, hän ei voi olla samassa tilassa kalan kanssa. Sari on keliaakikko, ja selvittänyt, ettei Jaken kuningaspitsa tarjoa  gluteiinitonta vaihtoehtoa. Priya on harras hindu, jolle lehmä on pyhä eläin ja Steakhouse ei käy.

Päätätte kokeilla olisiko kehittämästänne Mehiläisparvi-demon kokeiluversiosta jo apua päätöksenteossa:

Mehiläisparvi

Quorum: 3 sitoutunutta henkilöä → päätös syntyy!

Tilanne

Porukka: Matti (kala-allergia) | Sari (keliaakikko) | Priya (hindu) | Jukka | Anna

Quorum: 3 sitoutunutta henkilöä → päätös syntyy!

Lisää oma ratkaisu

Sushi-ravintola

Vahvuus: 0
Sitoutuneet: 0

Pitseria

Vahvuus: 0
Sitoutuneet: 0

Steakhouse

Vahvuus: 0
Sitoutuneet: 0

Tulokset (reaaliajassa)