Hypergrafové jádro strukturních rozpisů

Strukturní rozpisy na tomto webu nevznikají náhodným skládáním čísel, ale z hypergrafové analýzy reálných tahů. Program nejprve hledá, zda v historii existuje skutečná nenáhodná struktura, a teprve potom z ní odvozuje Jádrová čísla, dvojice a trojice.

Co je hypergraf

Obyčejný graf spojuje vždy jen dva uzly. Hypergraf umí jednou hyperhranou spojit více čísel najednou. To je pro loterie přirozenější, protože jeden tah není dvojice, ale celá k-tice čísel.

U hry 6 z 49 je jeden tah přirozeně šestice. V grafu by se musel rozpadnout na dvojice, v hypergrafu zůstane zachován jako jeden celek.

Proč je to důležité

  • neztrácí se informace o celém tahu
  • trojice, čtveřice a vyšší vazby se nepromění jen na páry
  • lze hledat latentní skupiny čísel i překryvy mezi nimi
  • výsledkem není jen seznam čísel, ale membership matice
Obyčejný graf vztahy se rozpadnou na dvojice 7 18 29 vidíme 3 dvojice, ale ne jeden celek Hypergraf celý tah zůstane jednou hyperhranou 7 18 29 zachována je přímo trojice / k-tice jako celek

Tři hlavní metody v HypergraphX

V programu jsou jako hlavní vědecké metody použity HySC, Hypergraph-MT a Hy-MMSBM. Každá se dívá na strukturu trochu jinak, ale všechny vracejí membership matici, tedy matici příslušností čísel ke skupinám.

HySC

Spektrální baseline

Rychlá tvrdší metoda, která dává první přehled, zda se v datech rýsuje hrubé členění. Hodí se jako výchozí orientace a kontrolní baseline.

  • rychlý přehled
  • spíše tvrdší rozdělení
  • dobré jako první kontrola signálu
Hypergraph-MT

Měkké překryvné komunity

Hlavní probabilistický model pro překryvné latentní komunity. Umožňuje, aby jedno číslo patřilo částečně do více skupin současně.

  • měkké membership hodnoty
  • překryvy mezi skupinami
  • vhodné pro jemnější struktury
Hy-MMSBM

Smíšený blokový model

Statistický model latentních bloků, který dovoluje smíšenou příslušnost. Je vhodný tam, kde čísla nejsou čistě jednoskupinová, ale nesou více rolí zároveň.

  • statistický blokový pohled
  • smíšené membership
  • dobré pro latentní blokovou strukturu
V programu jsou navíc ještě kontrolní/reference vrstvy: Motifs jako mikro-strukturní kontrola proti null modelu, a explicitní referenční metody A a B.

Membership matice: vlastní jádro celé analýzy

Výstupem hlavních metod není rovnou sázenkový sloupec, ale membership matice. Každý řádek odpovídá jednomu číslu a každý sloupec jedné latentní skupině G1, G2, G3, … Hodnota v buňce říká, jak silně dané číslo do příslušné skupiny patří.

Ukázková membership matice

Číslo G1 G2 G3
70,820,110,07
180,440,410,15
290,100,790,11
330,190,240,57

Jak to číst

  • 7 je silně jádrové číslo skupiny G1
  • 18 je překryvné číslo mezi G1 a G2
  • 29 je typické pro G2
  • 33 je typické pro G3
Přesně proto jsou hypergrafové modely cenné: nevrátí jen „ano/ne“, ale i míru příslušnosti a míru překryvu.

Jak z membership matice vznikají Jádrová čísla

V aktuální vědecké verzi programu se Jádrová čísla počítají přímo ze soft membership matice. Tvrdá partition už není povinný mezikrok. Každé číslo dostává score, které kombinuje čtyři složky:

Score Jádrového čísla
score = lift × membership × contrast × (1 + gap)
liftjak moc je číslo nad očekáváním
membershipjak silně patří do nejlepší skupiny
contrastjak jednoznačně patří právě tam
gaprozdíl top1 − top2 mezi skupinami
number-lift frekvenční nadbytek membership síla příslušnosti contrast + gap jednoznačnost čísla Jádrové číslo výstup rankingů
Jádrové číslo tedy není „náhodný favorit“, ale číslo, které je současně silné v membership, odlišené od jiných skupin a pokud je použit validační vzorek, také podpořené skutečným chováním v datech.

Jak vznikají dvojice a trojice

Stejnou logikou lze z membership matice počítat i dvojice a trojice. Program pro ně skládá společné score z pozorované četnosti, očekávané četnosti a ze společné příslušnosti ke skupině.

Score dvojice / trojice
score = smoothed_lift × membership_geom × contrast_geom

Význam složek

  • smoothed_lift = jak moc je kombinace nad očekáváním
  • membership_geom = jak silně je pár/trojice doma v téže skupině
  • contrast_geom = jak moc je to typické právě pro tuto skupinu

Praktický význam

Díky tomu nevznikají dvojice a trojice jen podle frekvence, ale jako kombinace statistického a strukturálního signálu.

V režimu bez překryvu se pak nebere jen první pár po pořadí, ale vybírá se globálně nejlepší vzájemně disjunktní množina.

Co je covering design v této souvislosti

Hypergrafová analýza sama o sobě ještě netvoří sázenkové sloupce. Nejprve vrátí strukturu: skupiny, membership, Jádrová čísla, dvojice a trojice. Teprve v dalším kroku lze tyto prvky převést do praktických řádků nebo do covering designu.

Jinak řečeno: hypergraf najde, která čísla a vazby jsou strukturálně silná, zatímco covering design řeší, jak tyto silné prvky rozumně rozložit do konečného počtu sloupců.
Hypergraf celé tahy jako k-tice Membership skupiny + překryvy Jádro, dvojice, trojice výběr nejsilnějších prvků Rozpis praktické sloupce

Kontrolní vrstva: motifs a null model

V programu je důležité i to, že nalezené struktury nejsou brány „na víru“. Výstupy se porovnávají proti null modelu a samostatná vrstva motifs sleduje lokální mikro-vzory v hypergrafu.

configuration modelnáhodný hypergraf se stejnou kostrou omezení
random shufflealternativní náhodná kontrola
motifslokální mikro-strukturní důkazy
stabilitashoda napříč restarty metod
Smyslem není jen „něco najít“, ale ověřit, zda je nalezená struktura silnější než náhoda a zda se rozumně opakuje napříč běhy metody.

Hypergrafová interpretace membership matice

Co jsou jádrová čísla, dvojice a trojice

V této větvi už nejde o klasické „tipování čísel“, ale o interpretaci latentní struktury nalezené v datech. Program nejprve odhadne měkkou membership matici a teprve nad ní dopočítá pořadí jednic, dvojic a trojic.

Co jsou jádrová čísla

Jádrová čísla jsou ta čísla, která mají v membership matici nejsilnější a zároveň nejcharakterističtější vazbu k některé latentní skupině. Nejde tedy o „nejčastější čísla“ v obyčejném smyslu, ale o čísla, která se v modelu jeví jako nejvíce strukturálně ukotvená.

Každý řádek membership matice odpovídá jednomu číslu a každý sloupec jedné latentní skupině. Pokud má například číslo v jednom sloupci výrazně vyšší hodnotu než v ostatních, je to signál, že do dané skupiny patří „tvrději“ než čísla rozplizlá mezi více skupin.

Co se u jednice sleduje
  • membership – jak silně číslo patří do své nejlepší skupiny,
  • contrast – jak moc je tato skupina lepší než ostatní,
  • gap top1-top2 – rozdíl mezi nejlepší a druhou nejlepší skupinou,
  • number-lift – zda se číslo ve validaci objevuje více, než by odpovídalo jednoduchému očekávání.
Smysl skóre

Čím vyšší je výsledné skóre, tím více je číslo současně typické pro konkrétní skupinu, méně rozmazané mezi více skupinami a případně i podpořené validačním vzorkem.

Zjednodušené skórování jednice
score(číslo) = smoothed_lift × membership × contrast × (1 + gaptop1-top2)

Prakticky řečeno: pokud je číslo nejen častější, ale zároveň „sedí“ velmi výrazně do jedné konkrétní skupiny, posouvá se v pořadí nahoru. Naopak čísla, která mají podobné membershipy ve více skupinách, působí spíše jako přechodová nebo překryvná a nebývají považována za jádro.

Číslo 14 jeden řádek membership matice membership v latentních skupinách [0.08, 0.71, 0.12, 0.09] top1 = 0.71 top2 = 0.12 gap = 0.59 výsledné jádrové číslo Číslo je „jádrové“, pokud má vysoké membership, vysoký kontrast vůči ostatním skupinám a současně jeho chování není v rozporu s validačním vzorkem.

Jak vznikají dvojice a trojice

U dvojic a trojic se nepoužívá jednoduché „sečtení bodů“ jejich členů. Program jde přímo přes membership matici a pro každou kandidátní kombinaci zjišťuje, jak silně tato kombinace drží pohromadě v jednotlivých skupinách.

Myšlenka je přirozená: pokud dvě nebo tři čísla opravdu náleží ke stejné latentní struktuře, měly by mít vysoké membershipy ve stejném sloupci. Proto se pro každou skupinu počítá součin membershipů všech členů kombinace.

Dvojice
contribg(i,j) = u(i,g) × u(j,g)

Dvojice je silná tam, kde obě čísla současně patří do stejné skupiny.

Trojice
contribg(i,j,k) = u(i,g) × u(j,g) × u(k,g)

Trojice je silná tehdy, když všechny tři prvky sdílejí stejnou latentní stopu.

Z těchto příspěvků se určí nejlepší skupina kombinace, její kontrast vůči ostatním skupinám a případně i podpora ve validačním vzorku. Program tak rozlišuje kombinace, které jsou opravdu strukturální, od kombinací, které vypadají dobře jen náhodou.

Zjednodušené skórování dvojic a trojic
score(kombinace) = smoothed_lift × membership_geom × contrast
kde membership_geom vychází z přímé kombinace membershipů všech prvků v dané skupině.
Dvojice 7 + 14 membership obou čísel se násobí po skupinách příspěvky dvojice v jednotlivých skupinách [0.01, 0.29, 0.03, 0.02] nejlepší skupina = G2 contrast vysoký G2 dominuje finální silná dvojice v rankingu Stejný princip se použije i pro trojice. Rozdíl je pouze v tom, že se násobí tři membershipy místo dvou. Tak vznikají kombinace, které nejsou jen „časté“, ale hlavně vnitřně soudržné v latentní struktuře.

Důležitá poznámka k překryvům

Program umí pracovat ve dvou režimech:

  • S překryvy – stejné číslo se může objevit ve více silných dvojicích či trojicích.
  • Bez překryvů – program hledá globálně nejlepší navzájem disjunktní množinu kombinací, aby se čísla neopakovala.

Režim bez překryvů není jen jednoduché „vezmi první shora“. Je to přesnější optimalizační krok, který vybírá nejlepší celou sadu kombinací jako celek.