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

IBM Özgür Yazılım Dergisi 3. Sayısı Çıktı

FZ

IBM Türk tarafından hazırlanan, Türkiye'nin ilk Özgür Yazılım dergisi yayın hayatına yeni ismiyle devam ediyor. IBM Özgür Yazılım'ın 3. sayısı daha önce talep eden üyelerimize ulaştırılmak üzere yola çıktı. Bir sonraki sayının adresinize gönderilmesini istiyorsanız üyelik bilgilerinizdeki adres bilgilerinizi güncelleyip ve "IBM Özgür Yazılım Dergisinin Adresime Gönderilmesini İstiyorum" seçeneğini işaretlemeniz gerekiyor.

Linux Açılış Disketi NASIL

yalcink01

Hep hayalini kurduğum şey, kendi başıma imal ettiğim bir işletim sistemi idi. Baktım ki bu iş oldukça uzun bir zamana mal olacak, ben de hayalimi güncelledim ve kendi birleştirdiğim bir işletim sistemi yapmaya karar verdim. Hani legolar var ya onun gibi bir şey işte. Eh, Linux çekirdeği artı GNU araçları ve bilumum özgür yazılım etrafta cirit atıyor:) Al parçaları birleştirmeye başla dedim ama işte orada tıkandım kaldım. Parçaları bulmak kolay ama bir GNU/Linux İşletim Sistemi nasıl çalışır, temel parçalar nelerdir, kim kimi tetikliyor, kimin eli kimin cebinde konuları biraz karışık. Demokraside çare tükenmez deyip kendi yol planımı yaptım ve işe başladım: Öncelikle "bu sistem nasıl açılır, temel parçalar ve ana hatlar nelerdir?" sorununun yanıtını bulabilmek amacı ile The Linux Bootdisk HOWTO kılavuzunu hatim eyledik. Sırada Çekirdek Çitleme Kılavuzu (tldp tarafından şu an güncelleniyor) ve The Pocket Linux kılavuzu var.

Linux Açılış Disketi NASIL kılavuzu; bir açılış disketi yapımını anlatmakla birlikte -ki bu işin çok daha kolay bir yöntemi de mevcuttur:mkbootdisk- sistemin ilk ateşlemesini ve bu sistemin çalışması için gereken temel araçları açıklaması yönünden bence oldukça önemli bir başlangıç noktasını oluşturmakta. İyi bir başlangıç olmakla birlikte, sistem temellerini anlayabilmek için tek başına yeterli olmasını beklemeyin. Zaten kılavuzun ana hedefi de bu değil. Adı üstünde: açılış disketi nasıl yapılır, onu anlatıyor :)

Her halükarda okunması gereken ve Linux öğrenmeye çalışan benim gibiler için, uygulanması gereken bir kılavuz. Init'in ne olduğunu anlamadan önce, init'in herşeyin atası olduğunu anlamak gerekir, öyle değil mi?

http://www.geocities.com/yalcink01/bootdisk-howto/index.html adresinden belgeye ulaşabilirsiniz. Her zaman olduğu gibi: her türlü geribeslemeye kapımız açıktır

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.

Dopdolu ve Türkçe GNU/Linux Dergisi

FZ

LinuxFocus'un ilk sayısı Kasım 1997´de çıktı. LinuxFocus, İngilizce konuşulmayan ülkerdeki Linux hayranlarının elinde, Linux ile ilgili yazılı kaynakların ve onlar için desteğinin pek olmadığının anlaşılması üzere, Miguel Angel Sepulveda ve arkadaşları tarafından başlatılmıştır.

Derginin Kasım -Aralık 2003 sayısındaki konulardan birkaç örnek vermek gerekirse: GIMP: Kendi fırçalarınızı oluşturun, Blender ile 3D: Bir oda dolusu oyuncak, Çokluişlem programlama - Mesaj kuyrukları (3), Linux ile sıcaklık izleme

Qooxdoo JavaScript / AJAX Framework İle Merhaba Dünya'dan Biraz Öteye

muhuk

Aşağıdaki eğitsel burada yayınlanan (İngilizce) aslından çeviridir. Gerek benim yeteneksizliğim gerekse Türkçe'nin bilişim terimleri konusunda zayıf olması sebebiyle kötü bir çeviri olmuştur. Çeviri için özür diliyor ve mümkünse aslını okumanızı rica ediyorum.

Qooxdoo özellikle masaüstü benzeri GKA'lar yaratmakta kuvvetli bir AJAX çatısı. Tkinter veya GTK gibi, ama daha çok swing'e benziyor. İyi hazırlanmış belgeler ve temiz bir API ile geliyor. Yapılandırma ve ilklendirme için küçük bir Python programı var. Çok geniş bir kütüphaneye sahip olduğu için geliştirme sürecinde kısmen derlenmiş kaynak üzerinde çalışıp, bitirdiğinizde yine bu programı kullanıp tek (aslında iki, bir de yükleyici oluşturuyor), az yer kaplayan bir dosya oluşturabilirsiniz.