paint-brush
Yapay Zeka Gizli Bağlantıları Haritalıyor ve Daha Yeni Başlıyorile@andrei9735
Yeni tarih

Yapay Zeka Gizli Bağlantıları Haritalıyor ve Daha Yeni Başlıyor

ile Andrei4m2025/02/14
Read on Terminal Reader

Çok uzun; Okumak

Öneri motorlarından ağ optimizasyonuna kadar bağlantı tahmini, değer katan çok yönlü bir araçtır.
featured image - Yapay Zeka Gizli Bağlantıları Haritalıyor ve Daha Yeni Başlıyor
Andrei HackerNoon profile picture
0-item

Neptune ML kullanarak bağlantı tahmini üzerine serimizin beşinci ve son yazısında, çıkarım sürecine dalıyoruz: Bağlantı tahminleri için eğitilmiş GNN modelimizi kullanmak üzere bir çıkarım uç noktası ayarlıyoruz. Uç noktayı belirlemek için, Neptune kümesinin API'sini ve S3'te depolanan model eserlerini kullanacağız. Uç nokta canlıyken, grafiğimizdeki yüksek güvenilirlikli potansiyel bağlantıları belirlemek için bir Gremlin sorgusu kullanarak bağlantı tahmini için sorgulayacağız.


Şu ana kadar Twitch sosyal ağ verilerini Neptün kümesine yükledik (bu serinin 1. Bölümünde açıklandığı gibi), verileri ML profili kullanarak dışa aktardık (ayrıntılar için 2. Bölüme bakın), verileri ön işledik (3. Bölümde açıklandığı gibi), modeli eğittik (4. Bölüme bakın) ve şimdi eğitilmiş modeli tahminler üretmek için kullanmaya hazırız.


1. bölümü buradan ; 2. bölümü buradan ; 3. bölümü buradan; ve 4. bölümü buradan okuyabilirsiniz.

SON NOKTAYI OLUŞTURMA

Kümenin API'sini ve S3'te sahip olduğumuz model yapıtlarını kullanarak çıkarım uç noktasını oluşturalım. Her zamanki gibi, öncelikle S3 ve SageMaker'a erişimi olan bir IAM rolüne ihtiyacımız var. Rolün ayrıca, onu Neptune kümesine eklememize izin veren bir güven politikasına sahip olması gerekir (güven politikası bu kılavuzun 3. Bölümünde bulunabilir). Ayrıca, VPC içinden SageMaker ve CloudWatch API'sine erişim sağlamamız gerekir, bu nedenle bu serinin 1. Bölümünde açıklandığı gibi VPC uç noktalarına ihtiyacımız var.


Bu curl komutuyla kümenin API'sini kullanarak bir çıkarım uç noktası oluşturalım:

 curl -XPOST https://(YOUR_NEPTUNE_ENDPOINT):8182/ml/endpoints \ -H 'Content-Type: application/json' \ -d '{ "mlModelTrainingJobId": YOUR_MODEL_TRAINING_JOB_ID, "neptuneIamRoleArn": "arn:aws:iam::123456789012:role/NeptuneMLNeptuneRole" }'

Bağlantı tahmini için kullanılacak EC2 örnek türünü seçmek ve birden fazla örnek dağıtmak için ' instanceType ' ve ' instanceCount ' parametrelerini kullanabiliriz. Parametrelerin tam listesi burada bulunabilir. Küçük grafiğimiz için yeterli CPU ve RAM'e sahip olduğu için varsayılan ' ml.m5(d).xlarge ' örneğini kullanacağız ve bu örnek türü, önceki aşamamızda model eğitimi sonrasında oluşturulan infer_instance_recommendation.json'da önerildi:

 { "disk_size": 12023356, "instance": "ml.m5d.xlarge", "mem_size": 13847612 }

API, çıkarım uç noktası kimliğiyle yanıt verir:

 {"id":"b217165b-7780-4e73-9d8a-5b6f7cfef9f6"}

Daha sonra çıkarım uç noktasının durumunu şu komutla kontrol edebiliriz:

 curl https://YOUR_NEPTUNE_ENDPOINT:8182/ml/endpoints/INFERENCE_ENDPOINT_ID?neptuneIamRole='arn:aws:iam::123456789012:role/NeptuneMLNeptuneRole'

ve bir kez ' durum: Hizmette ' şeklinde şu şekilde yanıt verdiğinde,

 { "endpoint": { "name": "YOUR_INFERENCE_ENDPOINT_NAME-endpoint", "arn": "...", "status": "InService" }, "endpointConfig": {...}, "id": "YOUR_INFERENCE_ENDPOINT_ID", "status": "InService" }

Bu, onu veritabanı sorgularında kullanmaya başlamaya hazır olduğumuz anlamına geliyor.

Uç nokta ayrıca AWS konsolundan SageMaker -> Çıkarım -> Uç Noktalar altında görüntülenebilir ve yönetilebilir.

SON NOKTAYI SORGULAMA

Grafikteki yeni 'takip et' bağlantılarını tahmin etmek için uç noktayı kullanalım. Bunu yapmak için olası yeni bağlantıların kaynak köşesini seçmemiz gerekir.

Kaynak köşenin zaten bağlantıları varsa bu yardımcı olur, bu yüzden en fazla mevcut bağlantıya (outE ve inE bağlantıları) sahip köşeyi bulmak için bu sorguyu kullanacağız:

 gV() .group() .by() .by(bothE().count()) .order(local) .by(values, Order.desc) .limit(local, 1) .next()

Sonuç şudur

 {v[1773]: 1440}

Bu da ID = 1773 olan tepe noktasının 1440 bağlantıya (720 inE ve 720 outE) sahip olduğu anlamına geliyor.

1773 nolu düğümde başlayan ve bu düğümde biten kenar sayısını bulmak için şu sorguları kullanabiliriz:

 gV('1773').outE().count() gV('1773').inE().count()

Aynı sayıda inE ve outE bağlantısı bekleniyor çünkü başlangıç veri seti karşılıklı arkadaşlıklar içeriyor ve biz de verileri ters kenarlarla zenginleştirerek Neptün yönelimli grafikle çalışmasını sağladık.


Şimdi tahmin edilen bağlantıları alalım. Bunu yapmak için, Neptune ML tahminleriyle bir Gremlin sorgusu çalıştıracağız. Kullanıcı 1773'ün en az 0,1 (10%) güven eşiğiyle (modele göre bağlantının var olma olasılığı) takip edebileceği kullanıcıları elde etmek için çıkarım uç noktasını ve DB kümesine eklenen SageMaker rolünü kullanacağız , ancak kullanıcı 1773'ün zaten takip ettiği kullanıcıları hariç tutacağız:

 %%gremlin g.with('Neptune#ml.endpoint', 'YOUR_INFERENCE_ENDPOINT_NAME') .with('Neptune#ml.iamRoleArn', 'arn:aws:iam::123456789012:role/NeptuneMLSagemakerRole') .with('Neptune#ml.limit', 10000) .with('Neptune#ml.threshold', 0.1D) .V('1773') .out('follows') .with('Neptune#ml.prediction') .hasLabel('user') .not( __.in('follows').hasId('1773') )


Bu 4 sonuç döndürür:

 "Result" "v[755]" "v[6086]" "v[6382]" "v[7005]"


Modelimize göre, kullanıcı 1773'ün bu 4 kullanıcıdan her birini takip etme olasılığı en az %10'dur. Belki de AWS tarafından önerilen eğitim işlerinin sayısını en az 10'a çıkararak modeli geliştirebilir ve ardından ortaya çıkan modelin performansını ve tahmin edilen bağlantıları karşılaştırabiliriz. Gerçek uygulamalarda, grafiğe kullanıcı profili ve etkinlik verileri eklemek de tahmin doğruluğunu artırır.


Sosyal ağ veri kümelerindeki öngörülen bağlantılar, arkadaş ve içerik önerileri gibi kişiselleştirilmiş öneriler sunmak, kullanıcı katılımını ve topluluk büyümesini artırmak, kaybı azaltmak ve hedefli reklamcılık için ek veri sağlamak amacıyla kullanılabilir.


Bağlantı tahminini bir sosyal ağ veri kümesine uygulamış olsak da, bu teknolojinin olası birçok uygulamasından sadece biridir. Öneri motorlarından ağ optimizasyonuna kadar, bağlantı tahmini, verilerdeki gizli ilişkileri ortaya çıkararak değer katan çok yönlü bir araçtır. Grafik tabanlı uygulamalar genişlemeye devam ettikçe, endüstriler genelinde bağlantı tahmininin potansiyeli yeni içgörüler, verimlilik ve gelişmiş kullanıcı deneyimleri vaat ediyor.