توصيات قوية والبحث باستخدام الرسم البياني المعرفي لـ IMDb - الجزء الثاني ذكاء بيانات PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.

توصيات الطاقة والبحث باستخدام الرسم البياني للمعرفة IMDb - الجزء 2

توضح هذه السلسلة المكونة من ثلاثة أجزاء كيفية استخدام الشبكات العصبية للرسم البياني (GNNs) و أمازون نبتون لتوليد توصيات الفيلم باستخدام IMDb و Box Office Mojo Movies / TV / OTT حزمة البيانات المرخصة ، والتي توفر مجموعة واسعة من البيانات الوصفية الترفيهية ، بما في ذلك أكثر من 1 مليار تصنيف مستخدم ؛ قروض لأكثر من 11 مليون من أعضاء الطاقم وطاقم العمل ؛ 9 ملايين فيلم وتليفزيون وترفيه ؛ وبيانات شباك التذاكر العالمية من أكثر من 60 دولة. يقوم العديد من عملاء وسائل الإعلام والترفيه في AWS بترخيص بيانات IMDb من خلال تبادل بيانات AWS لتحسين اكتشاف المحتوى وزيادة تفاعل العملاء والاحتفاظ بهم.

In جزء 1، ناقشنا تطبيقات GNN ، وكيفية تحويل وإعداد بيانات IMDb الخاصة بنا للاستعلام. في هذا المنشور ، نناقش عملية استخدام Neptune لإنشاء حفلات الزفاف المستخدمة لإجراء بحث خارج الكتالوج في الجزء 3. نحن أيضا نذهب أمازون نبتون ML، وميزة التعلم الآلي (ML) لـ Neptune ، والرمز الذي نستخدمه في عملية التطوير لدينا. في الجزء 3 ، نتعرف على كيفية تطبيق تضمينات الرسم البياني المعرفي لدينا على حالة استخدام بحث خارج الكتالوج.

حل نظرة عامة

غالبًا ما تحتوي مجموعات البيانات الكبيرة المتصلة على معلومات قيمة يصعب استخلاصها باستخدام الاستعلامات القائمة على الحدس البشري وحده. يمكن أن تساعد تقنيات ML في العثور على الارتباطات الخفية في الرسوم البيانية مع مليارات العلاقات. يمكن أن تكون هذه الارتباطات مفيدة في التوصية بالمنتجات والتنبؤ بالجدارة الائتمانية وتحديد الاحتيال والعديد من حالات الاستخدام الأخرى.

يتيح Neptune ML إنشاء وتدريب نماذج تعلم مفيدة على رسوم بيانية كبيرة في ساعات بدلاً من أسابيع. لتحقيق ذلك ، يستخدم Neptune ML تقنية GNN التي تدعمها الأمازون SageMaker و مكتبة الرسم البياني العميق (DGL) (الذي المصدر المفتوح). GNNs هي مجال ناشئ في الذكاء الاصطناعي (على سبيل المثال ، انظر مسح شامل لشبكات الرسم البياني العصبية). للحصول على تدريب عملي حول استخدام GNNs مع DGL ، راجع تعلم الشبكات العصبية للرسم البياني باستخدام مكتبة الرسم البياني العميق.

في هذا المنشور ، نوضح كيفية استخدام Neptune في خط الأنابيب الخاص بنا لإنشاء حفلات الزفاف.

يوضح الرسم البياني التالي التدفق الكلي لبيانات IMDb من التنزيل إلى التضمين.

نستخدم خدمات AWS التالية لتنفيذ الحل:

في هذا المنشور ، نوجهك عبر الخطوات عالية المستوى التالية:

  1. قم بإعداد متغيرات البيئة
  2. قم بإنشاء وظيفة تصدير.
  3. قم بإنشاء وظيفة معالجة البيانات.
  4. قدم وظيفة تدريبية.
  5. تحميل حفلات الزفاف.

كود لأوامر Neptune ML

نستخدم الأوامر التالية كجزء من تنفيذ هذا الحل:

%%neptune_ml export start
%%neptune_ml export status
%neptune_ml training start
%neptune_ml training status

نستخدم neptune_ml export للتحقق من الحالة أو بدء عملية تصدير Neptune ML ، و neptune_ml training لبدء والتحقق من حالة وظيفة تدريب نموذج Neptune ML.

لمزيد من المعلومات حول هذه الأوامر وغيرها ، راجع استخدام سحر منضدة Neptune في دفاتر ملاحظاتك.

المتطلبات الأساسية المسبقة

لمتابعة هذا المنشور ، يجب أن يكون لديك ما يلي:

  • An حساب AWS
  • الإلمام بـ SageMaker و Amazon S3 و AWS CloudFormation
  • تم تحميل بيانات الرسم البياني في مجموعة نبتون (انظر جزء 1 لمزيد من المعلومات)

قم بإعداد متغيرات البيئة

قبل أن نبدأ ، ستحتاج إلى إعداد بيئتك عن طريق تعيين المتغيرات التالية: s3_bucket_uri و processed_folder. s3_bucket_uri هو اسم الدلو المستخدم في الجزء 1 و processed_folder هو موقع Amazon S3 لإخراج مهمة التصدير.

# name of s3 bucket
s3_bucket_uri = ""

# the s3 location you want to store results
processed_folder = f"s3://{s3_bucket_uri}/experiments/neptune-export/"

قم بإنشاء وظيفة تصدير

في الجزء الأول ، أنشأنا دفتر ملاحظات SageMaker وخدمة تصدير لتصدير بياناتنا من مجموعة Neptune DB إلى Amazon S1 بالتنسيق المطلوب.

الآن بعد أن تم تحميل بياناتنا وإنشاء خدمة التصدير ، نحتاج إلى إنشاء وظيفة تصدير ، وبدء تشغيلها. للقيام بذلك ، نستخدم NeptuneExportApiUri وإنشاء معلمات لوظيفة التصدير. في الكود التالي ، نستخدم المتغيرات expo و export_params. جلس expo لديك NeptuneExportApiUri القيمة ، والتي يمكنك العثور عليها في ملف النواتج علامة التبويب الخاصة بمكدس CloudFormation. إلى عن على export_params، نحن نستخدم نقطة النهاية لمجموعة Neptune ونوفر القيمة لـ outputS3path، وهو موقع Amazon S3 لإخراج مهمة التصدير.

expo = 
export_params={
    "command": "export-pg",
    "params": { "endpoint": neptune_ml.get_host(),
                "profile": "neptune_ml",
                "cloneCluster": True
                  },
    "outputS3Path": processed_folder,
    "additionalParams": {
            "neptune_ml": {
             "version": "v2.0"
             }
      },
"jobSize": "medium"}

لإرسال مهمة التصدير ، استخدم الأمر التالي:

%%neptune_ml export start --export-url {expo} --export-iam --store-to export_results --wait-timeout 1000000                                                              
${export_params}

للتحقق من حالة مهمة التصدير ، استخدم الأمر التالي:

%neptune_ml export status --export-url {expo} --export-iam --job-id {export_results['jobId']} --store-to export_results

بعد اكتمال عملك ، اضبط ملف processed_folder متغير لتوفير موقع Amazon S3 للنتائج المعالجة:

export_results['processed_location']= processed_folder

قم بإنشاء وظيفة معالجة البيانات

الآن بعد أن تم التصدير ، قمنا بإنشاء مهمة معالجة البيانات لإعداد البيانات لعملية تدريب Neptune ML. يمكن القيام بذلك بعدة طرق مختلفة. في هذه الخطوة ، يمكنك تغيير ملف job_name و modelType المتغيرات ، ولكن يجب أن تظل جميع المعلمات الأخرى كما هي. الجزء الرئيسي من هذا الرمز هو modelType المعلمة ، والتي يمكن أن تكون إما نماذج رسوم بيانية غير متجانسة (heterogeneous) أو الرسوم البيانية المعرفية (kge).

تتضمن وظيفة التصدير أيضًا training-data-configuration.json. استخدم هذا الملف لإضافة أو إزالة أي عقد أو حواف لا تريد توفيرها للتدريب (على سبيل المثال ، إذا كنت تريد توقع الارتباط بين عقدتين ، فيمكنك إزالة هذا الارتباط في ملف التكوين هذا). بالنسبة إلى منشور المدونة هذا ، نستخدم ملف التكوين الأصلي. للحصول على معلومات إضافية ، انظر تحرير ملف تكوين التدريب.

قم بإنشاء مهمة معالجة البيانات الخاصة بك بالرمز التالي:

job_name = neptune_ml.get_training_job_name("link-pred")
processing_params = f"""--config-file-name training-data-configuration.json 
--job-id {job_name}-DP 
--s3-input-uri {export_results['outputS3Uri']}  
--s3-processed-uri {export_results['processed_location']} 
--model-type kge 
--instance-type ml.m5.2xlarge
"""

%neptune_ml dataprocessing start --store-to processing_results {processing_params}

للتحقق من حالة مهمة التصدير ، استخدم الأمر التالي:

%neptune_ml dataprocessing status --job-id {processing_results['id']} --store-to processing_results

قدم وظيفة تدريبية

بعد اكتمال مهمة المعالجة ، يمكننا بدء عملنا التدريبي ، حيث نقوم بإنشاء حفلات الزفاف الخاصة بنا. نوصي بنوع مثيل من ml.m5.24xlarge ، ولكن يمكنك تغيير هذا ليناسب احتياجاتك الحاسوبية. انظر الكود التالي:

dp_id = processing_results['id']
training_job_name = dp_id + "training"
training_job_name = "".join(training_job_name.split("-")) training_params=f"--job-id train-{training_job_name}  
--data-processing-id {dp_id}  
--instance-type ml.m5.24xlarge  
--s3-output-uri s3://{str(s3_bucket_uri)}/training/{training_job_name}/" 

%neptune_ml training start --store-to training_results {training_params} 
print(training_results)

نقوم بطباعة متغير training_results للحصول على معرف الوظيفة التدريبية. استخدم الأمر التالي للتحقق من حالة وظيفتك:

%neptune_ml training status --job-id {training_results['id']} --store-to training_status_results

تحميل حفلات الزفاف

بعد اكتمال وظيفتك التدريبية ، فإن الخطوة الأخيرة هي تنزيل حفلات الزفاف الخام الخاصة بك. توضح لك الخطوات التالية كيفية تنزيل حفلات الزفاف التي تم إنشاؤها باستخدام KGE (يمكنك استخدام نفس العملية لـ RGCN).

في الكود التالي ، نستخدم neptune_ml.get_mapping() و get_embeddings() لتنزيل ملف التعيين (mapping.info) وملف الضمانات الخام (entity.npy). ثم نحتاج إلى تعيين الزخارف المناسبة لمعرفاتهم المقابلة.

neptune_ml.get_embeddings(training_status_results["id"])                                            
neptune_ml.get_mapping(training_status_results["id"])                                               
                                                                                        
f = open('/home/ec2-user/SageMaker/model-artifacts/'+ training_status_results["id"]+'/mapping.info',  "rb")                                                                                   
mapping = pickle.load(f)                                                                
                                                                                        
node2id = mapping['node2id']                                                            
localid2globalid = mapping['node2gid']                                                  
data = np.load('/home/ec2-user/SageMaker/model-artifacts/'+ training_status_results["id"]+'/embeddings/entity.npy')                                                                           
                                                                                          
embd_to_sum = mapping["node2id"]                                                        
full = len(list(embd_to_sum["movie"].keys()))                                                                                                                                    
ITEM_ID = []                                                                            
KEY = []                                                                                
VALUE = []                                                                              
for ii in tqdm(range(full)):                                                         
node_id = list(embd_to_sum["movie"].keys())[ii]
index = localid2globalid['movie'][node2id['movie'][node_id]]
embedding = data[index]
ITEM_ID += [node_id]*embedding.shape[0]
KEY += [i for i in range(embedding.shape[0])]
VALUE += list(embedding)
                                                                       
meta_df = pd.DataFrame({"ITEM_ID": ITEM_ID, "KEY": KEY, "VALUE":VALUE})
meta_df.to_csv('new_embeddings.csv')

لتنزيل RGCNs ، اتبع نفس العملية مع اسم وظيفة تدريب جديد عن طريق معالجة البيانات مع تعيين معلمة modelType على heterogeneous، ثم قم بتدريب النموذج الخاص بك مع تعيين معلمة modelName على rgcn انظر تعريف هنا لمزيد من التفاصيل. بمجرد الانتهاء من ذلك ، اتصل بـ get_mapping و get_embeddings وظائف لتنزيل ملف معلومات الخريطة و كيان. npy الملفات. بعد أن يكون لديك ملفات الكيان والتعيين ، تكون عملية إنشاء ملف CSV متطابقة.

أخيرًا ، قم بتحميل حفلات الزفاف الخاصة بك إلى موقع Amazon S3 الذي تريده:

s3_destination = "s3://"+s3_bucket_uri+"/embeddings/"+"new_embeddings.csv"

!aws s3 cp new_embeddings.csv {s3_destination}

تأكد من تذكر موقع S3 هذا ، وسوف تحتاج إلى استخدامه في الجزء 3.

تنظيف

عند الانتهاء من استخدام الحل ، تأكد من تنظيف أي موارد لتجنب الرسوم المستمرة.

وفي الختام

في هذا المنشور ، ناقشنا كيفية استخدام Neptune ML لتدريب حفلات زفاف GNN من بيانات IMDb.

بعض التطبيقات ذات الصلة بتضمينات الرسم البياني المعرفي هي مفاهيم مثل البحث خارج الكتالوج ، وتوصيات المحتوى ، والإعلان المستهدف ، والتنبؤ بالروابط المفقودة ، والبحث العام ، وتحليل الأتراب. البحث خارج الكتالوج هو عملية البحث عن المحتوى الذي لا تملكه ، والعثور على أو التوصية بالمحتوى الموجود في الكتالوج الخاص بك والذي يكون قريبًا مما بحثه المستخدم قدر الإمكان. نتعمق أكثر في البحث خارج الكتالوج في الجزء 3.


حول المؤلف

توصيات قوية والبحث باستخدام الرسم البياني المعرفي لـ IMDb - الجزء الثاني ذكاء بيانات PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.ماثيو رودس هو عالم بيانات أعمل في Amazon ML Solutions Lab. وهو متخصص في بناء خطوط أنابيب التعلم الآلي التي تتضمن مفاهيم مثل معالجة اللغة الطبيعية ورؤية الكمبيوتر.

توصيات قوية والبحث باستخدام الرسم البياني المعرفي لـ IMDb - الجزء الثاني ذكاء بيانات PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.ديفيا بهارجافي هي عالمة بيانات وقائدة عمودية لوسائل الإعلام والترفيه في Amazon ML Solutions Lab ، حيث تحل مشاكل الأعمال عالية القيمة لعملاء AWS باستخدام التعلم الآلي. تعمل على فهم الصور / الفيديو وأنظمة توصية الرسم البياني المعرفي وحالات استخدام الإعلانات التنبؤية.

توصيات قوية والبحث باستخدام الرسم البياني المعرفي لـ IMDb - الجزء الثاني ذكاء بيانات PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.غوراف ريلي هو عالم بيانات في Amazon ML Solution Lab ، حيث يعمل مع عملاء AWS عبر قطاعات مختلفة لتسريع استخدامهم للتعلم الآلي وخدمات AWS Cloud لحل تحديات أعمالهم.

توصيات قوية والبحث باستخدام الرسم البياني المعرفي لـ IMDb - الجزء الثاني ذكاء بيانات PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.كاران السندواني هو عالم بيانات في Amazon ML Solutions Lab ، حيث يقوم ببناء ونشر نماذج التعلم العميق. وهو متخصص في مجال الرؤية الحاسوبية. في أوقات فراغه ، يستمتع بالمشي لمسافات طويلة.

توصيات قوية والبحث باستخدام الرسم البياني المعرفي لـ IMDb - الجزء الثاني ذكاء بيانات PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.سوجي أديشينا هو عالم تطبيقي في AWS حيث يطور نماذج قائمة على الشبكة العصبية للرسم البياني للتعلم الآلي في مهام الرسوم البيانية مع تطبيقات الاحتيال وإساءة الاستخدام والرسوم البيانية المعرفية وأنظمة التوصية وعلوم الحياة. في أوقات فراغه ، يستمتع بالقراءة والطبخ.

توصيات قوية والبحث باستخدام الرسم البياني المعرفي لـ IMDb - الجزء الثاني ذكاء بيانات PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.فيديا ساجار رافيباتي هو مدير في Amazon ML Solutions Lab ، حيث يستفيد من خبرته الواسعة في الأنظمة الموزعة واسعة النطاق وشغفه بالتعلم الآلي لمساعدة عملاء AWS عبر قطاعات الصناعة المختلفة على تسريع تبني الذكاء الاصطناعي والسحابة.

الطابع الزمني:

اكثر من التعلم الآلي من AWS