Database, artificial intelligence, dan machine learning merupakan dasar yang penting untuk menyelesaikan permasalahan-permasalahan data mining.

Stanford University School of Engineering membuka kelas online dan free untuk tiga mata kuliah ini. Walaupun kelas yang dibuka ini adalah kelas percobaan, namun jika anda melihat professor yang mengajar tiga mata kuliah ini, akan banyak sekali pengetahuan dan pengalaman yang dari kelas online ini.

Tiga kelas tersebut adalah:

  1. Introduction to Artificial Intelligence by Sebastian Thrun and Peter Norvig
    http://www.ai-class.com/
  2. Machine Learning by Andrew Ng
    http://ml-class.org/
  3. Introduction to Databases by Jennifer Widom
    http://www.db-class.org/

Beberapa link untuk informasi lebih lengkap dapat dilihat di sini.

 

Melanjutkan update kompetisi data mining yang lalu. Ada tiga kompetisi data mining yang sedang dan akan berjalan.

1. Data Mining Cup 2011 (student competition)
2. ECML-PKDD Discovery Challenge 2011
3. Hearst Challenge 2011

Sepertinya tema tahun ini adalah recommendation system. KDDCup, Data mining Cup, dan ECML-PKDD tahun ini semuanya tentang recommendation system.

Have fun with the data.

Saya menemukan dataset yang dapat didownload di Amazon Web Services. Ukuran dataset di sini terhitung raksasa, mulai dari beberapa puluh GB sampai beberapa TB, kebanyakan sekitar beberapa ratus GB. Jenis datasetnya cukup beragam seperti data biologis, astronomi, cuaca, ekonomi, dan lain-lain. Beberapa resource seperti Google books N-gram, DBpedia, dan Freebase tersedia di sini.

Semoga berguna bagi yang memerlukan resource raksasa.

 

Beberapa kompetisi data mining yang sedang/akan diadakan di tahun 2011 ini.

KDDCup 2011 baru saja di mulai tanggal 15 Maret yang lalu. Kompetisi in tentang rating musik, datanya dari Yahoo. Informasi lengkapnya di KDDCup 2011 from Yahoo! labs.

Beberapa kompetisi data mining lainnya ada di Kaggle. Saat ini ada dua kompetisi data mining yang sedang berjalan: Avoid Overfitting, dan Arabic Writer Identification.

Kompetisi terbesar data mining (melebihi rekor Netlfix challenge) akan dimulai tanggal 4 April mendatang, namanya Heritage Health Prize. Kompetisi ini tentang data health care system.

Have fun.

Update (5 April 2011): kompetisi Heritage Health sudah dimulai. Silahkan bermain-main di kompetisi ini.

Beberapa minggu belakangan, saya mendapatkan link dan berita yang sangat mencengangkan dari Cina.

Cina merupakan salah satu negara dengan perkembangan teknologi tercepat di dunia, bahkan sampai ada yang bilang semua hal yang muncul di TechCrunch bisa ditemukan di Cina dalam suatu bentuk tertentu.

Berikut ini tiga berita berkaitan dengan teknologi di Cina yang mencengangkan:

  1. Superkomputer tercepat di dunia ada di Cina
    Sejak bulan lalu, superkomputer bernama  Tianhe-1 (天河一號) yang dikembangkan di National Supercomputing Center in Tianjin ditahbiskan menjadi superkomputer tercepat di dunia mengalahkan pemegang superkomputer tercepat Jaguar dari Oak Ridge National Laboratory di Amerika Serikat. Tidak hanya itu, berdasarkan daftar TOP500, peringkat 1 dan 3 dipegang oleh superkomputer di Cina. Peringkat 3 dipegang oleh superkomputer bernama Nebulae (星雲).
    Link wikipedia: Tianhe-1, Nebulae
  2. Pembangunan sebuah hotel 15 lantai di Cina yang hanya memakan waktu seminggu
    Berita kedua ini mungkin berkaitan dengan teknik sipil tentang pembangunan Ark Hotel di propinsi Hunan, Cina. Menurut orang awam di bidang teknik sipil seperti saya ini, hal ini sangat fenomenal. Kalau orang komputer melihatnya sebagai optimasi scheduling yang luar biasa. Dalam benak saya, dalam seminggu mereka dapat menciptakan tempat tinggal untuk satu kelurahan. Bayangkan saya jika kecepatan pembangunan gedung bertingkat seperti ini, berapa banyak gedung yang akan muncul dalam setahun. Tidak hanya itu gedung ini sudah dilengkapi level 9 earthquake resistance, 6x less material, 5x energy efficient, 20x purification for fresh air, 1% construction waste. Mereka menyebutnya sustainable building.
  3. Perencanaan China Straddling Bus
    Walaupun berita yang ketiga ini masih dalam tahap perencanaan, tetapi inovasi yang dilakukan sangat luar biasa. Desain transportasi ini benar-benar memanfaatkan banyak teknologi tingkat tinggi dalam penerapannya.

    Terjemahan video ini dalam bahasa inggris dapat dilihat di sini.

Marilah kita juga meningkatkan kecepatan dan produktivitas kita masing-masing agar kita juga bisa lebih maju dari mereka.

Ujian kualifikasi berakhir minggu lalu. Terlepas dari hasilnya, banyak hal yang saya pelajari selama mempersiapkan ujian ini.

Secara singkat, ada dua subjek ujian kualifikasi yang harus saya lewati. Tiap subjek, ada empat topik yang diujikan (saya hanya perlu menyelesaikan tiga dari empat topik untuk masing-masing subjek). Kedua subjek itu adalah:

Foundations of Theoretical Computer Science (cs5201), yang meliputi:

  1. Algorithms
  2. Theory of Computation
  3. Principles of Programming Languages
  4. Logic and Artificial Intelligence

Foundations of Computer Systems (cs5202), yang meliputi:

  1. Database Systems
  2. Operating Systems
  3. Computer Networks
  4. Computer Architecture

Kedua subjek ini dinilai sebagai aspek dasar yang minimal sudah dipelajari oleh mahasiswa selama undergraduate study (pendidikan strata 1). Tujuan dari ujian ini adalah untuk menguji pengetahuan dasar, kreatifitas, kemampuan evaluasi, desain and analisa serta mengaplikasikan prinsip-prinsip dasar yang sudah pernah dipelajari. Detail informasi dan referensinya dapat dilihat langsung pada link yang cs5201 dan cs5202.

Beberapa pelajaran berharga yang saya peroleh dari persiapan ujian ini:

Foundation is important

Aspek-aspek dasar sangatlah penting. Seperti bangunan, tanpa pondasi yang kuat, sulit untuk membangun gedung yang tinggi. Masing-masing topik pada kedua subjek saling berkaitan satu sama lain, dan topik-topik ini juga yang menjadi dasar riset lebih lanjut di bidang komputer. Jadi, dasar dari satu topik dapat menyokong dasar yang lain.
Contohnya:

  • struktur data (algoritma) sangat erat kaitannya dengan banyak hal mulai dari index database, filesystem sampai format protokol jaringan
  • page replacement (sistem operasi) berkaitan dengan buffer replacement (database)
  • algoritma routing (jaringan komputer) menggunakan algoritma graph dan dynamic algorithm
  • teori bahasa dan automata (teori komputasi) berkaitan dengan konsep bahasa pemrograman dan analisa kompleksitas algoritma (Polynomial dan Non-deterministic Polynomial)
  • first order logic berkaitan dengan software verification.

Concept is more important than remembering things

Ada banyak algoritma di luar sana. Sangat sulit untuk mengetahui secara detail sebuah algoritma. Bahkan sangat mungkin orang yang mengembangkan algoritma tersebut juga lupa detail algoritma yang dia kembangkan (saya pernah bertanya tentang algoritma di sebuah paper pada penulis aslinya, dan berhubung algoritma tersebut sudah tua, si penulis sendiri juga tidak terlalu ingat detailnya). Pemahaman konsep jauh lebih penting daripada mengingat proses kerja algoritmanya. Dengan memahami konsepnya, kita bisa dengan leluasa mengaplikasikan sebuah algoritma.
Sebagai contoh sederhana,
index pada database pada umumnya diimplementasikan dengan menggunakan hashtable atau B+Tree. Hashtable sangat bagus untuk point query, tetapi sangat buruk untuk range query, sedangkan B+Tree bagus untuk range query, walaupun untuk point query sedikit kalah dibandingkan Hashtable. Database designer dapat mengaplikasikan konsep ini untuk menentukan index database berdasarkan workload query yang sering dilakukan pada database tersebut. Bagaimana dengan attribut yang akan diindex, jumlah buffer yang optimal untuk sebuah sistem? tentunya para database designer sangat akrab dengan hal ini (konsep struktur data, dan buffer replacement sangat berguna di sini).

Independent study

Ujian ini termasuk modul tanpa kuliah. Persiapannya dilakukan sendiri oleh mahasiswa. Kemampuan belajar secara independen merupakan hal yang sangat penting.
Banyaknya materi yang perlu dipersiapkan melatih saya untuk belajar memetakan framework, pengetahuan, dan konsep-konsep yang ada. Selain itu saya menjadi terbiasa untuk bertanya mengapa sesuatu harus didesain seperti itu, dan mengevaluasi pro dan kontra suatu konsep.
Pada dasarnya, semua informasi yang kita perlukan tersedia dan sangat mudah diakses di internet. Tidak ada masa yang lebih mudah dari saat, di mana kita bisa mendapat akses informasi dan pengetahuan secara mudah dan cepat di internet.

Banyak konsep dasar yang tidak pernah saya ketahui selama undergraduate study saya

Pelajaran berharga terakhir ini cukup ironis. Ternyata banyak hal yang merupakan konsep dasar, tidak pernah saya pelajari sebelumnya. Contohnya: query optimization, concurrency control dan recovery (database), konsep dasar P dan NP (algoritma), decidability dan semi-decidability (teori komputasi), hoare logic. Membuktikan kebenaran dan menganalisa kompleksitas (space and time) algoritma yang dikembangkan juga termasuk kebiasaan baru yang dibentuk dari persiapan ini. Believe me, this is very important if you are software developer.
Ada banyak hal yang sudah pernah saya pelajari sebelumnya, dan tidak sedikit juga yang belum pernah saya pelajari sebelumnya. Pada akhirnya, kembali lagi bahwa belajar adalah sebuah proses. Sudah pernah belajar sebelumnya bukan berarti benar-benar paham, dan semakin saya belajar pemahaman terhadap suatu hal akan semakin diperkuat (Remember, learning is an iterative process!!).

    Secara pribadi, saya merasa topik-topik  yang diujikan ini merupakan topik-topik mendasar. Walaupun saya lebih banyak mendalami data mining, machine learning dan artificial intelligence, saya merasa pemahaman terhadap konsep-konsep dasar sangat perlu terutama bagi orang-orang yang membangun sebuah sistem.

    Polling dan artikel tentang prediksi pemenang piala dunia 2010 yang ditulis di KDNuggets benar-benar menggelitik. Setelah 100% berhasil menebak dengan benar semua pertandingan Jerman dan final world cup 2010, gurita dari Jerman ini benar-benar menjadi salah satu “bintang” piala dunia 2010. Bahkan, banyak juga yang mulai request kemungkinan bertanya hal-hal lain untuk diprediksi gurita ini.

    Salah satu kutipan menarik dari artikel ini: “Banyak orang yang lebih tertarik dengan prediksi-prediksi “ajaib” daripada prediksi secara analitik”.

    Jika memang yang “ajaib” akurasinya (keberuntungannya) bisa sampai setinggi ini, tidak heran banyak orang lebih percaya yang “ajaib” seperti ini. Lagipula, tidak ada effort untuk proses training seperti layaknya yang dilakukan oleh data miner.

    Beberapa hari yang lalu, saya mendengarkan seminar yang dibawakan oleh Prof. Jiawei Han. Merupakan suatu keberuntungan bagi saya bisa mendengarkan seminar ini. Salah satu hal yang saya salut dengan Prof. Han ini adalah kemampuan menyampaikan ide dengan cara yang mudah dimengerti. Filosofi dari algoritma yang dibawakan disampaikan dengan cara yang sangat mudah dipahami. Satu hal lagi, beliau juga sangat pintar mempromosikan mahasiswa phd bimbingannya.

    Seminar yang dibawakan saat itu adalah tentang mining heterogeneous information network. Mengapa? Alasannya sangat sederhana. Hampir semua real network adalah heterogeneous network, dan homogeneous network umumnya merupakan bagian dari heterogeneous network. Knowledge yang akan diekstraksi dari network ini tersembunyi dalam link-link yang saling menghubungkan object dalam network ini.

    Ada dua task yang penting yang diperlukan untuk memperoleh informasi dari network ini: ranking dan clustering. Pada umumnya, orang menganggap dua task tersebut adalah dua task yang berbeda. Algoritma RankClus yang dijelaskan beliau menggabungkan ranking dan clustering menjadi satu. Cluster yang baik akan memberikan hasil ranking yang baik, dan ranking yang baik akan mendorong mengelompokkan cluster yang lebih baik. Proses ini saling bersinergi memberikan hasil yang baik. Selain RankClus, beliau juga menjelaskan algoritma NetClus.

    Enam algoritma machine learning sedang dikembangkan untuk large-scale, distributed storaged, dan paralel processing di Google selama beberapa tahun terakhir ini. Disebutkan bahwa enam algoritma tersebut adalah Support Vector Machine (SVM), Singular Value Decomposition (SVD), Spectral Clustering, Association Mining, Probabilistic Latent Semantic Analysis (PLSA), dan Latent Dirichlet Allocation (LDA). Bahkan, PSVM sudah tersedia secara public dan dapat didownload. Btw, PSVM merupakan salah satu project hasil 20% time. Sebuah task SVM yang memerlukan tujuh hari pada sebuah komputer dapat diselesaikan dalam waktu dua jam dengan menggunakan PSVM pada 200 komputer.
    Algoritma-algoritma di atas merupakan algoritma yang saat ini termasuk algoritma yang terbukti efektif dengan pondasi teori yang sangat kuat, namun komputasinya sangat tinggi. Pada SIGMOD record March 2008, Edward Chang, salah satu peneliti Google, melaporkan bahwa SVM, SVD, PLSA, dan LDA sangat berguna untuk klasifikasi dan collaborative filtering di Google. Google Knowledge search (baru tersedia di Rusia), dan Laiba (produk social-network dengan platform Orkut yang juga baru tersedia di Cina) adalah produk-produk terbaru Google yang menggunakan algoritma-algoritma ini pada infrastukturnya.
    Apakah algoritma-algoritma ini akan menjadi tren machine learning masa depan??

    Selain tentang algoritma machine learning yang sedang dikembangkan Google, paper “Data Management Projects at Google” juga menceritakan beberapa proyek Google yang lain termasuk Crawling Deep Web, Searching HTML Tables, BIGTable, dan MiniTables.

    Referensi:
    1. Data Management Projects at Google. SIGMOD Record, March 2008. (Vol. 37, No. 1)
    2. PSVM – a parallel version of support vector machine

    Di tengah-tengah kesibukan studi, secara tidak sengaja saya menemukan bahwa tulisan saya, Berburu Resource di Internet, muncul di majalah online Inovasi, tepatnya di Inovasi Edisi Vol.9/XIX/November 2007. Thanks to majalah online Inovasi. Thanks to Google for linking me to the resource :).
    Sebelumnya sempat terpikir bahwa tulisan ini mungkin tidak masuk karena sudah lama tidak ada kabarnya, ternyata penerbitannya majalahnya yang molor.
    Tulisan saya ini mungkin akan sangat berguna bagi teman-teman dalam mencari resource di Internet, terutama yang sedang mengerjakan riset atau tugas akhir. Banyak sekali yang bertanya sumber-sumber resource berkaitan dengan data mining di blog ini. Karena data mining itu sangat luas dan banyak sekali hal yang saya juga masih belajar, semoga artikel ini bisa jadi guideline awal dalam berburu resource di internet. Paling tidak trik-trik ini sangat ampuh selama saya berburu resource di internet.
    Teman-teman mungkin juga dapat membuka bagian Tips dari blog ini. Ada beberapa posting terkait dengan berburu resource.

    Artikel dapat didownload di sini [link baru].

    Update 20 Maret 2008:
    Sepertinya memang ada perubahan struktur website majalah inovasi. saya baru saja update link sumbernya. Thanks to Google… 🙂