SlideShare a Scribd company logo
1 of 33
Download to read offline
Tartalomgazdagítás
szövegbányászattal
Linked Open Data felhasználása
ajánlórendszerekben
Dr. Tikk Domonkos, CEO
@domonkostikk
Vázlat
• Ajánlórendszerek és motiváció
• Tartalomgazdagítás szükségessége
• Szemantikus háló alapú technológia
• Hol van szükség szövegbányászatra
Tartalomgazdagítás szövegbányászattal
Tartalomgazdagítás szövegbányászattal
Ajánlórendszerek és
motiváció
Ajánlórendszerek
• Kollaboratív filtering
 felhasználók tartalmakkal való
interakciói alapján működik
o interakciók hasonlóság
o látens modellek közelsége
• Tartalom alapú szűrés
 tartalmak leírói alapján
működik
o tartalmak hasonlósága
o felhasználó történetére vetítve
Tartalomgazdagítás szövegbányászattal
Kollaboratív filtering vs. tartalom alapú szűrés
+ pontosabb
+ doménfüggetlen
– indulásnál nem működik
– nehezen magyarázható
+ kevés adat esetén is működik
+ jól magyarázható
– doménfüggő
– pontatlanabb
– bezártság
Tartalomgazdagítás szövegbányászattal
Motiváció
• Hagyományos tartalom keresési és felfedezési módszerek nem
kielégítőek a mai tartalomrengetegben
Tartalomgazdagítás szövegbányászattal
Cél
• Műsorinformáció + videotéka információ és felhasználói viselkedés
alapján releváns tartalmak ajánlása
Tartalomgazdagítás szövegbányászattal
Tartalomgazdagítás szövegbányászattal
Tartalomgazdagítás
Milyen adatok állnak rendelkezésre?
• Hagyományos TV operátornál
 Mtelekom
 UPC
Adatok: cím, gyártási év, leírás,
rendező, főszereplők, sorozat, stb.
• Videomegosztó oldalak
 Youtube
 Dailymotion
Adatok: cím, feltöltő, leírás,
feltöltés adatai, kategória, hossz,
stb.
Tartalomgazdagítás szövegbányászattal
A metaadatok függenek az entitás típusától
• A TV programokban különböző entitások vannak jelen:
 Film (The Shining)
 Sorozat (Six Feet Under)
 Rendező (Stanley Kubrick)
 Foci csapat (Manchester United F.C.)
 Különböző sportemberek (Federer – Djokovic)
 Talk-show házigazda (Steven Colbert)
• Doménfüggő a fenti entitásokhoz tartozó metaadatok típusa:
 film: kiadási év, cím, rendező(k), színész(ek) stb.
 színész: név, születési hely és idő, stb.
 TV sorozat: évad, epizód
 Foci csapat: játékosok, székhely stb.
Tartalomgazdagítás szövegbányászattal
„One size fits all”?
Tartalomgazdagítás szövegbányászattal
„One size fits all” – miért nem működik
• A metaadatüzlet is 20/80-as elv szerint működik
 Tartalom 20%-a „gazdag” metaadatban (TOP csatornák), 80% csak
a költségeket fedezik
 Ajánlásnak 100%-nak kell lennie a teljes spektrumon!!!
• EPG és videotéka katalógusok más forrásból jönnek, de egységesen
kell kezelni őket
• Más megoldások kellenek a különböző szolgáltatástípusok esetén
 IPTV és OTT megoldások
 Videomegosztó oldalak (felhasználói tartalom)
Tartalomgazdagítás szövegbányászattal
Hol találhatók a metaadatok?
• A metaadatok különböző ún. Linked Open Data (LOD) adatbázisokban
vannak:
 Filmek: Freebase, IMDB, LinkedMDB, TheTVDB
 Sport: Freebase, DBPedia
 Személyek: DBpedia, Freebase
 Zene: Magnatune, Musicbrainz
 Termékek: POD (Product Open Data)
Tartalomgazdagítás szövegbányászattal
Tartalomgazdagítás szövegbányászattal
Szemantikus háló alapú
technológia
Gravity Metaadat architektúra
• Fő tulajdonságok
 TV-s és videotéka tartalmak egységek kezelése és összekapcsolása
 Többnyelvű tartalomfeldolgozás
o Nyelvfüggő (cím, leírás)
o Nyelvfüggetlen (szereplő, műfaj, epizódszám)
 Több adatbázis együttes kezelése
 Skálázódás
Tartalomgazdagítás szövegbányászattal
Szemantikus háló
• Hogyan tárolhatóak illetve modellezhetők egységesen egy adott
entitáshoz tartozó tulajdonságok:
 Resource Description Framework (RDF) az adatmodellezésre lett
kitalálva
 Az RDF alany – állítás – tárgy hármasokban írja le a világot
subject: <http://rdf.freebase.com/ns/m.02vyptn>
predicate: <http://rdf.freebase.com/ns/film.film.written_by>
object: <http://rdf.freebase.com/ns/m.016hvl>
Tartalomgazdagítás szövegbányászattal
Apache Stanbol
• hagyományos CMS adatbázisok kiegészítése szemantikus
szolgáltatásokkal
Tartalomgazdagítás szövegbányászattal
LOD integrálása: EntityHub modullal
• Entityhub (/entityhub): entitások lokális kezelését teszi lehetővé,
amelyeket külső site-okról (LOD) is lehetnek importálva.
• Site Manager (/entityhub/sites): A SiteManager egységesített
csatlakozási felületet kínál a kezelt LOD-okhoz. Egy adott lekérdezés
az összes megkapcsolt LOD végponthoz továbbítja a kérést.
• Sites (/entityhub/site/{siteId}): egy konkrét LOD-hoz
(entitásszolgáltatóhoz) való integráció
 ReferencedSite: Külső szolgáltató. Lokális caching és indexelést is
támogat, ezért nem kell mindig kapcsolódni a külső LOD-hoz, csak
ha az cache-ben nincs meg az adat.
 ManagedSite: saját entitás menedzselés
Tartalomgazdagítás szövegbányászattal
EntityHub
Tartalomgazdagítás szövegbányászattal
Gravity Metaadat motor
• LOD integrálása: RDF mapping definiálása, ha nem létezik
• ReferencedSite definiálása minden integrálandó LOD-hoz
 lokál cache létrehozása, ha a LOD támogatja ezt (teljes adatbázis
dump)
 ahol nincs támogatva (csak egyedi lekérések), ott a ReferencedSite
cache-ét használjuk
• Névelemek azonosítására Stanbol Enhancer használata
Tartalomgazdagítás szövegbányászattal
Stanbol Enhancer
Tartalomgazdagítás szövegbányászattal
Enhancer használata
Tartalomgazdagítás szövegbányászattal
Adattárolás
• Nagy méretű adatbázisok (Freebase: 400M triplet)
• Skálázható háttéradatbázisként: Titan DB
 Elosztott gráf adatbázis, ami RDF adatbázisként is használható a
GraphSail interfészen keresztül
 HBase és Cassandra backendet támogat
• Jelenleg 2 csomópontból álló Hadoop klasztert használunk HBase-zel
• 50 konkurens folyamat kiszolgálására bőven elég
• Faunus gráfelemző motort használunk az adatok betöltésére
 100M adat betöltése csak 3 óra
Tartalomgazdagítás szövegbányászattal
Tartalomgazdagítás szövegbányászattal
Hol használunk
szövegbányászatot?
Szövegbányászati feladatok
• Névelemek felismerése
• Névelemek egyértelműsítése
• Névelemek tulajdonságainak meghatározása
• Inkonzisztens adatok egyértelműsítése
Tartalomgazdagítás szövegbányászattal
Névelemek felismerése
• Szabad szövegben meghatározni, hogy melyek azok az entitások,
amelyek érdekesek lehetnek számunkra
 Szótár alapú megközelítés
o Függ az adat minőségétől
o Melyik adatforrásokat akarjuk felhasználni?
 Szekvenciatanulás alapú megközelítés
o HMM, CRF
o Mennyire érzékeny a rendszer a hibára?
• Stanbol Enhancer
Tartalomgazdagítás szövegbányászattal
Névelemek egyértelműsítése
• Adott egy entitás, melyik LOD-entitásra lehet leképezni
• Melyik LOD-adatbázisban kell keresni?
 Szolgáltató függő adatséma
 nem egységes lekérdezés
o Apache Marmotta: Linked Data Client
o Standard RDF formátumra alakítja a LOD-ok egyedi válaszformátumát
o Ezután a Marmotta LOD cache-ét lehet használni
• Szükség van az adat szemantikájára
 rendező, filmszínész, stb. – különben nagyon zajos lesz a
lekérdezés eredménye
Tartalomgazdagítás szövegbányászattal
Hasonlóság
• Mely tulajdonságok határoznak meg egyértelműen adott filmet?
 Cím:
o Revolver (2005) vs Revolver (1991)
o The Bourne Identity (2002) vs The Bourne Identity (1988)
 Cím + Kiadás Éve:
o The Bourne Identity (2002) vs A Bourne-rejtély (2002)
o Terminator (1984) vs Terminátor - A halálosztó (1984)
 Kiadás Éve + Rendező:
o Elég jó, de még mindig nem feltétlenül egyértelmű
− Elírási hibák: Jonnie vs Johnny
− Különböző kiadási év:
− tényleges kiadási év (2007) vs vetítési év az adott országban (2008)
Tartalomgazdagítás szövegbányászattal
Hasonlóság
• Létrehozunk egy vektort: v = [kiadási év, rendező, vetítési idő]
v1 = [1999, ['Steven', 'Allan', 'Spielberg''], 120]
v2 = [1999, ['Stanley', 'Kubrick'], 118]
v3 = [1999, ['Steven', 'Spielberg'], 115]
• Két vektor tavolsága:
|| v_src – v_target ||_2
• A különbség két név között:
['Steven', 'Allan', 'Spielberg''] - ['Steven', 'Spielberg']
 Egyszerű megoldás: | halmaz(A)  halmaz(B) |
 Komplexebb megoldás: ∑ min(Levenshtein távolság(a_i,b))
Tartalomgazdagítás szövegbányászattal
Névelemek tulajdonságainak meghatározása
• Ha már adott a LOD adatbázis és a lekérdezés, akkor SPARQL
lekérdezéssel megkaphatók az entitás tulajdonságai
• Simple Protocol and RDF Query Language (SPARQL)
• SQL-szerű RDF lekérdező nyelv
• A SPARQL lekérdezések triple mintákból, konjunkciókból,
diszjunkciókból és opcionális mintákból állnak
• A lekérdezés szétosztható több SPARQL végponthoz (szolgáltatások,
melyek fogadják SPARQL lekérdezéseket és eredményt adnak vissza),
kiszámolja, és összegyűjti az eredményt
Tartalomgazdagítás szövegbányászattal
SPARQL – 1. példa
• Woody Allennel egy filmben szereplő színészek:
Tartalomgazdagítás szövegbányászattal
SPARQL – 2. példa
• Olyan színészek, akik Stanley Kubrick és Steven Spielberg filmben is
szerepeltek
Tartalomgazdagítás szövegbányászattal
Köszönöm!
www.gravityrd.com
Legfrissebb hírek:
www.facebook.com/gravityrd
Dr. Tikk Domonkos
CEO
Tel: +36 30 5470780
tikk.domonkos@gravityrd.com

More Related Content

Tartalomgazdagítás (content enrichment)

  • 1. Tartalomgazdagítás szövegbányászattal Linked Open Data felhasználása ajánlórendszerekben Dr. Tikk Domonkos, CEO @domonkostikk
  • 2. Vázlat • Ajánlórendszerek és motiváció • Tartalomgazdagítás szükségessége • Szemantikus háló alapú technológia • Hol van szükség szövegbányászatra Tartalomgazdagítás szövegbányászattal
  • 4. Ajánlórendszerek • Kollaboratív filtering  felhasználók tartalmakkal való interakciói alapján működik o interakciók hasonlóság o látens modellek közelsége • Tartalom alapú szűrés  tartalmak leírói alapján működik o tartalmak hasonlósága o felhasználó történetére vetítve Tartalomgazdagítás szövegbányászattal
  • 5. Kollaboratív filtering vs. tartalom alapú szűrés + pontosabb + doménfüggetlen – indulásnál nem működik – nehezen magyarázható + kevés adat esetén is működik + jól magyarázható – doménfüggő – pontatlanabb – bezártság Tartalomgazdagítás szövegbányászattal
  • 6. Motiváció • Hagyományos tartalom keresési és felfedezési módszerek nem kielégítőek a mai tartalomrengetegben Tartalomgazdagítás szövegbányászattal
  • 7. Cél • Műsorinformáció + videotéka információ és felhasználói viselkedés alapján releváns tartalmak ajánlása Tartalomgazdagítás szövegbányászattal
  • 9. Milyen adatok állnak rendelkezésre? • Hagyományos TV operátornál  Mtelekom  UPC Adatok: cím, gyártási év, leírás, rendező, főszereplők, sorozat, stb. • Videomegosztó oldalak  Youtube  Dailymotion Adatok: cím, feltöltő, leírás, feltöltés adatai, kategória, hossz, stb. Tartalomgazdagítás szövegbányászattal
  • 10. A metaadatok függenek az entitás típusától • A TV programokban különböző entitások vannak jelen:  Film (The Shining)  Sorozat (Six Feet Under)  Rendező (Stanley Kubrick)  Foci csapat (Manchester United F.C.)  Különböző sportemberek (Federer – Djokovic)  Talk-show házigazda (Steven Colbert) • Doménfüggő a fenti entitásokhoz tartozó metaadatok típusa:  film: kiadási év, cím, rendező(k), színész(ek) stb.  színész: név, születési hely és idő, stb.  TV sorozat: évad, epizód  Foci csapat: játékosok, székhely stb. Tartalomgazdagítás szövegbányászattal
  • 11. „One size fits all”? Tartalomgazdagítás szövegbányászattal
  • 12. „One size fits all” – miért nem működik • A metaadatüzlet is 20/80-as elv szerint működik  Tartalom 20%-a „gazdag” metaadatban (TOP csatornák), 80% csak a költségeket fedezik  Ajánlásnak 100%-nak kell lennie a teljes spektrumon!!! • EPG és videotéka katalógusok más forrásból jönnek, de egységesen kell kezelni őket • Más megoldások kellenek a különböző szolgáltatástípusok esetén  IPTV és OTT megoldások  Videomegosztó oldalak (felhasználói tartalom) Tartalomgazdagítás szövegbányászattal
  • 13. Hol találhatók a metaadatok? • A metaadatok különböző ún. Linked Open Data (LOD) adatbázisokban vannak:  Filmek: Freebase, IMDB, LinkedMDB, TheTVDB  Sport: Freebase, DBPedia  Személyek: DBpedia, Freebase  Zene: Magnatune, Musicbrainz  Termékek: POD (Product Open Data) Tartalomgazdagítás szövegbányászattal
  • 15. Gravity Metaadat architektúra • Fő tulajdonságok  TV-s és videotéka tartalmak egységek kezelése és összekapcsolása  Többnyelvű tartalomfeldolgozás o Nyelvfüggő (cím, leírás) o Nyelvfüggetlen (szereplő, műfaj, epizódszám)  Több adatbázis együttes kezelése  Skálázódás Tartalomgazdagítás szövegbányászattal
  • 16. Szemantikus háló • Hogyan tárolhatóak illetve modellezhetők egységesen egy adott entitáshoz tartozó tulajdonságok:  Resource Description Framework (RDF) az adatmodellezésre lett kitalálva  Az RDF alany – állítás – tárgy hármasokban írja le a világot subject: <http://rdf.freebase.com/ns/m.02vyptn> predicate: <http://rdf.freebase.com/ns/film.film.written_by> object: <http://rdf.freebase.com/ns/m.016hvl> Tartalomgazdagítás szövegbányászattal
  • 17. Apache Stanbol • hagyományos CMS adatbázisok kiegészítése szemantikus szolgáltatásokkal Tartalomgazdagítás szövegbányászattal
  • 18. LOD integrálása: EntityHub modullal • Entityhub (/entityhub): entitások lokális kezelését teszi lehetővé, amelyeket külső site-okról (LOD) is lehetnek importálva. • Site Manager (/entityhub/sites): A SiteManager egységesített csatlakozási felületet kínál a kezelt LOD-okhoz. Egy adott lekérdezés az összes megkapcsolt LOD végponthoz továbbítja a kérést. • Sites (/entityhub/site/{siteId}): egy konkrét LOD-hoz (entitásszolgáltatóhoz) való integráció  ReferencedSite: Külső szolgáltató. Lokális caching és indexelést is támogat, ezért nem kell mindig kapcsolódni a külső LOD-hoz, csak ha az cache-ben nincs meg az adat.  ManagedSite: saját entitás menedzselés Tartalomgazdagítás szövegbányászattal
  • 20. Gravity Metaadat motor • LOD integrálása: RDF mapping definiálása, ha nem létezik • ReferencedSite definiálása minden integrálandó LOD-hoz  lokál cache létrehozása, ha a LOD támogatja ezt (teljes adatbázis dump)  ahol nincs támogatva (csak egyedi lekérések), ott a ReferencedSite cache-ét használjuk • Névelemek azonosítására Stanbol Enhancer használata Tartalomgazdagítás szövegbányászattal
  • 23. Adattárolás • Nagy méretű adatbázisok (Freebase: 400M triplet) • Skálázható háttéradatbázisként: Titan DB  Elosztott gráf adatbázis, ami RDF adatbázisként is használható a GraphSail interfészen keresztül  HBase és Cassandra backendet támogat • Jelenleg 2 csomópontból álló Hadoop klasztert használunk HBase-zel • 50 konkurens folyamat kiszolgálására bőven elég • Faunus gráfelemző motort használunk az adatok betöltésére  100M adat betöltése csak 3 óra Tartalomgazdagítás szövegbányászattal
  • 25. Szövegbányászati feladatok • Névelemek felismerése • Névelemek egyértelműsítése • Névelemek tulajdonságainak meghatározása • Inkonzisztens adatok egyértelműsítése Tartalomgazdagítás szövegbányászattal
  • 26. Névelemek felismerése • Szabad szövegben meghatározni, hogy melyek azok az entitások, amelyek érdekesek lehetnek számunkra  Szótár alapú megközelítés o Függ az adat minőségétől o Melyik adatforrásokat akarjuk felhasználni?  Szekvenciatanulás alapú megközelítés o HMM, CRF o Mennyire érzékeny a rendszer a hibára? • Stanbol Enhancer Tartalomgazdagítás szövegbányászattal
  • 27. Névelemek egyértelműsítése • Adott egy entitás, melyik LOD-entitásra lehet leképezni • Melyik LOD-adatbázisban kell keresni?  Szolgáltató függő adatséma  nem egységes lekérdezés o Apache Marmotta: Linked Data Client o Standard RDF formátumra alakítja a LOD-ok egyedi válaszformátumát o Ezután a Marmotta LOD cache-ét lehet használni • Szükség van az adat szemantikájára  rendező, filmszínész, stb. – különben nagyon zajos lesz a lekérdezés eredménye Tartalomgazdagítás szövegbányászattal
  • 28. Hasonlóság • Mely tulajdonságok határoznak meg egyértelműen adott filmet?  Cím: o Revolver (2005) vs Revolver (1991) o The Bourne Identity (2002) vs The Bourne Identity (1988)  Cím + Kiadás Éve: o The Bourne Identity (2002) vs A Bourne-rejtély (2002) o Terminator (1984) vs Terminátor - A halálosztó (1984)  Kiadás Éve + Rendező: o Elég jó, de még mindig nem feltétlenül egyértelmű − Elírási hibák: Jonnie vs Johnny − Különböző kiadási év: − tényleges kiadási év (2007) vs vetítési év az adott országban (2008) Tartalomgazdagítás szövegbányászattal
  • 29. Hasonlóság • Létrehozunk egy vektort: v = [kiadási év, rendező, vetítési idő] v1 = [1999, ['Steven', 'Allan', 'Spielberg''], 120] v2 = [1999, ['Stanley', 'Kubrick'], 118] v3 = [1999, ['Steven', 'Spielberg'], 115] • Két vektor tavolsága: || v_src – v_target ||_2 • A különbség két név között: ['Steven', 'Allan', 'Spielberg''] - ['Steven', 'Spielberg']  Egyszerű megoldás: | halmaz(A) halmaz(B) |  Komplexebb megoldás: ∑ min(Levenshtein távolság(a_i,b)) Tartalomgazdagítás szövegbányászattal
  • 30. Névelemek tulajdonságainak meghatározása • Ha már adott a LOD adatbázis és a lekérdezés, akkor SPARQL lekérdezéssel megkaphatók az entitás tulajdonságai • Simple Protocol and RDF Query Language (SPARQL) • SQL-szerű RDF lekérdező nyelv • A SPARQL lekérdezések triple mintákból, konjunkciókból, diszjunkciókból és opcionális mintákból állnak • A lekérdezés szétosztható több SPARQL végponthoz (szolgáltatások, melyek fogadják SPARQL lekérdezéseket és eredményt adnak vissza), kiszámolja, és összegyűjti az eredményt Tartalomgazdagítás szövegbányászattal
  • 31. SPARQL – 1. példa • Woody Allennel egy filmben szereplő színészek: Tartalomgazdagítás szövegbányászattal
  • 32. SPARQL – 2. példa • Olyan színészek, akik Stanley Kubrick és Steven Spielberg filmben is szerepeltek Tartalomgazdagítás szövegbányászattal
  • 33. Köszönöm! www.gravityrd.com Legfrissebb hírek: www.facebook.com/gravityrd Dr. Tikk Domonkos CEO Tel: +36 30 5470780 tikk.domonkos@gravityrd.com