Kueri klasifikasi tepi Gremlin di Neptunus ML - Amazon Neptune

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Kueri klasifikasi tepi Gremlin di Neptunus ML

Untuk klasifikasi tepi Gremlin di Neptunus ML:

  • Model ini dilatih pada satu properti tepi. Himpunan nilai unik dari properti ini disebut sebagai satu set kelas.

  • Nilai properti kelas atau kategoris tepi dapat disimpulkan dari model klasifikasi tepi, yang berguna ketika properti ini belum melekat pada tepi.

  • Untuk mengambil satu atau lebih kelas dari model klasifikasi tepi, Anda perlu menggunakan with() langkah dengan predikat, "Neptune#ml.classification" untuk mengkonfigurasi langkah. properties() Format output mirip dengan apa yang Anda harapkan jika itu adalah properti tepi.

catatan

Klasifikasi tepi hanya berfungsi dengan nilai properti string. Itu berarti bahwa nilai properti numerik seperti 0 atau tidak 1 didukung, meskipun string setara "0" dan adalah. "1" Demikian pula, nilai properti Boolean true dan false tidak berfungsi, tetapi "true" dan "false" lakukan.

Berikut adalah contoh kueri klasifikasi tepi yang meminta skor kepercayaan menggunakan Neptune#ml.score predikat:

g.with("Neptune#ml.endpoint","edge-classification-movie-lens-endpoint") .with("Neptune#ml.iamRoleArn","arn:aws:iam::0123456789:role/sagemaker-role") .E("relationship_1","relationship_2","relationship_3") .properties("knows_by", "Neptune#ml.score").with("Neptune#ml.classification")

Responsnya akan terlihat seperti ini:

==>p[knows_by->"Family"]
==>p[Neptune#ml.score->0.01234567]
==>p[knows_by->"Friends"]
==>p[Neptune#ml.score->0.543210]
==>p[knows_by->"Colleagues"]
==>p[Neptune#ml.score->0.10101]

Sintaks kueri klasifikasi tepi Gremlin

Untuk grafik sederhana di User mana simpul kepala dan ekor, dan Relationship merupakan tepi yang menghubungkannya, contoh kueri klasifikasi tepi adalah:

g.with("Neptune#ml.endpoint","edge-classification-social-endpoint") .with("Neptune#ml.iamRoleArn","arn:aws:iam::0123456789:role/sagemaker-role") .E("relationship_1","relationship_2","relationship_3") .properties("knows_by").with("Neptune#ml.classification")

Output dari kueri ini akan terlihat seperti berikut ini:

==>p[knows_by->"Family"]
==>p[knows_by->"Friends"]
==>p[knows_by->"Colleagues"]

Dalam query di atas, langkah E() dan properties() digunakan sebagai berikut:

  • E()Langkah ini berisi kumpulan tepi yang ingin Anda ambil kelas dari model klasifikasi tepi:

    .E("relationship_1","relationship_2","relationship_3")
  • properties()Langkah berisi kunci di mana model dilatih, dan .with("Neptune#ml.classification") harus menunjukkan bahwa ini adalah kueri inferensi HTML klasifikasi tepi.

Kunci properti ganda saat ini tidak didukung di langkah properties().with("Neptune#ml.classification"). Misalnya, kueri berikut menghasilkan pengecualian yang dilemparkan:

g.with("Neptune#ml.endpoint","edge-classification-social-endpoint") .with("Neptune#ml.iamRoleArn","arn:aws:iam::0123456789:role/sagemaker-role") .E("relationship_1","relationship_2","relationship_3") .properties("knows_by", "other_label").with("Neptune#ml.classification")

Untuk pesan kesalahan tertentu, lihatDaftar pengecualian untuk kueri inferensi Gremlin Neptune ML.

Langkah properties().with("Neptune#ml.classification") dapat digunakan dalam kombinasi dengan semua langkah-langkah berikut:

  • value()

  • value().is()

  • hasValue()

  • has(value,"")

  • key()

  • key().is()

  • hasKey()

  • has(key,"")

  • path()

Menggunakan inferensi induktif dalam kueri klasifikasi tepi

Misalkan Anda menambahkan tepi baru ke grafik yang ada, di buku catatan Jupyter, seperti ini:

%%gremlin g.V('1').as('fromV') .V('2').as('toV') .addE('eLabel1').from('fromV').to('toV').property(id, 'e101')

Anda kemudian dapat menggunakan kueri inferensi induktif untuk mendapatkan skala yang memperhitungkan tepi baru:

%%gremlin g.with("Neptune#ml.endpoint", "ec-ep") .with("Neptune#ml.iamRoleArn", "arn:aws:iam::123456789012:role/NeptuneMLRole") .E('e101').properties("scale", "Neptune#ml.score") .with("Neptune#ml.classification") .with("Neptune#ml.inductiveInference")

Karena kueri tidak deterministik, hasilnya akan agak berbeda jika Anda menjalankannya beberapa kali, berdasarkan lingkungan acak:

# First time ==>vp[scale->Like] ==>vp[Neptune#ml.score->0.12345678] # Second time ==>vp[scale->Like] ==>vp[Neptune#ml.score->0.21365921]

Jika Anda membutuhkan hasil yang lebih konsisten, Anda dapat membuat kueri deterministik:

%%gremlin g.with("Neptune#ml.endpoint", "ec-ep") .with("Neptune#ml.iamRoleArn", "arn:aws:iam::123456789012:role/NeptuneMLRole") .E('e101').properties("scale", "Neptune#ml.score") .with("Neptune#ml.classification") .with("Neptune#ml.inductiveInference") .with("Neptune#ml.deterministic")

Sekarang hasilnya akan kurang lebih sama setiap kali Anda menjalankan kueri:

# First time ==>vp[scale->Like] ==>vp[Neptune#ml.score->0.12345678] # Second time ==>vp[scale->Like] ==>vp[Neptune#ml.score->0.12345678]