Entity Resolution (Varlık Çözümleme)

Varlık Çözümleme, farklı veri kaynaklarındaki kayıtların aynı gerçek-dünya varlığına ait olup olmadığını tespit eden veri entegrasyon tekniğidir.

Varlık çözümleme (Entity Resolution), farklı veri kaynaklarında yer alan kayıtların aynı gerçek-dünya nesnesine ait olup olmadığını tespit eden ve bu kayıtları birleştiren veri entegrasyon sürecidir. "Record linkage" (kayıt bağlama), "entity matching" (varlık eşleştirme) veya "deduplication" (tekilleştirme) olarak da bilinen bu disiplin, büyük veri yönetimi ile bilgi grafiklerinin temel taşlarından birini oluşturur. Farklı sistemlerden gelen "Ali Veli", "A. Veli" ve "ali.veli@firma.com" gibi kayıtların aynı kişiyi temsil ettiğini, ya da iki ayrı ürün kataloğundaki "iPhone 15 Pro 256GB" ile "Apple iPhone 15Pro" girişlerinin aynı ürünü ifade ettiğini otomatik olarak anlamak, varlık çözümlemenin en yaygın kullanım senaryolarıdır. Süreç üç temel adımda ilerler. İlk adım olan "blocking" (engelleme) aşamasında, tüm olası çift kombinasyonlarını karşılaştırmak yerine yalnızca büyük olasılıkla eşleşecek kayıtlar bir araya getirilir; bu, hesaplama maliyetini dramatik biçimde düşürür. İkinci adımda, seçilen kayıt çiftleri arasındaki benzerlik ölçülür. Bu amaçla Jaccard benzerliği, Levenshtein mesafesi (düzenleme mesafesi) veya makine öğrenimi modelleri kullanılır. Son adımda sınıflandırma yapılarak iki kaydın aynı varlığa mı yoksa farklı varlıklara mı ait olduğu karara bağlanır. Derin öğrenme çağıyla birlikte BERT tabanlı modeller, anlamsal benzerliği değerlendirip yazım hataları, kısaltmalar ve farklı biçimlendirmeler gibi zorluklara karşı çok daha dayanıklı sonuçlar üretmektedir. DeepMatcher, Ditto ve Unicorn bu alanda öne çıkan açık kaynak araçlar arasındadır. Uygulama alanları oldukça geniştir: müşteri veri yönetimi (MDM), sağlık sektöründe hasta kaydı birleştirme, finansal işlemlerde dolandırıcılık tespiti, e-ticarette ürün kataloğu normalizasyonu ve Wikidata gibi bilgi grafiklerinin zenginleştirilmesi bu kapsamda değerlendirilebilir.

Varlık Çözümleme Nasıl Çalışır?

Varlık çözümleme süreci, büyük veri kümelerinde naif n² karşılaştırma karmaşıklığını yönetilebilir hale getirmek için akıllı bir ardışık düzen izler. **Blocking (Engelleme):** Tüm olası çiftleri değerlendirmek yerine, yalnızca aynı mahalledeki, aynı posta kodundaki veya aynı soyadına sahip kayıtlar gibi benzerlik ihtimali yüksek gruplar oluşturulur. Bu aşama, karşılaştırılacak çift sayısını n²'den tipik olarak n·log(n)'e düşürür. Standart blocking, phonetic blocking (Soundex, Metaphone) ve LSH (Locality-Sensitive Hashing) popüler yöntemler arasındadır. **Benzerlik Puanlama:** Seçilen her çift için karakter düzeyinde (Levenshtein, Jaro-Winkler), token düzeyinde (Jaccard, TF-IDF kosinüs benzerliği) veya gömme (embedding) tabanlı benzerlik hesaplamaları yapılır. BERT gibi dil modelleri ise metni anlamsal temsil vektörlerine dönüştürerek "Dr. Smith" ile "Smith, J." arasındaki bağı kural tabanlı sistemlerin ötesinde yakalayabilir. **Sınıflandırma:** Hesaplanan benzerlik skorlarına dayanarak çiftler 'eşleşme', 'eşleşmeme' veya 'belirsiz' olarak etiketlenir. Kural tabanlı eşik yöntemlerinin yanı sıra lojistik regresyon, rastgele ormanlar ve sinir ağları bu adımda kullanılabilir. Belirsiz vakalar için aktif öğrenme döngüleri, insan etiketleyicilere yalnızca kritik çiftleri göndererek maliyeti minimize eder.

Temel Yaklaşımlar

Kural Tabanlı

Uzman tarafından yazılan kurallar (eğer ad + doğum tarihi eşleşiyorsa eşleştir) hızlı ve şeffaftır; ancak kapsam sınırlıdır ve bakım maliyeti yüksektir.

Olasılıksal (Fellegi-Sunter)

Her alanın eşleşme ve eşleşmeme olasılıklarını hesaplayarak nihai skor üretir. Splink bu modeli ölçeklenebilir biçimde uygulayan popüler açık kaynak kütüphanedir.

Makine Öğrenimi

Özellik vektörleri üzerinde eğitilen sınıflandırıcılar (SVM, gradient boosting), el yazımı kuralların ötesinde genelleşme sağlar. Etiketli veri gerektirir.

Derin Öğrenme (Ditto, DeepMatcher)

BERT tabanlı modeller ham metin girdisinden öğrenir; yazım hataları, farklı dil ve kısaltmalar gibi zorluklara karşı en dayanıklı yöntemdir.

Kullanım Alanları

  • check_circle Müşteri Veri Yönetimi (MDM): Birden fazla kanaldan (web, mobil, CRM, çağrı merkezi) gelen müşteri kayıtlarını birleştirerek tek müşteri görünümü (single customer view) oluşturur.
  • check_circle Sağlık Kayıtları Entegrasyonu: Farklı hastane ve klinik sistemlerindeki hasta dosyalarını MRN (Medical Record Number) veya demografik benzerlik üzerinden bağlar; yanlış tedaviyi önler.
  • check_circle Dolandırıcılık Tespiti: Farklı sahte kimlikler veya hesaplar üzerinden gerçekleştirilen işlemleri ortak varlığa bağlayarak finansal suistimali ortaya çıkarır.
  • check_circle E-Ticaret Katalog Yönetimi: Farklı tedarikçilerden gelen ürün kayıtlarını normalize ederek aynı ürünün binlerce satırda tekrar etmesini önler.
  • check_circle Bilgi Grafı Zenginleştirme: Wikipedia, Wikidata, DBpedia gibi yapılandırılmış kaynakları birbirine bağlayarak kapsamlı ontoloji oluşturur.

Sıkça Sorulan Sorular

  • check_circle Varlık çözümleme ile tekilleştirme (deduplication) arasındaki fark nedir?: Tekilleştirme, tek bir veri tabanı içindeki mükerrer kayıtları bulmayı ifade eder. Varlık çözümleme ise bu kavramın genelleştirilmiş halidir: birden fazla ve heterojen kaynak arasındaki eşleşmeleri kapsar. Tekilleştirme, varlık çözümlemenin özel bir durumudur.
  • check_circle Blocking neden zorunludur?: 1 milyon kayıt içeren iki veri seti için naif karşılaştırma 1 trilyon çift üretir. Blocking bu sayıyı makul bir alt kümeye (genellikle milyonlarca) indirerek gerçek zamanlı ve ölçeklenebilir işleme olanak tanır.
  • check_circle Etiketli veri olmadan varlık çözümleme mümkün mü?: Evet. Fellegi-Sunter gibi gözetimsiz (unsupervised) olasılıksal modeller ve kümeleme tabanlı yöntemler etiket gerektirmez. Ancak derin öğrenme modelleri daha yüksek doğruluk için etiketli çift verisi kullanır; aktif öğrenme bu etiketi minimize eder.
  • check_circle Varlık çözümleme hangi metriklerle değerlendirilir?: Precision (kesinlik), recall (duyarlılık) ve F1-score temel metriklerdir. Reduction Ratio (blocking'in ne kadar çift elediği) ve Pairs Completeness (gerçek eşleşmelerin ne kadarının blocking sonrası kaldığı) ek göstergelerdir.