Bunun temel sebebi, sınıflandırma problemlerinin genel öğreticili öğrenme kategorisinde ele alınması ama veri boyutunun büyümesi ile eldeki verinin test ve eğitim seti olarak bölünmesi, bu setlerin geneli ifade etmesindeki güçlük nedeni ile imkansız hale gelmesidir. Bir de büyük verinin temel özelliklerinden olan hızlı bir değişimin gerçekleşiyor olması klasik çözümleri iyice işlevsiz bırakıyor.
Geçenlerde ülkemizin tanınmış bir e-ticaret sitesi için yaptığım Proof Of Concept (POC) çalışmasında, site üzerinden müşterilere sunulan ürünlerde kategorilerin sağlıklı bir şekilde belirlenememesi problemi ile ilgili olarak bir ürün sınıflandırma çalışması gerçekleştirdim. Dünyanın e-ticarette en büyüklerinden olan Walmart'da da aynı problem için geliştirilen, Chimera sistemi konusundaki yazıyı bugün okuduğumda, o çalışmayı yaparken tespit ettiğim problemin temel zorluklarının nasıl aşılması gerektiği konusunda iyi bir örnek görünce sizlerle paylaşmak istedim. Öyleki, klasik veri madenciliği projelerinin neden yetersiz kaldığı konusunda somut bir örnek olması bakımından değerli kanaatimce.
Ben yaptığım çalışmada konu bağlamında karşılaştığım güçlüklerden aklıma gelenleri madde madde yazacağım, her maddede Chimera ile ilgili yazıdan ingilizce alıntı yaparak karşılaştırma yapabilmenizi sağlayacağımı umuyorum.
- Veri seti ürünlerin kısa tanım başlıklarını içermekteydi.
"So the only field that classification really can rely on is ‘Title’."
- Ürünlerde ait olduğu sınıf şudur şeklinde herhangi bir etiketleme yoktu.
- Sampling yapma imkanı var gibi görünmüyordu, çünkü hem güvenilir tam bir sınıflandırma yoktu, hem de veriye sürekli yeni sınıflar ekleniyordu.
- Önce hiyerarşik sınıflandırma algoritmasını kullandım ama sınıflandırmayı doğru yapıp yapmadığımı kontrol edecek bir mekanizmanın eksikliğini hissettim. Kendim görsel olarak elimdeki az veriye görsel olarak bakarak sonuçların iyi olduğunu değerlendirdim. Ama verinin gerçek boyutu karşısında bunun ciddi bir problem olacağının farkında olarak.
- Son olarak, R ile yaptığım hiyerarşik clustering büyük boyutlu bir matrise dayandığı için algoritmik çözümünün maliyeti O(n2) olunca, bu yöntemin eldeki çalışma verisi ile kendimce iyi sonuçlar üretmesine rağmen, gerçek veri boyutu ile sonuç almanın pratik olmadığını farkettim. Bunun üzerine alternatiflere baktığımda Spark MMlib kütüphanesi 'ne v1.6.0 ile giren Bisecting K-means in kullanılabileceğini gördüm. Fakat yine de problemi çözmede yeterli olmayacağını, sonuçların doğru/yanlış değerlendirmesinin nasıl yapılacağı konusunun açıkta kaldığını gördüm.
Sonuç
Toparlayacak olursak, verinin büyüklüğü çözümü farklı yapmak gerektiği konusunda bizleri zorluyor. Bunu probleme özgü olarak yapmak için klasik düşünce kalıplarından çıkıp "büyük düşünmek" gerekiyor sanırım :)Not: Kapaktaki fotoğrafın konusu BT dünyası ile ilgili olmasa da, e-ticarette ürün sınıflandırmanın önemi üzerine güzel bir yazı. Öneririm.
Yorumlar