Modelling Collaboration of Distributed Tagging Services

Conference in Bucharest - http://www.icvl.eu/2008/signup . Some sections the article could fit in - (1) Collaborative E-Learning, (2) Algorithms and Programming for Modelling. Cf. http://www.icvl.eu/2008/sections

Keywords: Collaborative tagging, distributed Web services, REST API, AJAX, clustering, faceted browse, knowledge management, semantic wiki, SVM - Support Vector Machines, positive feedback loops, ontology evolution.

  1. Abstract
  2. Introduction
  3. Probabilistic Model?
  4. Architecture and Performance Estimates?
  5. Conclusions
  6. Bibliography

General Description of our Architecture

We are trying to bridge the middle ground here. We have a number of servers, which cache resources and their annotations (i.e. tags associated with each property, given a Support Vector Machine (SVM) value). We want to solve two related problems:

  1. How to prompt user to annotate something consistently. E.g. a user has added a document, and we want him to add some tags. We want to use human intelligence "sparingly" (annotators are not library science experts, are not very committed to annotate anything, but we want to add something and stay consistent).
  2. How to raise alert, when tagging changes show signs of vandalism or inexperience.

Bootstrapping Phase

Whenever a new property (with its corresponding tag values) is introduced, there are no annotations any server can share with others. There is an interesting unstable initial phase, we call "bootstrapping", which shows the self-reinforcing mechanism how new tags may be introduced and become accepted by the community.

  1. Initial body of information - interesting and/or useful (BitTorrent example - author of the protocol added some free pornography to the BitTorrent for the protocol to be accepted).
  2. Initial set of tag values. Should be extensible and follow common-sense or evolutionary approach rather than be designed and introduced by taxonomy experts "top down". The exceptions are - when some taxonomy already exists and has some "material consequences" (e.g. some educational standard, which splits high-school mathematics knowledge by topic). How about allowing the community to use "uncontrolled vocabulary" for a while and then standardizing it?
  3. Change in GUI - nudging users to use the new property.

Implementation notes

  • Consider using protocol with low overhead (e.g. UDP). In extreme cases, consider using ICP packets for information exchange between the caching servers.
  • Servers are falling in a hierarchy (siblings vs. parents). For each property there may be a separate mesh of server relationships, assuming that they are all indexing the same property. This corresponds to the T.B.Lee idea of amortizing costs for developing an ontology - i.e. a few of them are very global and others are user-specific.
  • The tag value range for a given property could be from 2 values (true, false) to about 1 million (something that makes sense for a plain input field, including an AJAX-based auto-complete text box).
  • Document is cached and accessible by its MD5 or CRC fingerprint (if child servers are unwilling to support it, introduce a parent cache, which ensures this capacity).

Matemātiskā modelēšana - iespējas:

  1. Var modelēt no "spēļu teorijas" viedokļa. Katrs e-apmācības materiālu izstrādātājs riskē - viņu var citi vai nu atbalstīt vai nu "uzmest". Un tad apskatīties, kādus "payoff" kurā brīdī viņš dabū un izveidot matricu un meklēt optimālu stratēģiju. Varbūt var pamatot, ka visgudrākā stratēģija ir - sadarboties.
  2. Var uztaisīt kādu stohastizētu modeli (piemēram, par to, kā cilvēki lieto materiālus vai pievieno anotācijas) un pēc tam mērīt hipotēzēm varbūtības. T.i. ar tādu "tīšām" iebūvētu nejaušību ģeneratoru. Nu teiksim, lai modelētu transporta sastrēgumus uz tiltiem, var pieņemt, ka mašīnas ierodas atbilstoši eksponenciālajam sadalījumam. Un pēc tam (tāpat kā datorspēlē) arī laiž mašīnas atbilstoši šim sadalījumam un skatās, kas iznāk. Tā ir pagaidu sapratne par to, kas ir "stohastisks modelis". Bet varbūt nepareiza...
  3. Visbeidzot varētu būt "machine learning" modelis. Tāds, kur ir kāda nebūt likumsakarība, kuru saprātīgs cilvēks (vai ne tik saprātīgs dators) mēģina atminēt… Un arī kaut kāds modelis jau sanāk. Teiksim, var definēt, ko nozīmē "veiksmīga sadarbība mācīšanās procesā" utml.
Modeļa izvēle ir gaumes jautājums:

  1. Ja Tavs sapņu priekšmets ir lineārā algebra, visādi joki ar matricām un Žordāna normālformām, tad iesaku izvēlēties "spēļu teorijas" modeļus.
  2. Ja Tev labāk patīk varbūtību teorija un statistika, tad var modelēt ar gadījumskaitļu ģeneratoriem.
  3. Visbeidzot, ja Tev patīk mākslīgais intelekts, heiristikas (t.i. algoritmi, kuriem "intuitīvi" vajadzētu strādāt) un spēja definēt visādus jaunus jēdzienus un par viņiem apgalvot šādas tādas gandrīz triviālas lietas (pierādīt mazas teorēmiņas), tad vari nodarboties ar "machine learning".

Modeļa apjoms un sarežģītība

Iedomāsimies, ka vēlamies modelēt "sadarbību starp materiālu un veidotājiem/patērētājiem". T.i. lietotājam ir jāveic kaut kāds mācību uzdevums - un viņš komunicē ar sistēmu. Sistēma ir viena no trim:

  1. Viss lielais Internets
  2. Kaut kāda Interneta vietņu apakškopa (teiksim, visādi Moodles, LIISi un citi līdzīgi)
  3. Tikai mūsu "agregātlietotne" (viena vietne).
Komunicēšanā atšķiram tādas lietas, kuras var izdarīt ar 1 soli ( pieprasījumu - atbildi), 2 soļiem (pieprasījums-atbilde-pieprasījums-atbilde), 3 un vairāk soļiem. Tāpat kā šahā ir mats vienā, divos, trīs gājienos (un "baltie sāk un uzvar"). Visbeidzot, varētu būt arī nedeterminēti uzdevumi priekš mācīšanās.

T.i. varbūt informācijas meklētājam (vai sadarbojošamies meklētājiem) ir izvirzāmi uzdevumi, kurus var atrisināt:

  1. Vienreiz sūtot pieprasījumu un uzreiz saņemot pretī vēlamo
  2. Sūtot pieprasījumu un atkarībā no atbildes vēlreiz sūtot pieprasījumu
  3. Sūtot pieprasījumu, apspriežot atbildi ar draugu un tad vēlreiz sūtot pieprasījumu...

Creator: Kalvis Apsītis on 2008/06/21 10:49
This wiki is licensed under a Creative Commons 2.0 license
XWiki Enterprise 1.8.17790 - Documentation