JAVASLAT A TOP-K ELEMCSERÉK KERESÉSÉRE NAGY ONLINE KÖZÖSSÉGEKBEN

Hasonló dokumentumok
JAVASLAT A TOP-K ELEMCSERÉK KERESÉSÉRE NAGY ONLINE KÖZÖSSÉGEKBEN

Algoritmuselmélet 2. előadás

Számítógép és programozás 2

Algoritmusok bonyolultsága

Online migrációs ütemezési modellek

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 4. kurzus. 3. Előadás: A mohó algoritmus

Adatszerkezetek I. 7. előadás. (Horváth Gyula anyagai felhasználásával)

A digitális számítás elmélete

Általános algoritmustervezési módszerek

Funkcionálanalízis. n=1. n=1. x n y n. n=1

Algoritmusok Tervezése. 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás

Problémamegoldás kereséssel. Mesterséges intelligencia március 7.

Rendezések. A rendezési probléma: Bemenet: Kimenet: n számot tartalmazó (a 1,a 2,,a n ) sorozat

Minimális feszítőfák Legyen G = (V,E,c), c : E R + egy súlyozott irányítatlan gráf. Terjesszük ki a súlyfüggvényt a T E élhalmazokra:

Programozási módszertan. Mohó algoritmusok

bármely másikra el lehessen jutni. A vállalat tudja, hogy tetszőlegesen adott

Ütemezési problémák. Kis Tamás 1. ELTE Problémamegoldó Szeminárium, ősz 1 MTA SZTAKI. valamint ELTE, Operációkutatási Tanszék

Teljesen elosztott adatbányászat pletyka algoritmusokkal. Jelasity Márk Ormándi Róbert, Hegedűs István

A számítástudomány alapjai. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem

Approximációs algoritmusok

Teljesítmény Mérés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés / 20

Adaptív dinamikus szegmentálás idősorok indexeléséhez

Adatszerkezetek. Nevezetes algoritmusok (Keresések, rendezések)

Kiegészítő részelőadás 1. Az algoritmusok hatékonyságának mérése

Diverzifikáció Markowitz-modell MAD modell CAPM modell 2017/ Szegedi Tudományegyetem Informatikai Intézet

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék

Adatszerkezetek 7a. Dr. IványiPéter

Gyakori elemhalmazok kinyerése

Programozás alapjai 9. előadás. Wagner György Általános Informatikai Tanszék

9. előadás. Programozás-elmélet. Programozási tételek Elemi prog. Sorozatszámítás Eldöntés Kiválasztás Lin. keresés Megszámolás Maximum.

angolul: greedy algorithms, románul: algoritmi greedy

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.

Gauss elimináció, LU felbontás

17. A 2-3 fák és B-fák. 2-3 fák

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

Előítéletesség a szabadúszóknak szóló online piactereken. Aniko Hannak Claudia Wagner

Szimuláció RICHARD M. KARP és AVI WIGDERSON. (Készítette: Domoszlai László)

Gyakori elemhalmazok

Programozási segédlet

EGÉSZSÉG-GAZDASÁGTAN

Online algoritmusok. Algoritmusok és bonyolultságuk. Horváth Bálint március 30. Horváth Bálint Online algoritmusok március 30.

álló algoritmusosztályok. Approximációs algoritmusoknak egy olyan algoritmust. Minden algoritmusnak polinomiális idejűnek kell

OOP. #6 (VMT és DMT) v :33:00. Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj.

R ++ -tree: an efficient spatial access method for highly redundant point data - Martin Šumák, Peter Gurský

2018, Diszkrét matematika

Számelméleti alapfogalmak

Az optimális megoldást adó algoritmusok


A félév során előkerülő témakörök

5/1. tétel: Optimalis feszítőfák, Prim és Kruskal algorithmusa. Legrövidebb utak graphokban, negatív súlyú élek, Dijkstra és Bellman Ford algorithmus.

A sorozat fogalma. függvényeket sorozatoknak nevezzük. Amennyiben az értékkészlet. az értékkészlet a komplex számok halmaza, akkor komplex

Minimális feszítőfák Legyen G = (V,E,c), c : E R + egy súlyozott irányítatlan gráf. Terjesszük ki a súlyfüggvényt a T E élhalmazokra:

Metrikus terek, többváltozós függvények

Nagyságrendek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz. Friedl Katalin BME SZIT február 1.

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

A lineáris programozás alapjai

Nagy Gábor compalg.inf.elte.hu/ nagy

Véletlenszám generátorok és tesztelésük HORVÁTH BÁLINT

A programozás alapjai előadás. [<struktúra változó azonosítók>] ; Dinamikus adatszerkezetek:

Adatszerkezetek 2. Dr. Iványi Péter

Algoritmuselmélet 18. előadás

A Szállítási feladat megoldása


4: Az IP Prefix Lookup Probléma Bináris keresés hosszosztályok alapján. HálózatokII, 2007

Vektorterek. Több esetben találkozhattunk olyan struktúrával, ahol az. szabadvektorok esetében, vagy a függvények körében, vagy a. vektortér fogalma.

Számítógép és programozás 2

Algoritmizálás, adatmodellezés tanítása 8. előadás

Elmaradó óra. Az F = (V,T) gráf minimális feszitőfája G-nek, ha. F feszitőfája G-nek, és. C(T) minimális

1. Generátorrendszer. Házi feladat (fizikából tudjuk) Ha v és w nem párhuzamos síkvektorok, akkor generátorrendszert alkotnak a sík vektorainak

Adatszerkezetek 1. előadás

1: Bevezetés: Internet, rétegmodell Alapok: aszimptótika, gráfok. HálózatokII, 2007

RSA algoritmus. P(M) = M e mod n. S(C) = C d mod n. A helyesség igazoláshoz szükséges számelméleti háttér. a φ(n) = 1 mod n, a (a 1,a 2,...

Csima Judit október 24.

Algoritmusok és adatszerkezetek I. 1. előadás

Tartalomjegyzék. Köszönetnyilvánítás. 1. Az alapok 1

Ugrólisták. RSL Insert Example. insert(22) with 3 flips. Runtime?

Térinformatikai algoritmusok Elemi algoritmusok

1. Házi feladat. Határidő: I. Legyen f : R R, f(x) = x 2, valamint. d : R + 0 R+ 0

Újfajta, automatikus, döntési fa alapú adatbányászati módszer idősorok osztályozására

Nagy Gábor compalg.inf.elte.hu/ nagy

Sorozatok. 5. előadás. Farkas István. DE ATC Gazdaságelemzési és Statisztikai Tanszék. Sorozatok p. 1/2

egy szisztolikus példa

Számításelmélet. Második előadás

Hozzárendelés, lineáris függvény

é é ő í é é ü é ü í é ó é é ó ü é é ú Ö é é í ö ó ó é é é é é é ű ö é ö ö é ó ú ő ő é ö é ö é ó ő é ü é é ő ő ö é í í ő é ó ö é é é é ö ú é ő ó é é ő

Keresés képi jellemzők alapján. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék

FÜGGVÉNYEK. A derékszögű koordináta-rendszer

Dinamikus programozás vagy Oszd meg, és uralkodj!

Regresszió. Csorba János. Nagyméretű adathalmazok kezelése március 31.

definiálunk. Legyen egy konfiguráció, ahol és. A következő három esetet különböztetjük meg. 1. Ha, akkor 2. Ha, akkor, ahol, ha, és egyébként.

Logika es sz am ıt aselm elet I. r esz Logika Negyedik el oad as 1/26

Összetett programozási tételek Rendezések Keresések PT egymásra építése. 10. előadás. Programozás-elmélet. Programozás-elmélet 10.

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék

Stay calm. You re covered. A DrivePro szolgáltatások Önnek is segítenek az élvonalban maradni

Készítette: Trosztel Mátyás Konzulens: Hajós Gergely

Nagyordó, Omega, Theta, Kisordó

Dinamikus programozás II.

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

Visszalépéses keresés

Átírás:

JAVASLAT A TOP-K ELEMCSERÉK KERESÉSÉRE NAGY ONLINE KÖZÖSSÉGEKBEN Supporting Top-k item exchange recommendations in large online communities Barabás Gábor Nagy Dávid Nemes Tamás

Probléma Cserekereskedelem nagy online közösségekben Online fórumon Kézi keresés nehéz Hasonló értékű tárgyra Újabb és újabb felmerülő igények

Igény Felesleges és hiányzó eszközök nyilvántartása Automatikus cserék ajánlása Hasonló értékű eszközök Friss lista => gyakori frissítés Példák: Schede, iswap, Gumtree (valódi) FrontierVille (virtuális)

Ötlet és kihívások Ajánlások: lehetséges cserék csoportja k legelőnyösebb (top-k) Mindkét fél számára megfelelő cserék legyenek NP-teljes probléma Valós idejű frissítés sok frissítés lehetséges egyszerre

Módszerek Circular Single-item Exchange Model (CSEM) 1 tárgy cseréje kört határoz meg Hátrány: tárgyaknak nincs értéke 1 tárgy cseréje nem elég hatékony csere csak akkor ha mindenki elfogadja

Módszerek Binary Value-based Exchange Model (BVEM) több tárgy csere két felhasználó között akkor, ha közel azonos értékűek a felajánlott tárgyak Jó alapötlet Kiegészítése a Top-K Csere Ajánlás (Top- K Exchange Recommendation)

BVEM példa

BVEM n felhasználó: U = {u 1,, u n } m tárgy: O = {I 1,, I m } v j : I j ára 2 lista minden felhasználónak: L i : szükségtelen W i : szükséges ( vágyott )

BVEM O O V(O ): O -beli tárgyak összértéke E = (u i, u l, S i, S l ): csere u i és u l között (S i L i és S l L l ) G(E, u i ) = V(S l ): u i nyeresége (a kapott elemek összértéke)

Megfelelő cserepár E = (u i, u l, S i, S l ) csere megfelelő, ha u i -nek szüksége van minden u l által felajánlott elemre és fordítva (S i W l és S l W i ) a 2 felhasználó haszna közötti eltérés egy határon belül van β V(S i ) V(S l ) β 1 V(S i ), ahol 0 < β 1

Maximális hasznú cserepár Tfh. mindenki maximalizálni akarja a hasznát E csere pár maximális, ha minden más E cserére: G(E, u i ) G(E, u i ) és G(E, u l ) G(E, u l )

Top-K Csere Ajánlás Top(k,i): u i felhasználó k legértékesebb (maximális hasznú) E (u i, u l ) cserepárja k különböző felhasználóval Probléma: L i vagy W i lista módosításakor Top(k,j) listák frissítése minden u j felhasználónál

Két felhasználó közötti csere u i és u l között a maximális hasznú cserepár meghatározása Top-1 két felhasználó között (T1U2) Bonyolultság: exponenciálisan nő a listák (L i és W i ) növekedésével

Két felhasználó közötti csere

Két felhasználó közötti csere S* optimális (maximális) cserepár 2 Li Wl és 2 Wi Ll részhalmazok kiszámítása Minden részhalmaz párt megvizsgál és kiválasztja a maximális hasznút az S*-ba Futási idő: O( S i 2 Si + S l 2 Sl )

ε-közelítő módszer A haszon nem rosszabb E*-nál 1-ε nal, ahol E* maximális hasznú cserepár A brute-force T1U2 a részhalmazok kiszámítása miatt költséges Ötlet: csak néhány kombináció közelítő értékekkel γ (O )

ε-közelítő módszer f(x) kerekítő függvény v max, v min : maximális és minimális érték bármilyen nem üres tárgy kombinációnak ε: hibatűrés paramétere N: tárgyak maximális száma f O = logv min logv(o ) log (1 ε N )

ε-közelítő módszer érték lbi lb ubi ub AVT[0] 0 0 0 0 0 v 1 = 2, v 2 = 2, v 3 = 3 m az a minimális egész, melyre v min (1 ε N ) 1 (1 ε/n) 1 = 2 és v min = 1

ε-közelítő módszer érték lbi lb ubi ub AVT[0] 0 0 0 0 0 AVT[1] 2 {I1} 2 {I1} 2

ε-közelítő módszer érték lbi lb ubi ub AVT[0] 0 0 0 0 0 AVT[1] 2 {I1} 2 {I1} 2 AVT[2] 4 {I1,I2} 4 {I1,I2} 4

ε-közelítő módszer érték lbi lb ubi ub AVT[0] 0 0 0 0 0 AVT[1] 2 {I1} 2 {I1} 2 AVT[2] 4 {I1,I2} {I3} 4 3 {I1,I2} 4

ε-közelítő módszer érték lbi Lb ubi ub AVT[0] 0 0 0 0 0 AVT[1] 2 {I1} 2 {I1} 2 AVT[2] 4 {I1,I2} {I3} 4 3 {I1,I2} 4 AVT[3] 8 {I1,I3} 5 {I1,I3} 5

ε-közelítő módszer érték lbi lb ubi ub AVT[0] 0 0 0 0 0 AVT[1] 2 {I1} 2 {I1} 2 AVT[2] 4 {I1,I2} {I3} 4 3 {I1,I2} 4 AVT[3] 8 {I1,I3} 5 {I1,I3} {I1,I2,I3} 5 7

Cserepár keresés AVT-n Algoritmus: hogyan találhatunk ε-közelítő cserepárokat u i és u l számára egyszerre Lineáris időben adja vissza az ε-közelítő optimális Top-K cserepárokat bármely két felhasználó között (az algoritmus komplexitása O(N2), de csökkenthetjük O(N)-re ha minden bejegyzést a közelítő érték csökkenő sorrendjében és a szkennelő bejegyzéseket fentről-lefelé rendezzük)

Cserepár keresés AVT-n AVT 1 W i L l -en és AVT 2 L i W l en Minden AVT 1 [m] AVT 1 és AVT 2 [n] AVT 2 párra: ha β AVT 1 m.ub AVT 2 n.lb 1 β : (1 β) és β AVT 2 n.ub AVT 1 m.lb generálja le a cserepárokat u i -nek és u i -nek

Általános Top-K csere Minden egyes u i, u l user párra két közelítő értéktábla AVT il és AVT li és frissül W i L l és L i W l szerint Folyamatos frissítés nem működik Túl nagy memória igény: U U 1 közelítő értéktáblázat

Általános Top-K csere Dinamikus frissítés helyett könnyű súlyú indexek u i listájának módosítása esetén csak az érintett u l felhasználók Top-K listáinak frissítése Kritikus tárgy halmaz meghatározásával

Kritikus tárgy halmaz Adott u i felhasználó W i tárgy listája esetén a tárgyak O W i alcsoportja egy kritikus alcsoportot alkot, ha V(W i ) V(O ) < G(u i, Top(k, i)), azaz O alcsoport kritikus W i szempontjából, ha a többi W i -ben lévő elem összértéke nem nagyobb mint u i jelenlegi optimális haszna Jelölés: K i

Kritikus tárgy halmaz Csak akkor kell újra számolni a T1U2 cserét u i és u l között a Top(k, i) t frissítéséhez, ha u l legalább egy kritikus elemét tartalmazza u i nek és fordítva CL(I j ) tartalmazza azokat a felhasználókat, akiknél I j a kritikus elemek között van és UL(I j ) tartalmazza azokat a felhasználókat, akiknél I j a szükségtelen elemek között van

Általános Top-K frissítés ha van egy frissítés a W i listán, akkor a rendszer megkap egy lehetséges felhasználó csoportot a fordított listákról és kiszámolja a T1U2 cserét

Tárgy beszúrása újraszámolja a T1U2 cseréket I j beillesztése u i -hez W i -be: UL(I j ) megadja CU-t: jelöltek (akik érintettek lehetnek) minden u l eleme CU -ra: ha u i -nak van u l egy kritikus eleme vagy fordítva, akkor: Cserepár keresése AVT-n

Tárgy törlése Törlés drága lehet Top-κ cserepárok megtartása minden u i user számára (κ > k) Ha a cserepárok egyike E Top(κ, l) eltávolítódik I j W i törlése által, a cserelista nem frissül azonnal, hanem új T1U2 u i és u l között Ha az új optimális csere Top(κ, l) marad, akkor beilleszti, egyébként csökkenti a κ-t 1-el Top(κ, l) kiszámítását elhalasztja addig, amíg u l új elemet szúr be vagy κ < k

Tesztelés Szintetikus adatokon Valódi adatokon ebay.com 90 napig 34191 felhasználó 452774 tárgy 1094152 tranzakció

Tesztelés Kívánt és szükségtelen listák a vásárolt és eladott elemekből Kicsit alakítottak rajta, eredmény: 2458 felhasználó és 2769 tárgy

Tesztelés

Tesztelés

Köszönjük a figyelmet!