Grafik Sinir Ağları (GraphSAGE)

Jan 02 2023
Motivasyon konuşmacısı Jim Rohn'un ünlü bir sözü vardır, “En çok zaman geçirdiğiniz beş kişinin ortalamasısınız.” İşte bir başkası: “Bana arkadaşlarını göster, ben de sana geleceğini göstereyim.

Motivasyon konuşmacısı Jim Rohn'un ünlü bir sözü var,

"En çok vakit geçirdiğin beş kişinin ortalamasısın."

[Kaynak]

İşte bir tane daha: " Bana arkadaşlarını göster, sana geleceğini göstereyim ." Bu alıntılara bir zamanlar rastlamış olabilirsiniz, ancak onların felsefenin ötesindeki varlıklarını hiç merak ettiniz mi? Peki, Makine Öğrenimi (ML) — Grafik Sinir Ağları (GNN) alanındaki son gelişmeleri inceleyerek öğrenelim.

Adından da anlaşılacağı gibi, GNN'ler , arkadaşların sosyal ağları, moleküler yapılar vb. gibi grafik veri yapılarından öğrenmek için özel olarak tasarlanmış geniş bir sinir ağları ailesini temsil eder. Sinir ağları nedir? Yeni başlayanlar için, fonksiyon tahmincileri olarak düşünülebilirler, yani verilerinize bakarak altta yatan gizli fonksiyonu öğrenmeye çalışırlar. Grafik, düğümler olarak bilinen gerçek dünya varlıklarını ve bunların kenarlar aracılığıyla etkileşimlerini temsil eden bir veri yapısıdır. Ayrıca, hem düğümlerin hem de kenarların öznitelikleri gibi ek bilgiler içerebilir.

Bu yazıda, popüler bir GNN algoritmasına bakacağız: GraphSAGE [1]. Amaç, düğümlerin yalnızca kendi bilgilerini değil aynı zamanda çevrelerindeki bilgileri de yakalayan özlü bir temsilini hesaplamaktır. Bitişik düğümlerin, düğüm/uç nitelikleri gibi bilgiler içeren mesajlar aracılığıyla her turda birbirleriyle bilgi alışverişinde bulunduğu yinelemeli bir algoritmadır. Daha sonra her düğüm, güncellenmiş bir temsil elde etmek için komşularından gelen mesajları ve kendi bilgilerini birleştirir.

Şekil 1: (Solda) Grafik 'nin Bob ve Alice'i içeren 6 düğümden ve arkadaş ilişkisini temsil eden kenarlardan oluştuğu GraphSAGE algoritmasına genel bakış. (Sağda) Sosyal ağlarda arkadaş tavsiyesi için GraphSAGE'den çıktı temsillerinin kullanımı.

Şekil 1, görsel anlama için GraphSAGE'ye genel bir bakışı açıklar ve Şekil 2, girişi aşağıdakilerden oluşan algoritmayı gösterir:
(1) Grafik (, ℰ): Bu, bir dizi düğümden ( köşeler) ve gerçek hayattaki bir ağı temsil eden kenarlar ℰ. Kullanıcılardan oluşan bir sosyal ağ örneğini, arkadaşlığı simgeleyen düğümler ve kenarlar olarak düşünün, yani bir kenar (, ), ve 'nin arkadaş olduğunu temsil eder.
(2) Giriş özellikleri (_ ∀ ∈ ): Bu, grafikteki her bir düğüm hakkında sahip olduğumuz öznitelikleri veya ilk ön bilgileri ifade eder. Bu temsili, çeşitli boyutlarda kullanıcı tercihlerinin bir vektörü veya listesi olarak düşünün (bkz. Şekil 1'deki 'düğüm öznitelikleri').
(3) Derinlik : Üst üste yığılmış GNN birimlerinin katman sayısını veya sezgisel olarak bilgi toplamak/göndermek için bir düğümün mahallesine (çevresine) ne kadar bakmak istediğinizi gösterir.
(4) Ağırlıklar ^: modelin -inci katmanının dahili parametreleri ve diğer optimizasyon teknikleriyle öğrenilir.
(5) Toplayıcı işlevi Toplama _: Bir düğümde mesajlar alındıktan sonra toplanan bilgileri birleştirme stratejisi. Bu, her katman için farklı olabilir; böylece alt simge . Örneğin, tüm bilgileri toplamak veya ortalama almak.
(6) Komşuluk : Bu işlev, bilgi toplarken/gönderirken bir düğümün çevresini tanımlar. Basitlik için, bu onun bitişik düğümleri olabilir.

Şekil 2: GraphSAGE için Algoritma [1].

GNN algoritmasının çıktısı, her düğüm için, hem başladığımız özniteliklerinin hem de ağ yapısındaki çevresinin önceki bilgilerini yakalayan yoğunlaştırılmış bir temsildir . İkinci bilgi (yerel bağlam olarak da adlandırılır), GNN'lerin yakalamaya çalıştığı şeydir. Bu bilgiler nerede kullanılabilir diye sorabilirsiniz. Bu temsiller, örneğin arkadaş tavsiyesi gibi çeşitli görevler için güçlü göstergelerdir. Diyelim ki Bob ve Alice henüz birbirlerini tanımıyorlar ama pek çok ortak arkadaşları var. Yerel çevreleri (bağlamları) GNN kullanılarak elde edilen yeni temsillerde önemli bir örtüşmeye sahip olduğundan, bir öneri modeli artık ikisi arasındaki olası bir bağlantıyı kolayca tanımlayabilir.

Algoritma, her düğümün komşularına (komşularından) bilgi gönderdiği (topladığı) mesaj geçiş yinelemeleriyle başlar. Her düğüm için, hakkında sahip olduğumuz ilk bilgilerle yeni bir değişkeni _ başlatıyoruz ve takip eden her yinelemeyle güncelliyoruz. Her katmanda, her bir düğümün üzerinden geçerek toplanan bilgileri işleriz. Jim Rohn'un sözünün tam olarak yerine oturduğuna inandığım yer burasıdır. Satır 4 , komşularından _ ( en çok zaman geçirdiğiniz kişiler ) gelen bilgileri toplar ve birleştirir ( ortalamalar )veya burada arkadaşlar ile) verilen stratejiye göre. 5. Satır, tüm bilgileri kodlayan aynı boyutta vektörün güncellenmiş bir bilgisini elde etmek için matris dönüşümlerini (^ ile çarpma) kullanarak birleştirilmiş bilgileri _() düğümün kendi önceki bilgileri _ ile birleştirir (vektör birleştirme). Satır 7, gösterimleri birim ölçeğinde normalleştirir ve bir sonraki tura geçirir. Son olarak, son turdaki gösterimler döndürülür ve daha önce açıklandığı gibi diğer aşağı akış görevleri için kullanılabilir.

Umarım bu, GNN kavramına ilişkin sezgisel bir anlayış sağlamıştır ve bu alanda bazı ilginç fikirleri teşvik etmiştir. Bu temel fikrin parçalarını ve parçalarını değiştirerek ve daha karmaşık işlevler kullanarak alanlarda yeni gelişmeler oldu. GNN'lerin güçleri inanılmaz ve onların makine öğrenimi ve yapay zekanın geleceğinde önemli bir dayanak olacağına yürekten inanıyorum.

Referanslar:

[1] Hamilton, Will, Zhitao Ying ve Jure Leskovec. "Büyük grafikler üzerinde tümevarımsal temsil öğrenimi." Sinirsel bilgi işleme sistemlerindeki gelişmeler 30 (2017).