“İnsanoğlu, sayıları manipüle etme konusunda özünde çok kötü olduğumuz gerçeğiyle başa çıkmak için bir sistem icat etti. Ve bu sisteme grafik ismini verdi.” - Charlie Munger
Görsel: Tim Claphan
Grafikler manipulasyona açık sistemler olsa da, başlıkta dediği gibi bazen bir görsel bize birçok şey anlatır. Ancak bir grafik bundan çok daha fazlasını anlatır. Verilerin grafikler biçiminde görsel bir temsili, eyleme geçirilebilir içgörüler edinmemize ve bunlara dayalı olarak daha iyi veri odaklı kararlar vermemize yardımcı olur. Daha iyi anlamak için Graf teorisine bakmak daha iyi olacaktır.
Graf Teorisi
Graf teorisi, çizge teorisi veya çizit teorisi (graph theory), grafları inceleyen matematik dalıdır. Graf, düğümler ve bu düğümleri birbirine bağlayan kenarlardan oluşan bir tür ağ yapısıdır. Bir graf, çizge veya çizit, düğümlerden (köşeler) ve bu düğümleri birbirine bağlayan kenarlardan oluşur.
Leonhard Euler tarafından, 1736 yılında, Königsberg'in yedi köprüsü (Almanca: Die Sieben Brücken von Königsberg) adında günümüzde hâlâ popülerliğini koruyan bir problem ile ilgili olarak yazılan bir makale, graf teorisinin kesin başlangıç tarihidir.
Eğer ilginizi çekiyorsa bu problemi çözmeye çalışabilirsiniz. Detaylı anlatım için linki kaynaklar kısmında bulabilirsiniz.
Kavramı anlamak için basit bir grafiğe bakalım.
Bu grafiğin, bir şehirde insanların genel olarak ziyaret ettiği yerleri ve o şehrin ziyaretçisinin izlediği yolu temsil ettiğini düşünelim. V'yi yerler ve E'yi bir yerden diğerine seyahat yolu olarak varsayalım.
V = {v1, v2, v3, v4, v5}
E = {(v1,v2), (v2,v5), (v5, v5), (v4,v5), (v4,v4)}
Veri bilimi ve analitik alanı çeşitli yapıları ve problemleri modellemek için grafikler kullanmıştır. Bir Veri Bilimcisi olarak, sorunları verimli bir şekilde çözebilmelisiniz ve grafikler, verilerin belirli bir şekilde düzenlendiği durumlarda bunu yapmak için bir mekanizma sağlar.
Neden Graflar?
Graflar, ilişkileri, etkileşimleri olan varlıkları tanımlamak ve analiz etmek için genel bir dildir. Bu, dünyayı veya verili alanı izole edilmiş veri noktaları kümesi olarak düşünmek yerine, onu gerçekten bu varlıklar arasındaki ağlar ve ilişkiler açısından düşündüğümüz anlamına gelir. Bu, varlıklar arasında temel ilişkiler grafiği olduğu ve bu varlıkların, bu bağlantılara veya grafiğin yapısına göre birbirleriyle ilişkili olduğu anlamına gelir.
Doğal olarak graflar olarak temsil edilebilen ve bu grafiksel ilişkileri modelleyen birçok veri türü vardır. Altta yatan ise alanın bu ilişkisel yapısıdır. Temel veriler için çok daha doğru modeller oluşturmamıza izin verir.
Örneğin, bilgisayar ağlarını, hastalık yollarını, fizikteki parçacık ağlarını, besin ağlarındaki organizma ağlarını, altyapıyı ve ayrıca olayların tümü grafiklerle gösterilebilir. Benzer şekilde, sosyal ağları, ekonomi ağlarını, iletişim ağlarını, interneti dev bir iletişim ağı olarak ve beynimizdeki nöronların nasıl birbirine bağlandığını örnek verebiliriz. Yine, tüm bu alanlar doğal olarak ağ veya grafiklerdir.
Bilgiyi alabilir ve gerçeği farklı varlıklar arasındaki ilişkiler olarak temsil edebiliriz. Hücrelerimizdeki düzenleyici mekanizmaları, farklı varlıklar arasındaki bağlantıların yönettiği süreçler olarak tanımlayabiliriz.
Hatta gerçek dünyadan sahneler alabilir ve bunları sahnedeki nesneler arasındaki ilişkilerin grafikleri olarak sunabiliriz. Bunlara sahne grafikleri denir. Bilgisayar kodu yazılımını alıp, diyelim ki farklı işlevler arasındaki çağrıların bir grafiği veya soyut sözdizimi ağacı tarafından yakalanan kodun bir yapısı olarak temsil edebiliriz. Ayrıca doğal olarak düğümlerden, atomlardan ve bağlardan oluşan molekülleri, atomları düğümler ve bağlarını aralarında kenarlar olarak temsil ettiğimiz bir dizi grafik olarak alabiliriz. Bilgisayar grafiklerinde üç boyutlu şekiller alıp bunları grafik olarak temsil edebiliriz.
AĞLARIN VE GRAFİKLERİN TÜRÜ
Ağlar (Doğal Grafikler):
- Sosyal ağ: Toplum 7+ milyar bireyden oluşan bir koleksiyondur.
- İletişim ve işlemler: Elektronik cihazlar, telefon görüşmeleri, finansal işlemler.
- Biyotıp: Genler / proteinler arasındaki etkileşimler yaşamı düzenler.
- Beyin bağlantıları: Düşüncelerimiz milyarlarca nöron arasındaki bağlantılarda gizlidir.
Grafikler ( temsili olarak):
- Bilgi, organize ve bağlantılıdır.
- Yazılım, bir grafik olarak gösterilebilir.
- Benzerlik ağları: Benzer veri noktalarını bağlama
- İlişkisel yapılar: Moleküller, Sahne Grafikleri, 3B şekil, Parçacık tabanlı fizik simülasyonları
Daha iyi tahmin için ilişkisel yapıdan nasıl yararlanırız?
Karmaşık alanlar, ilişkisel bir grafik olarak temsil edilebilecek zengin bir ilişkisel yapıya sahiptir. Açıkça ilişkileri modelleyerek daha iyi performans elde ederiz!
Ve bu, günümüzün derin öğrenme modeli araç kutusunun(toolbox) basit veri türleri için özelleştiği derin öğrenme çağında özellikle ilginç ve önemlidir. Bunlar basit diziler ve ızgaralar için uzmanlaşmıştır. Bir dizi bu doğrusal yapıya sahip benzer bir metin veya konuşma örnek verilebilir. Bu tür yapıyı analiz etmek için geliştirilmiş harika araçlar vardır. Görüntülerin tümü yeniden boyutlandırılabilir ve bu uzamsal konuma sahip olabilir, böylece sabit boyutlu ızgaralar veya sabit boyutlu standartlar olarak gösterilebilirler. Derin öğrenme metodolojisi, bu tür sabit boyutlu görüntüleri işlemede çok iyi olmuştur.
Fakat ağlar karmaşıktır:
- Keyfi boyut ve karmaşık topolojik yapı (yani, ızgaralar gibi uzamsal konum yok)
- Sabit düğüm sıralaması veya referans noktası yok.
- Genellikle dinamiktir ve multimodel özelliklere sahiptir.
Graf Makine Öğrenmesi Kullanmanın Zorlukları Nelerdir?
Heyecan verici bir alan vaatlerle dolu olsa da, grafikler üzerinde makine öğrenimi hala yeni bir teknolojidir. Makine öğreniminin ana alanlarında topluluk, yaygın olarak uygulanabilir teknikler keşfetti (örneğin, resimler için ResNet veya metin için BERT kullanarak öğrenmeyi aktarma) ve bunları geliştiriciler için erişilebilir hale getirdi (örneğin, TensorFlow, PyTorch, FastAI). Bununla birlikte, eşit derecede kolay, evrensel teknikler yoktur ve popüler makine öğrenmesi kitaplıklarından herhangi birinin grafik verileri için desteği henüz bulunmamaktadır.
Benzer şekilde, Neo4j gibi grafik veritabanları, verileri üzerinde makine öğrenimi algoritmaları çalıştırmanın yollarını sunmaz.
Derin öğrenme kütüphanelerinde grafik desteğinin olmamasının nedenlerinden biri, veri yapısının esnekliğinin (örneğin herhangi bir düğümün diğer düğümlerle herhangi bir sayıda ilişkisi olabilir) sabit hesaplama grafiğine, sabit boyutlu tensöre uymamasıdır. Daha basit bir ifadeyle, seyrek bir grafiği matris olarak temsil etmek ve işlemek zordur. İmkansız değil, ancak vektörler, metin ve resimlerle çalışmaktan kesinlikle daha zor. Ancak buna rağmen, Graf ML’e ilgide güçlü bir artış var. Bu alanın hem ana akım hem de birçok sektörde verileri analiz etme şeklimiz için temel bir araç olacağı öngörülüyor.
Diğer herhangi bir makine öğrenmesi tekniği gibi, çoğu Graf ML’inde büyük miktarda eğitim verisi gerektirdiğini unutmayın.
Peki grafikler gibi karmaşık veri türlerine çok daha geniş çapta uygulanabilen sinir ağlarını nasıl geliştirebiliriz?
Derin öğrenme ve temsili öğrenmenin yeni sınırı ilişkisel veri grafikleridir.
Yapmak istediğimiz şey, sinir ağını kurmak ama girdide, grafiğimizi alması ve çıktıda, tahminlerde bulunmasını bekliyoruz. Bu tahminler, tek tek düğümler düzeyinde olabilir, düğüm veya bağlantı çiftleri düzeyinde olabilir veya yepyeni oluşturulmuş bir grafik gibi çok daha karmaşık bir şey de olabilir. Örnek olarak, girdi üzerinde bir grafik olarak gösterilebilen belirli bir molekülün özelliğinin tahmini verilebilir. Soru şu ki, bunu uçtan uca yapmamıza izin verecek bu sinir ağı mimarisini nasıl tasarlayacağız, yani hiçbir insani özellik mühendisliğine(feature engineering) gerek kalmayacak mı?
Yani geleneksel makine öğrenimi yaklaşımlarında, özellik mühendisliği için çok çaba harcanır. Bu özellik mühendisliği adımının kaldırıldığı öğrenmeye Temsili Öğrenme(Representation Learning) denir. Ve temel olarak, grafik verilerimizi alır almaz, otomatik olarak grafiğin iyi bir temsilini öğrenebilir, böylece downstream makine öğrenimi algoritmaları için kullanılabilir. Temsili öğrenme, grafikteki özelliklerin otomatik olarak çıkarılması veya öğrenilmesi ile ilgilidir.
Temsili öğrenmeyi anlamanın yolu, grafiğimizin düğümlerini d-boyutlu bir gömmeye, d-boyutlu vektörlere eşlemektir. Öyle ki ağdaki benzer düğümler gömme alanında birbirine yakın gömülür. Dolayısıyla amaç, düğümleri alacak ve onları bu d-boyutlu, gerçek değerli vektörlere eşleyecek olan bu f fonksiyonunu öğrenmektir.
Grafik Makine Öğrenmesi Yaklaşımları
Node Embeddings
Node embeddings, Graf ML’deki ilk gelişmelerden biriydi ve basitlikleri, sağlamlıkları ve hesaplama verimliliği nedeniyle popülerliğini koruyor.
Random Walks
Random Walks, uzun bir matematiksel teori soyuyla desteklenen, şaşırtıcı derecede güçlü ve basit bir grafik analiz tekniğidir.
Node2Vec
Node2Vec, random walks kullanan popüler ve oldukça genelleştirilmiş bir gömme tekniğidir.
Node2Vec Uzantıları
Node2Vec'in gücü basitliğidir, ancak bu aynı zamanda çöküşüdür. Standart algoritma, istenen diğer bilgi parçalarının yanı sıra düğüm özelliklerini veya kenar özelliklerini içermez.
Random Walks Kullanarak İşbirlikçi Filtreleme
Random Walks kullanarak işbirlikçi filtreleme Random Walks’ın çok basit bir örneği, işbirliğine dayalı filtreleme problemini çözmektir. Kullanıcıların ürün incelemeleri verildiğinde, bir kullanıcı başka hangi ürünleri beğenecek? Bu, genel olarak node2vec ile aynı şemayı izler, ancak daha da basitleştirilmiştir.
Grafik Ağları (Grafik Evrişim Ağları)
Grafik Ağları, Graf ML'nin zengin ve önemli bir alanıdır. Temel öncül, grafik yapısının kendisine bir sinir ağı yerleştirmektir. Tipik olarak bu, her bir düğüm için durumları depolamayı ve bu durumları düğümlerin komşularına yaymak için bir komşuluk matrisi kullanmayı içerir.
Bu makalede değişken seçiminde kullanılan sarmal yöntemleri anlatıyor ve uygulamalarla model performansına olan etkilerini değerlendiriyorum.
Trigram yöntemini kullanarak SQL Server üzerinde bir database'de text arama işlemini anlatıyorum.
Makine öğrenmesi modellerinde değişken seçimi neden önemli? Filtreleme yöntemleri neler? Nasıl uygularız? Tüm bu sorulara cevap buluyoruz.
Miuul İçin 7 Günlük Ücretsiz Deneme
Her gün yeni bir film.
Çevrimdışı izlemek için iOS veya Android'e indirin.
Reklamsız.
İstediğiniz zaman iptal edin.