ML&AI Dünyasında Feature Store Nedir? Veri Ambarı (DWH) ile Kesişen ya da Ayrışan Noktaları Nelerdir?

Yiğit Şener
7 min readJul 24, 2021

Feature Store terimini değişken ambarı ya da öznitelik mağazası ya da değişken deposu olarak çevirebiliriz. Ancak bu yazımda terimin İngilizce hali ile devam edeceğim. Şimdi konumuza geçelim.

Bildiğimiz gibi herhangi bir makine öğrenmesi (ML) projesi için özellik mühendisliği (feature engineering) oldukça karmaşık olan kritik bir konuma sahiptir. Unutmayalım ki doğru bir süzgeçten geçirilerek oluşturulan değişkenler daha iyi modeller çıkarmamıza imkan sağlar. Öte yandan yeni bir değişken oluşturmak oldukça zahmetli bir iştir ve bu değişkenin geçtiği yolların (pipeline) kurulması ise işin bizim için başka bir zorlayıcı boyutu. O güzelim değişkenleri elde edene kadar bir çok farklı deneme yanılma süreçlerinden geçiyoruz ta ki bizi tatmin eden noktaya varıncaya dek. Bitti mi bitmedi değişkenlerin oluşumunun online ya da offline kullanım senaryolarına göre dizayn edilmesi de gerekiyor.

Keşke diyor veri bilimciler; öyle bir yer olsa ki bize daha önceden çalışılmış değişkenleri verse. Bu değişkenleri izleyebilsek, genel istatistiklerini de alabilsek. Ahh ah.

İşte Karşınızda Feature Store

Feature store veriyi başka bir yolla yönetmemizi sağlayan sadece makine öğrenmesi operasyonları (MLops) için değil aynı zamanda genel itibariyle yapay zeka geliştirmeleri için de ihtiyacı giderek artan bir platformdur. En basit tanımı ile Feature store, makine öğrenmesi için değişkenlerin tutulduğu bir veri ambarıdır (DWH). Veri ambarı ile ilişkisine yazının ilerleyen bölümlerinde değineceğim.

Bu ortamın sunmuş olduğu avantajlara geçmeden önce makine öğrenmesi süreçlerinde ekiplerin en çok üzerinde durduğu konuları bir hatırlayalım.

  • Doğru ham veriye (raw data) erişim
  • Ham veriden değişken çıkarımı
  • Eğitim veri seti için değişkenlerin kombinasyonu
  • Model üretim aşamasında değişkenlerin hesaplanmas ve servisi
  • Değişkenlerin gözetilmesi (monitoring)

Feature store ML akışlarında talep edilen değişkenlerin giderek artan karmaşıklık problemini çözümlemeye odaklanır. Bu sayede veri bilimciler aşağıdaki noktalarda ihtiyaç ya da isteklerini karşılar.

  • Verinin geçerliliğinin doğrulanması
  • Kalite kontrol
  • Değişkenin tazeliği
  • Başka modellerde kullanım kontrolü ve versiyon bilgisi

Feature store, veri kaynakları (data sources) ile modelin algoritmalarının koşturulduğu platform arasında bir yerdedir. O yer ile veri bilimci konuşabilir, iletişim kurar ve modelini oluştururken en doğru seçimleri kısa bir zamanda yapabilir.

Şu andaki durumda birçok veri bilimcinin feature store’u bulunmamaktadır. Bu yüzden zamanlarının çoğunu veriyi temizlemekle, dönüştürmekle veya doğrulamakla harcamaktadırlar. Artık klişe oldu ama gerçek bu; modellemenin %80'i veriyi hazır hale getirmekle geçiyor. Feature store’u olmayan veri bilimciler, düşük bireysel ve kurumsal üretkenliğin yanında veri ambarlarının henüz ortada yokken iş analistlerinin çalışma mantığına benzer bir süreç içinde çalışırlar. Yani bu insanlar modeli mi geliştirsinler, veriyi mi hazırlasınlar, iş analistliği mi yapsınlar gibi birden çok role soyunmak durumunda kaldıklarından ML&IA&DL algoritmalarının inceliklerine ayıracak enerji bulamayabilirler.

Çift Veritabanı Olarak Feature Store

Feature store hem real time ihtiyaçlar hem de anlık olmayan toplu model skorlamaları gibi gereksinimler çerçevesinde çift başlı (online/offline) veritabanı mimarisine sahiptir.

  1. Offline Feature Store: Değişkenler toplu/paket (batch) olarak modelleme esnasında train ya da test olarak kullanılabilir. Yine batch olarak modeller için skorlama yapılabilir. Örneğin günlük/haftalık/aylık kullanıcı bazlı sitede yapılan hareketlerin hesaplandığı değişkenler.
  2. Online Feature Store: Biraz daha karmaşık bir yapıya sahiptir. Oldukça hızlı analiz edilmesi ve aksiyon alınması gereken modellemeler için kullanıldığından minimum gecikme süresi talep eder. Online modelleme uygulamalarında değişken setlerindeki tek bir satırı (vektör) çağırarak modele girdi (input) sağlayabilir. Bununla beraber fraud detection algoritmaları için (örn: z-score temelli) üzerinden online tespit süreçlerinde uygulanabilir.

Offline feature store genellikle yüksek miktarda değişkenlerin verimli bir şekilde servis edilmesi ve depolanması için gerekliyken online feature store düşük gecikme seviyesinde (örn: hız < 10ms) vektörün iletimi için gereklidir. Offline feature store için Apache Hive ve BigQuery, online feature store için ise MySQL Cluster, Redis ve DynamoDB örnek gösterilebilir.

Feature Store’un Faydaları

Bir platform ya da ortam olarak feature store’u ele aldığımızda farklı iş akışlarında hem çalışanlara hem de kuruma doğrudan ya da dolaylı olarak birçok yararı bulunabilir.

Hızlı Geliştirme

Öncelikle mühendislik aşamasında bulunan verinin işlenmesi ve konfigürasyonlarının yapılması aşamaları kısmen de olsa geçmiş oluyor. Bununla birlikte hızlı veri keşfinin yapılması da zaman kazandıran önemli faktörlerden bir tanesi. Hali hazırda yapılan dönüştürme veya hesaplamalı işlemlerin testleri ve canlıda işletilmesi yeniden bu süreçlerin işletilmemesi için çalışanlara dolayısı ile kuruma zaman kazandırmaktadır.

Online olarak tutulan değişkenlere ihtiyaç olması halinde veri bilimcinin offline veritabanlarında olduğu kadar rahat erişmesi gerçek zamanlı algoritmaları inşa ederken ona zaman kazandırmaktadır. Örnek bir API fonksiyonu yazalım.

data = feature_store.get(“users”).filter_by(user_login_id)

Üretimde Sorunsuz Model Dağıtımı

Canlı sisteme geçişte makine öğrenmesi akışlarındaki en büyük problemler eğitilen veri ile gerçekte karşılaşılan veri arasındaki uyumsuzluklardan ortaya çıkar. Feature store’un sağladığı avantaj sayesinde sorunsuz olarak model (training) geliştirilmesinin yanında canlı ortamda servis edilme aşamasında kullanılacak olan aynı veri kaynağı olduğu için problemler azalmaktadır.

Artan Model Başarısı

Feature store her bir değişken için ayrı bir metadata tutar. Örneğin hesaplanmış bir X değişkenin metadatasında başka modellerdeki kullanımı ve etkisi (feature importance) yer alır. Dolayısı ile iyileştirilecek ya da kurulacak model için öncesinde inanılmaz güzel bir ipucu sağlar. Böylelikle model başarısını (accuracy) artırmada önemli bir role sahip olduğu söylenebilir.

Daha İyi Bir İşbirliği için Mükerrer İşten Kaçış

Düşününki farklı departmanlarda farklı makine öğrenmesi modelleri geliştiriliyor. Hatta aynı bölüm içerisinde daha önceden farklı modeller geliştirilmiş olabilir. Örneğin geliştirilen modellerin içerisinde kaç tanesi aynı değişkenleri kullanmış olabilir. Kaç kişi, bölüm aynı işi yeniden ve yeniden yapmış olabilir. Çevremde aynı kurumların 3 yılda bir aynı işi sanki sıfırdan yapılıyormuşçasına yeniden fonlamasına şaşırmıyorum artık. Neden? çünkü kurumsal hafıza yok. İşte veri bilimcilerin altın koleksiyonu olan feature store daha önce çalışılan değişkenleri metadata ile birlikte sunduğu için hem yeniden kullanılmasına izin veriri hem de yeniden aynı değişkenin türetilmesi için harcanacak olan zamandan tasarruf edilir.

Uber firmasının kendi içerisinde geliştirdiği MLops ürünü olan Michelangelo platformunda feature store sürecinin nasıl yer aldığını aşağıdaki akışta görebilirsiniz.

Şekil 1: Uber’s Machine Learning Platform

Uber’in şekil 1'de yer alan mimarisinde görüldüğü üzere online ve offline olmak üzere iki ana çatıda ayrıştırdığı pipeline dizaynında kesişim kümesi olarak feature store yer alıyor.

Veri Ambarı (DWH) ve Feature Store

Veri ambarı, tek bir platformda veriyi merkezi hale dönüştürerek tüm kurumun erişime imkan sağlarken Tableau ve Power BI gibi görselleştirme araçları ile iş alanına ait analizleri kuvvetlendirir. Bu araçları kullananların verinin nasıl geldiği, nerede olduğu veya nasıl sorgu yazıldığı konusunda bilgiye ihtiyaçları bulunmamaktadır. Sadece birkaç adımda tarihsel verilere ulaşarak işe ait alansal iç görü için veri analizleri gerçekleştirilebilir.

Veri bilimiyle uğraşanlar ise tam tersine farklı alana ait farklı iç görüler türetebilmek için tahmine dayalı modeller kurarlar. Feature store, birçok farklı model arasında kullanılabilen değişkenlerin erişim kontrolü, düzenlenmesi ve merkezi bir kasa olarak değişkenlerin dokümante edilmesinde veri bilimi için oluşturulan bir veri ambarıdır. Bu ambarımsı şeye farklı data kaynaklarından verinin dönüştürülmesi, hesaplanması ve doğrulanması sonrası veri akışı sağlanır.

Şekil 2: Temel Feature Store Kaynakları

Feature Store için Kaynak Olarak Veri Ambarı

İki platform veriden iç görülerin oluşturulmasında kullanılan datanın depolandığı merkezlerdir. İki platform da bir ya da daha fazla ayrı kaynaktan (operasyonel veritabanları, data lake, vb.) verinin getirilmesi için data hatlarına sahiptir (ETL, feature pipelines, vb.).

Her ikisi de veri setlerinin organize edilmesi için metadatadan ve kullanıcı bazlı yetkilendirme ile veri paylaşımı için erişim kontrolünden faydalanır.

Bir veri ambarı tipik olarak veri analizleri düşünülerek tasarlanıyor olmasına rağmen her iki platform da geniş hacimli veri depolanması ve donanım ürünleri için ölceklenebilir olarak tasarlanabilmektedir. Diğer yandan modern data lake tasarımları yüksek miktarda verinin depolanması için maliyet esnekliği sağlamaktadır.

Feature Store ve Veri Ambarının (DWH) Farklılaşan Yönleri

Feature store ve veri ambarının ana mimari yapısındaki en kayda değer farklardan birisi; veri ambarı özellikle tek sütunlu veri tabanı kullanırken feature store çift veritabanı (online/offline) uygulamasında bulunur.

Aşağıdaki tablo 1'de DWH ile feature store arasındaki farklılıklar yer almaktadır. Veri ambarı kullanıcıları öncelikli olarak yapılan işin analizine yönelik olarak var olan durumu ya da geçmiş verilerden yola çıkarak şu andaki durumu interaktif sorgular aracılığla analiz etmek için kullanırlar. Feature store ortamınını ise sıklıkla veri bilimciler online ya da offline modelleme yapmak için kullanırlar ve Python, R, Java veya Scala gibi dilleri tercih ederler.

Tablo 1: DWH ve Feature Store Farklılıkları

Tablo 1, DWH ve feature store arasındaki farklarda verinin hangi tiplerde tutulduğunu göstermesinin yanında feature store’da veri doğrulama işleminin zaruri olduğu görülmektedir.

Bir veri ambarı, veri türünü ve sütun kısıtlamalarını açıklamak için verileri şemalarla birlikte tablolarda depolar. Benzer şekilde, feature store verileri (tipik olarak tablolarda) depolayabilir, ancak değişkenler sıklıkla tüketilmeye hazır sayısal değerler veya vektörler (embeddings) veya tensörler olarak depolandığından, daha zengin veri tipleri kümesine daha az ihtiyaç vardır.

Veri ambarı, ön işlemden geçirilmiş halde değişkenleri tutuması gereklidir ancak bir makine öğrenmesi süreci için bu değişkenlerin sağladığı fonksiyonellik yeterli olmayabilir. Aynı zamanda model üzerinde çalışan veri bilimcilerin düşük gecikme hızına, tanımlanmış/temizlenmiş veriye ve bu veriye dair ön gözlemler yapabilecekleri bilgilere ihtiyaçları bulunur. Bundan dolayı DWH ve feature store stratejik olarak birbirlerinden ayrılmış olurlar.

Sonuç

AI ile kapsamlı bir şekilde ilgilenen en büyük teknoloji şirketlerinden bazıları kendi feature store’larını oluşturdu (Uber, Twitter, Google, Netflix, Facebook, Airbnb, Linkedin vb.). Bu, verimli bir ML işlem hattının bir parçası olarak feature store kullanmanın ne kadar önemli olduğunu endüstrinin geri kalanına göstermektedir. Artan sayıda yapay zeka projesi ve bu projelerin üretime getirilmesiyle ilgili karmaşıklıklar göz önüne alındığında, endüstrinin özellik mühendisliğinin özünü standartlaştırma ve otomatikleştirme yoluna ihtiyacı bulunuyor. Bu nedenle, feature store’un herhangi bir makine öğrenimi hattının birinci düzey parçası olarak konumlandığını varsaymak doğru olur.

--

--