Programming Collective Intelligence for Smart Web 2.0 Yazarı ile Bir Röportaj

0
FZ
Toby Segaran ile Bir Röportaj
Bruce Stewart
11/14/2007

Toby Segaran, O'Reilly'nin kısa süre önce çıkardığı Programming Collective Intelligence kitabının yazarıdır. Bu yeni kitabında Toby bizi makina öğrenme ve istatistik dünyasında bir gezintiye çıkarıyor ve kullanıcı verisinin yani "kolektif zekâ"nın oluşturduğu verinin üzerinden veri madenciliği yapmaktan yola çıkıp kullanıcı deneyimi, pazarlama, kişisel zevkler ve insan davranışı hakkında sonuçlara nasıl ulaşabileceğimizi gösteriyor.
Programming Collective Intelligence tamamen pratik bir kitap olup Internet üzerindeki insanların oluşturduğu muazzam miktardaki veriyi işleyen web uygulamalarının nasıl geliştirilebileceğini pratik örneklerle açıklıyor. Toby ile yeni kitabı hakkında konuştuk ve bu makina öğrenme tekniklerinin Web 2.0 dönemindeki önemini tartıştık.

O'Reilly: Tim O'Reilly, "Collective Intelligence" için "Web 2.0 uygulamaları geliştirmek için ilk pratik rehber" tanımlamasını kullanıyor. Siz bunu yazarken gerçekten de niyetiniz bu muydu? Sizin kitabınız Web 2.0 ile ilgiliolarak programcılara hangi araçları ve teknikleri sunuyor?

Segaran: Kitabın orjinal fikri insanlara makina öğrenme alanındaki fikirleri pratik olarak öğretmek idi. Genellikle makina öğrenme ile ilgili kitaplar bir hayli teoriktir ve pek çok insanın gerçek hayatla ilişkilendirmekte zorlandığı örnekler kullanırlar. Birkaç kişi ile bu fikrim üzerine konuştuktan sonra gördüm ki makina öğrenme algoritmalarını anlatmak için kullanılacak en güzel veri türü hali hazırda web üzerinde insanların oluşturduğu veri. Bu yüzden de kitaptaki örnekleri Internet uygulamalarının topladığı türden verilerle gerçekleştirmeye karar verdim. O'Reilly ile konuşup kitap fikrini onlara da açtığımda Web 2.0 ile bağlantılı bir şeyler yapma fikri hoşlarına gitti, böylece insanlara yeni teknikler öğretmek ve aynı anda da onları "makina öğrenme" terimi ile korkutmamak mümkün olabilecekti.

O'Reilly: Bu konularla ilgili epey teorik ve pek az pratik, hemen uygulanabilir bilgi var. Kolektif zekâ ile ilgili bir kitap yazarken karşılaştığın en büyük zorluklar nelerdi?

Segaran: En büyük zorluk insanların kavrayabilecekleri ve kendilerinin de elde edebilecekleri veri kümeleri bulmaktı. Kendi uygulamasını geliştiren biri kendi verisini toplayabilir ama kitabı okuyacak olanlar bir şekilde bir yerden o veriye ulaşabilmeliler. Arkadaşlarımla bu konu hakkında epey fikir alışverişinde bulundum ve onların kullandıkları sosyal web sitelerini, açık APIleri ve gerçekten hoşa gidebilecek çarpıcı örnekleri inceledim.

Diğer bir zorluk da tabii ki okurun denklemler ve matematikle çok da ilgilenmediği var sayımı ile algoritmaları açıklayabilmek idi. Teorik kitaplardan algoritmaları ve denklemleri alıp bunu sadece sözcükler ve resimlerle anlatmak için epey uğraştım diyebilirim.

O'Reilly: Biraz geriye çekilip bakalım. Acaba "Web 2.0" ve "kolektif zekâ" terimlerini nasıl tanımlarsın? Sence kolektif zekâ Web 2.0 ile ilgili teknolojilerde anahtar rolünde mi?

Segaran: Wow, açıkçası "Web 2.0 tanımı" tartışmasına katılmaktan korkuyorum. Sadece şunu diyebiliri ki Web 2.0'ın kullanıcı tarafından üretilen veri ile alakalı olduğu artık genel kabul görmüş halde. Bu verilerin bir araya getirilmesi yani kolektif zekâ mutlaka Web 2.0'ın da tanımında yer alıyor.

O'Reilly: Amazon.com uzunca bir süre kolektif zekâdan en iyi faydalanan lider şirket olarak kabul edilirdi. Ürün tavsiye mekanizmaları bu övgülerden en çok payı hak eden sistem olsa gerek. Sence Amazon bu alanda günümüzde nasıl, kolektif zekâ bakımından hala en iyi teknolojiyi kullanıyor mu ve lider mi?

Segaran: Amazon'un iç işleyişini bilmiyorum ama ancak bu ölçekte bir ürün tavsiye sistemi kurmuş olmaları gerçekten de takdir edilesi bir durum. Geliştirdikleri tavsiye sisteminin kalitesi yaptıkları satışlar ile ödüllendiriliyor.

O'Reilly: Bize bu anlattığın teknikleri günümüzde kullanan birkaç favori örneğini sıralayabilir misin?

Segaran: En başarılı örnekler arasında tabii ki Amazon ve Netflix'in tavsiye algoritmalarının yanı sıra Google'ın PageRank algoritması var. Ancak bu aralar benim çok daha ilginç bulduğum şey özelleşmiş problemler için bu tür algoritmaları kullanmaya başlayan küçük şirketler, mesela Collective Intellect firması finansal analiz için mesaj panolarından ve bloglardan veri çekip bunlar üzerinden veri madenciliği yapıyor. Bir başka güzel örnek ise Metaweb, bu şirket de kolektif zekânın gücünden nasıl faydalanılabileceğine dair pek çok seçenek sunuyor.

O'Reilly: Metaweb'ı bilmeyenler için ne yaptıklarını ve seni neden heyecanlandırdıklarını biraz anlatabilir misin?

Segaran: Metaweb, web için bir tür semantik veri deposu oluşturuyor ve bu sayede insanlar kolektif olarak şeyler ve o şeyler arasındaki ilişkileri gösteren çizgeler (graflar) inşa edebiliyorlar. Kısa süre önce Economist dergisinde bununla ilgili bir yazı çıktı. Detay isteyenler oraya başvurabilir.

O'Reilly: Neden Python bu tür işler için özellikle uygun?

Segaran: Python seçtim çünkü:
  • Bilim dünyasında da gittikçe yaygınlaşmaya başladı. Bu da NumPy ve MatPlotLib gibi harika ve başarılı kütüphanelerin geliştirilmesine yol açtı. Ben kitabı yazarken istediğim tüm kriterleri barındıran kütüphaneleri olan başka bir dil aklıma gelmedi.
  • Etkileşimli, yani programcı / okuyucu her bir fonksiyonu yazdıkça neler olup bittiğini o anda deneyebiliyor.
  • Kompakt bir sözdizimine sahip. Kitaba koyduğum kaynak kodun sayfalar dolusu olmasını istemiyordum.
  • Diğer dillere alışkın programcıların okumakta ve takip etmekte güçlük çekmeyecekleri bir dil.
O'Reilly: Kitap okurun Python bildiğini mi var sayıyor yoksa daha önce hiç Python dilini kullanmamış programcılar da faydalanabilir mi?

Segaran: Elimden geldiğince Python bilmeyenlere de hitap etmeye çalıştım. Sanırım belli ölçüde başarılı da oldum. Çeşitli bloglarda kitaptaki kodun Ruby, Lisp ve Java'ya çevrilmiş hallerini görebilirsiniz. Kodun yorum satırları iyi yazılmış ve açıklanmıştır dolayısı ile okur kodu yazıp çalıştırmasa bile neler olup bittiğini anlayabilir.

O'Reilly: Kullanıcı verisi toplarken istediğiniz veriye ek olarak epey bir çöplükle de karşılaşabilirsiniz. Belge ve spam filtreleme ne kadar önemli ve bunu yapmak için en iyi yaklaşımlar nelerdir? Bu konuya başlı başına bir bölüm ayırdığını görüyorum.

Segaran: Pek çok insan size "filtrelemenin" modern dünyadaki en önemli kavramlardan biri olduğunu söylecektir. Onlara katılıyorum. Klişe olduğunu biliyorum ama gerçekten de bilginin aşırı zamanın ise kısıtlı olduğu bir dünyada yaşıyoruz. Günde 500 kadar SPAM e-posta alıyorum ancak posta kutuma bunlardan en fazla bir ya da iki tanesi düşüyor. Dolayısı ile spam filtrelemenin başarılı olduğunu düşünüyorum. Günümüzde henüz başarılamamış olan şey ise Internet'te olan ve benim ilgimi çekebilecek bilgiyi otomatik olarak bulabilmek. Bu problemi halletmeye çalışan sistemler olduğunu biliyorum ve pek çoğunu da denedim ama hiçbirini yeterli bulmadım.

Genel olarak, milyarlarca belge ve veri noktası içinden gerekli bilgiyi bulmak ve işlemek bilgi emekçilerinin hala en çok vakit harcadıkları ve kafa patlattıkları konu. Bu alandaki algoritmaları iyileştirmek bizim verimliliğimizi ve etkinliğimizi çok artıracaktır.

O'Reilly: Okurlardan biri Programming Collective Intelligenc'ı "Web verisini Python aracılığı ile istatistik ve yapay zekâ yöntemleri ile işlemek hakkında bir kitap" olarak tanımlamıştı. Bu tanımlama sence doğru mu?

Segaran: Evet, sanırım doğru diyebilirim. Tabii "web verisi" pek çok farklı anlama gelebilir. Kitaptaki ana tema kullanıcı tarafından üretilen veri: eylemler, davranışlar, belirtilen ya da ima edilen tercihler. Ben insanlara sadece yöntemleri öğreten değil aynı zamanda kendi projelerinde kullanabilecekleri yeni yöntemler ve özellikler için de ilham verecek bir kitap yazmaya çalıştım.

Bruce Stewart serbest çalışan bir teknoloji yazarı ve editörüdür.

Çeviren: Emre Sevinç

Kaynak: http://www.oreillynet.com/pub/a/network/2007/11/14/an-interview-with-toby-segaran.html

Görüşler

0
FZ
Ne zamandan beri blogumda Programming Collective Intelligence kitabının bir eleştirisini yazmak istiyordum, belki yaptığım bu çeviri vesile olur (çeviri yapmak özgün eleştiri yazmaktan daha kolay tabii :)).

O zamana dek "machine learning" konuları ile ilgilenen herkese bu kitabı tavsiye ediyorum hararetle. Ağırlığınca altın değerinde ve röportajda belirtildiği gibi kesinlikle pratiğe yönelik ancak işin teorisini öğrenmek isteyenler için de gerekli yönlendirmeleri içeriyor.
0
FZ
Bu aralar FM'de "machine learning" ve "data mining" ile pek ilgilenen yok herhalde? ;-)
0
nec
Olmaz olur mu?

Röportaj zevkle okundu. Hemen kitabın pdf'i satın alındı; Android Developer Challenge projemiz için önemli bir kaynak olarak baş köşeye konuldu.

0
FZ
Zevkle okumanıza ve ardından üşenmeyip yorum yazmanıza sevindim. Programming Collective Intelligence gerçekten de çok değerli bir kaynak. Bu aralar ben de o kitaptan faydalanıp "machine learning" ile ilgili küçük bir proje geliştirmeye çalışıyorum.
Görüş belirtmek için giriş yapın...

İlgili Yazılar

D. E. Knuth´tan Özel Dersler

malkocoglu

Dr. Bilgisayar Bilimi'nin kendisinden özel ders almak ister miydiniz? Donald Knuth'un bilgisayar bilim derslerini buradan izleyebilirsiniz.

Kabalcı Kapandı

butch

Beşiktaş ve aslında bütün İstanbul sakinleri için simge mekanlardan biri, Kabalcı Kitabevi kapandı.

Kabalcı'yı özellikle, yayınladığı pek çok “niş” nitelikteki kitap ve tabi belki bizim için en önemlisi Otostopçunun Galaksi Rehberi'ni tekrar basımıyla severek anıyoruz. Yaklaşık 30 yıldır kitap severlerin önemli bir durağı, İstanbul sakinlerinin buluşma yeriydi Kabalcı. Kapanışının...

Bilgi İşlem Tasarım Kalıpları

anonim

Tasarım Kalıpları (Design Patterns) adı verilen akım, özellikle bilgi işlem yazılımcıları tarafından son yıllarda çok ilgi görmüştür. Bir tasarım kalıbı basit bir açıklama ile bir nevi reçetedir. Bu reçete, sürekli karşımıza çıkan bir sorun tipine karşı bulunmuş, gene sürekli verilmiş olan ve işe yarar bulunmuş bir çözümdür.

Yazının devamı için buraya tıklayın.

Yazılım Mühendisliğinde Çıkmaz Sokak Tarifleri: Anti-Patterns

FZ

Bilgisayar yazılımları geliştirmekle yıllardır uğraşılmakta. Son yarım yüzyılda ortaya çıkan bu alanda çeşitli paradigmalar (prosedürel, nesne tabanlı, fonksiyonel, vs) ve çeşitli modeller (code reuse, unit testing, component model, extreme programming, design patterns) ortaya atıldı. Daha çok "Özgür Yazılım'' ile birlikte dağıtık geliştirme yöntemleri gündeme geldi. Tasarım, uygulama ve test aşamalarını kapsayan geniş bir açıdan baktığımızda bize önerilen çeşitli "doğru'' geliştirme yöntemleri var.

Diğer her alanda olduğu gibi dengeli ve sağlıklı bir kavrayışa sahip olmak için doğruların yanında "yanlış'' yöntemler hakkında da bilgi sahibi olmak gereklidir. Bu konuda yaşanmış çok tecrübe olmakla birlikte, yazılı olarak birkaç kaynak dışında ciddi bir eksiklik bulunmaktaydı. Bu makale, ağırlıklı olarak yazılım mühendisliği ile ilgili birkaç Internet sitesinden derlenmiş, daha çok özgür yazılım alanını ilgilendiren bu tür çıkmaz yolları tanıtmaktadır. Ortak noktaları:

* Çoğu bir problemi çözmek isterken ortaya çıkar
* İlk bakışta harika bir fikir gibi gözükebilirler
* En çok tasarım aşamasında görülürler
* Sizden çok daha üretken ve başarılı grupları batırmışlardır!

Gürer Özen'in Anti-Patterns çevirisinin devamını burada okuyabilirsiniz.

Ağ Güvenliği İpuçları

honal

O'Reilly Yayınevinin "Network Security Hacks" adlı kitabı Açık Akademi Yayınlari tarafından Türkçeye "Ağ Güvenliği İpuçlari" olarak tercüme edilmistir.

"Ag Güvenligi İpuçları" kitabi sisteminizi basit bir hedef olmaktan çıkaracak 100 güçlü ve kullanışlı ipucu sunmaktadır. Bunlar, gerçek dünyada kullanilan araçlardan alınmış örnekler ve güvenlik uzmanlarının kendi bilgisayar ve ağlarını korumak için kullandığı yöntemlerden oluşmaktadır. Herbir ipucunu okumak yalnızca birkaç dakika sürerken sizi saatlerce araştırma yapmaktan kurtaracaktır.