Big Data, Bot’lar ve Öneri Sistemleri

Eren Camlikaya
HR Tech
Published in
4 min readMar 4, 2017

Son dönemin en popüler anahtar kelimelerini sırasıyla yazıp dikkatinizi çektikten sonra şimdi esas konudan bahsedebilirim. Aslında anlatacaklarım bu konulardan çok da uzak değil, önceki yazımda bahsettiğim Yenibiris.com’un öneri sisteminin hikayesini paylaşmak istiyorum.

Yenibiris.com tecrübeli bir kariyer platformu olarak gerçekten de ciddi anlamda bilgiyi bünyesinde barındırıyor. Milyonlarca adayın 16 yıl içerisindeki kariyer gelişiminden, ilan tercihlerine, yaptıkları başvurulardan evlerini taşımalarına kadar birçok bilgi aslında sistemin içinde mevcut. Facebook kadar olmasa da ciddi miktarda kişisel bilgiyi barındırıyor, hassasiyetle koruyor ve kesinlikle paylaşmıyoruz.

Machine Learning Her Yerde

Yenibiris.com olarak daha iyi bir deneyim sunmak adına kullanıcılardan aldığımız geri bildirimleri ve sektör içinde diğer platformlarla ilgili yapılan yorumları da incelediğimizde (ekşisözlük, uygulama mağazaları, sikayetvar çok iyi kaynaklar) mevcut öneri sistemlerinin etkili olmadığını ve bu konuda adayların ciddi rahatsızlık duyduğunu gözlemledik. Yenibiris.com özelinde bu rahatsızlığın temel kaynağı ise eski sistemimizin kural bazlı (rule-based) bir yapıda olmasıydı. Günümüzdeki birçok akıllı sistem ise artık makine öğrenmesi (akıllı sistemler / machine learning) algoritmaları kullanıyor. Sistemimizin detayına inmeden Sabancı Üniversitesi’ndeki yüksek lisansım sırasında akıllı sistemler ve istatistiksel örüntü tanıma (statistical pattern recognition) konusunda bana “okur-yazarlık” kazandırdıkları için danışmanım Berrin Yanıkoğlu ve değerli hocam Aytül Erçil’e tekrar teşekkür etmek istiyorum.

Yenibiris.com ilan öneri sistemimizi daha iyi nasıl iyileştirebileceğimizi düşünürken “Ockham’ın Usturası” (Ockham’s Razor) olarak geçen prensibi temel oldık. 13. yüzyılda yaşamış ingiliz bir keşiş olan Ockham der ki:

Bir probleme çözüm ararken, genelde en basit, en az varsayımlı açıklama doğruya en yakın olandır.

Aslında başka bir deyişle mükemmel iyinin düşmanıdır. Bu sebeple en hızlı şekilde başarı oranı en yüksek olacak bir çalışma yapmak için bu işi bilenlere danışmak istedik. Amacımız “over-engineer” etmeden yani işi dallanıp budaklandırmadan pratik bir çözüm sunmaktı. Hızlıca literatüre baktık ve “okur-yazarlığımız” sayesinde gördük ki Amazon 2003 yılında yayınladığı ürün önerileri sistemiyle bu problemi büyük ölçüde çözmüş. Amazon’un önerdiği “İşbirlikçi Filtreleme” (Collaborative Filtering) algoritması bugün hala birçok sitede “buna bakanlar buna da baktı”, “ilginizi çekebilecek ürünler” şeklinde karşımıza çıkıyor. Kodlama sadeliği, hazır kütüphanelerin varlığı ve biraz da sektörel “sihir” ile bu işi yapmaya karar verdik.

GO vs. Akıllı Sistemler

Akıllı sistemler satrançtan sonra GO gibi sonsuz hamle ihtimalinin olduğu bir tahta oyununda da insanları yenmeyi başardı. Fakat GO örneğini verme amacım bu değil. GO çok basit kuralları olan, kolay öğrenilen fakat zor ustalaşılan bir oyun. Baktığımızda akıllı sistemler alanında da artık birçok hazır kütüphane ve açık kaynak araçlar (Weka, R, vb.) var. Fakat elinizdeki datayı olduğu gibi bu sistemlere atıp sihir beklerseniz hayal kırıklığına uğrayabilirsiniz. Bu sistemlerin yüksek başarıyla çalışabilmesi için doğru parametrelerin belirlenmesi, özniteliklerin doğru seçilmesi, budanması ve anlamlı hedeflerin tanımlanması gerekiyor. Bunları yapabilmek için ise maalesef bir “kutsal kitap” yok. Deneyimle, çok datayla uğraşarak, farklı problemler çözerek kısayolları keşfetmeniz ve ustalaşmanız gerekiyor. Prensibinin anlaşılması kolay ama yapması zor bir iş olduğu için de günümüzde herkes “Big Data” konuşabiliyor ama çok az insan/firma çözüm üretebiliyor.

İlan öneri sistemleri için de aynı durum söz konusu. Elimizde milyonlarca aday, ilan ve yüz milyonlarca başvuru ile ne yapabileceğimizi, hangi bilgilerin önemli olabileceğini konuştuktan sonra e-ticaret ve pazaryeri alanındaki örnek kurguları inceleyip bir model geliştirdik. Sektörel “sihir” olarak bahsettiğim zaten buradaki parametrelerin seçimi, ağırlıkları ve idare edilecek istisnaların belirlenmesi (exception handling) oldu. Buralarda yapılacak hatalar en iyi, en hızlı algoritmayı da kullansanız ürünün başarılı olmasını engelleyecekti. Bu arada hata lüksümüz olmadığı gibi zamanımız da çok dardı (sadece 1 ay).

Ne Acelemiz Vardı?

Az önce dediğim gibi bu sistemi canlıya almak için sadece bir ayımız vardı. Çünkü hayalimiz doğrultusunda ekip olarak kendimize bir hedef koymuştuk ve 2016 sonuna kadar listemize aldığımız işlerin üzerini çizmeye kararlıydık. Zaman dar olduğundan ve mevcut ekip diğer geliştirmeleri üzerinde çalıştığından bu işi dış kaynak kullanımıyla çözmek istedik. 2 farklı firmadan (biri kurumsal biri start-up) teklif aldık. İşin ilginç yanı iki teklif arasında tam 10 kat fark vardı (abartısız). Start-up ekip elimizdeki data’nın boyutu, işin sosyal sorumluluk yanı ve etki alanı gibi sebeplerden iyi bir fiyat vermişti. Diğer firma ise bu işi “profesyonel” yürüten bir firma idi. Fakat 10 kat nedir? Günün sonunda kullanacağımız yöntemin, kütüphanelerin ve tanımın çok net belirlendiği bir iş için gelen bir teklif bile piyasada benzer işleri yaptıran, yaptırmak isteyen firmalar için üzülmemize sebep oldu. Arz eksikliği belli ki fiyatların yükselmesine sebep olmuş.

Şanslıydık ki yanımızda uygun bir fiyat teklifi ve istekli bir ekip vardı. Fakat malesef çalışamadık. Çok iyi niyetli ve istekli iki ekibin birlikte çok güzel işler yapmasına yine aynı iki ekibin hukuk süreçleri engel oldu. Konu hassas olduğu için aramızdaki sözleşme trafiği tahminimizden uzun zaman aldı ve süremiz doldu. Kısacası başarılı bir iş ortaya koymak için entelektüel sermaye, nakit bütçe ya da iyi danışmanlar ayrı ayrı yetmedi. Doğru ürünü doğru zamanda ortaya koymak için tüm yıldızların aynı anda hizalanması gerekli, bu da hiç kolay değil. Sonunda verdiğimiz sözü tutmak adına sprintimizi bozup bu konuya eğilmek ve yalnız ilerlemek zorunda kaldık. Sonrasında ise ürün yönetimi anlamında bu dersi hiç unutmayıp her zaman sürprizlere hazır olacak şekilde yolumuza devam ettik.

Başardık.

3 kişilik bir ekiple 2 haftalık bir development süresi sonrasında yeni ilan öneri sistemimizi yayına aldık. Sonuçlar ise beklediğimizin çok daha iyi oldu. Yeni öneri sistemiyle attığımız “beğenebileceğiniz ilanlar” e-posta gönderimimiz sonrasında Yenibiris.com tarihindeki günlük başvuru rekorunu kırdık. Hatta Linkedin’de önceki sistemi eleştirenler tekrar paylaşım yaparak bizlere teşekkür etti.

Bu arada hala yanlış öneriler yapabiliyoruz, adaylarımızdan eleştiri de almadık değil. İyi ki de aldık. Kural bazlı olmayan, istatistiksel bir sistem kullandığımız için istisna senaryoları yaşayan kullanıcılarımız “anlamsız” önerilerle karşılaşabiliyorlar. Bu tabi ki bir bahane değil ve gelen yorumlarla sistem parametrelerini sürekli değiştirerek sistemimizi daha gürbüz (robust) bir hale getiriyoruz.

Son olarak bu noktada yapılabilecek en büyük hatanın ise Pareto kuralını göz ardı edip herkesi mutlu etmeye çalışmak olduğunu düşünüyorum. Slack, Trello gibi piyadaki başarılı ürünlere baktığınızda ana işlevinden sapmamış, çok basit işleri çok iyi yaptıklarını görebilirsiniz. Aksi halde günümüzde benzer ürünlerde de görebileceğiniz özellik bunalımına (feature creep) kendimizi teslim etmiş oluruz. Bizim için de bu sebeple hedef kitlemizi doğru seçip bu kitle için ürün geliştirmek, ana segmentimize “wow” dedirtmek herkesi mutlu etmenin her zaman önünde.

Sevgi ve saygılarımla,

Eren

--

--

Eren Camlikaya
HR Tech

Experienced product leader with a strategic focus on designing, building and managing online marketplaces.