🚀 جرب Zilliz Cloud، الـ Milvus المدارة بالكامل، مجاناً — تجربة أداء أسرع بـ 10 أضعاف! جرب الآن>>

milvus-logo
LFAI

HomeBlogsمقدمة أساسية

مقدمة أساسية

  • Scenarios
February 24, 2021
Shiyu Chen

مقدمة أساسية

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

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

في هذه المقالة نستخدم PaddlePaddle، وهي منصة تعلم عميق من بايدو، لبناء نموذج ودمج محرك البحث Milvus، وهو محرك بحث متجه التشابه، لبناء نظام توصية مخصص يمكنه تزويد المستخدمين بمعلومات مثيرة للاهتمام بسرعة وبدقة.

إعداد البيانات

نأخذ مجموعة بيانات MovieLens Million Dataset (ml-1m) [1] كمثال. تحتوي مجموعة بيانات ml-1m على 1,000,000 مراجعة لـ 4,000 فيلم من قبل 6,000 مستخدم، تم جمعها من قبل مختبر أبحاث GroupLens. تتضمن البيانات الأصلية بيانات ميزة الفيلم وميزة المستخدم وتقييم المستخدم للفيلم، يمكنك الرجوع إلى ml-1m-README [2] .

تتضمن مجموعة بيانات ml-1m 3 ملفات .dat: films.dat 、 Users.dat و ratings.dat.dat.movies.dat تتضمن ميزات الفيلم، انظر المثال أدناه:

MovieID::Title::Genres
1::ToyStory(1995)::Animation|Children's|Comedy

هذا يعني أن معرّف الفيلم هو 1، والعنوان هو 《قصة لعبة》، وهو مقسم إلى ثلاث فئات. هذه الفئات الثلاث هي الرسوم المتحركة والأطفال والكوميديا.

يتضمن users.dat ميزات المستخدم، انظر المثال أدناه:

UserID::Gender::Age::Occupation::Zip-code
1::F::1::10::48067

هذا يعني أن معرّف المستخدم هو 1، أنثى وعمرها أقل من 18 عامًا. معرف المهنة هو 10.

التصنيفات.dat يتضمن ميزة تصنيف الفيلم، انظر المثال أدناه:

معرف المستخدم::معرف الفيلم::التصنيف::الطابع الزمني 1::1193::5::978300760

أي أن المستخدم 1 يقيّم الفيلم 1193 بـ 5 نقاط.

نموذج توصية الاندماج

استخدمنا في نظام التوصيات المخصصة للأفلام نموذج توصية الاندماج [3] الذي طبقه PaddlePaddle. تم إنشاء هذا النموذج من ممارسته الصناعية.

أولاً، خذ ميزات المستخدم وميزات الفيلم كمدخلات للشبكة العصبية، حيث:

  • تتضمن ميزات المستخدم أربع معلومات عن السمات: هوية المستخدم والجنس والمهنة والعمر.
  • تتضمن ميزة الفيلم ثلاث معلومات عن السمات: معرف الفيلم، ومعرف نوع الفيلم، واسم الفيلم.

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

بالنسبة لميزات الفيلم، تتم معالجة معرف الفيلم بطريقة مشابهة لمعرف المستخدم. يتم إدخال معرّف نوع الفيلم مباشرةً في الطبقة المتصلة بالكامل في شكل متجه، ويتم تمثيل اسم الفيلم بواسطة متجه ثابت الطول باستخدام شبكة عصبية تلافيفية نصية. يتم بعد ذلك توصيل تمثيلات السمات الثلاث بشكل كامل وإضافتها بشكل منفصل.

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

1-user-film-personalized-recommender-Milvus.jpg 1-مستخدم-فيلم-توصية-شخصية-موصى به-مستخدم-ملفوس.jpg

نظرة عامة على النظام

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

2-system-overview.jpg 2-نظام-عرض النظام

يتم توفير طريقة المنتج الداخلي (IP) في Milvus لحساب المسافة المتجهة. بعد تطبيع البيانات، يتوافق تشابه المنتج الداخلي مع نتيجة تشابه جيب التمام في نموذج توصية الاندماج.

تطبيق نظام التوصية الشخصية

هناك ثلاث خطوات في بناء نظام توصية شخصي باستخدام Milvus، يُرجى الرجوع إلى معسكر تدريب Mivus Bootcamp [4].

الخطوة 1 : تدريب النموذج

# run train.py
    $ python train.py

سيؤدي تشغيل هذا الأمر إلى إنشاء نموذج recommendender_system.inference.model في الدليل، والذي يمكنه تحويل بيانات الفيلم وبيانات المستخدم إلى متجهات ميزة، وإنشاء بيانات التطبيق ليقوم ميلفوس بتخزينها واسترجاعها.

الخطوة 2 : المعالجة المسبقة للبيانات

# Data preprocessing, -f followed by the parameter raw movie data file name
    $ python get_movies_data.py -f movies_origin.txt

سيؤدي تشغيل هذا الأمر إلى إنشاء بيانات الاختبار films_data.txt في الدليل لتحقيق المعالجة المسبقة لبيانات الفيلم.

الخطوة 3 :تنفيذ نظام التوصيات الشخصية باستخدام Milvus

# Implementing personal recommender system based on user conditions
    $ python infer_milvus.py -a <age>-g <gender>-j <job>[-i]

سيؤدي تشغيل هذا الأمر إلى تنفيذ توصيات مخصصة للمستخدمين المحددين.

العملية الرئيسية هي:

  • من خلال تحميل_نموذج_الاستدلال، تتم معالجة بيانات الفيلم بواسطة النموذج لإنشاء متجه ميزة الفيلم.
  • تحميل متجه ميزة الفيلم في Milvus عبر milvus.insert.
  • وفقًا لعمر المستخدم/جنس المستخدم/المهنة المحددة من قبل المعلمات، يتم تحويله إلى متجه ميزات المستخدم، ويتم استخدام milvus.search_vectors لاسترجاع التشابه، ويتم إرجاع النتيجة ذات التشابه الأعلى بين المستخدم والفيلم.

توقع أفضل خمسة أفلام يهتم بها المستخدم:

TopIdsTitleScore
03030Yojimbo2.9444923996925354
13871Shane2.8583481907844543
23467Hud2.849525213241577
31809Hana-bi2.826111316680908
43184Montana2.8119677305221558 

ملخص

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

يتوافق محرك البحث عن تشابه المتجهات Milvus [5] مع العديد من منصات التعلم العميق، ويبحث في مليارات المتجهات باستجابة لا تتجاوز أجزاء من الثانية. يمكنك استكشاف المزيد من إمكانيات تطبيقات الذكاء الاصطناعي مع ميلفوس بكل سهولة!

المرجع

  1. مجموعة بيانات MovieLens Million Dataset (ml-1m): http://files.grouplens.org/datasets/movielens/ml-1m.zip
  2. ml-1m-README: http://files.grouplens.org/datasets/movielens/ml-1m-README.txt
  3. نموذج توصية الاندماج بواسطة PaddlePaddle: https://www.paddlepaddle.org.cn/documentation/docs/zh/beginners_guide/basics/recommender_system/index.html#id7
  4. Bootcamp: https://github.com/milvus-io/bootcamp/tree/master/solutions/recommendation_system
  5. ميلفوس: https://milvus.io/

Like the article? Spread the word

استمر في القراءة