Metarank: التخصيص في الوقت الحقيقي كخدمة
Metarank هي خدمة تصنيف مفتوحة المصدر. يمكن أن يساعدك في إنشاء بحث وتوصيات دلالية/عصبية مخصصة.
إذا كنت تريد البدء فقط، فجرب:
باستخدام Metarank، يمكنك جعل بحثك وتوصياتك الحالية أكثر ذكاءً :
Metarank سريع :
حفظ وقت التطوير الخاص بك:
يساعدك Metarank على بناء أنظمة تصنيف متقدمة للبحث والتوصيات:
منشورات المدونة:
لقاءات ومؤتمرات حوارية:
يمكنك اللعب بالنسخة التجريبية من Metarank على موقع demo.metarank.ai:
العرض التوضيحي نفسه والبيانات المستخدمة مفتوحة المصدر ويمكنك الحصول على نسخة من أحداث التدريب وملف التكوين في github repo.
دعنا نوضح كيف يمكنك البدء في تخصيص المحتوى من خلال إعادة الترتيب المستندة إلى LambdaMART في أقل من دقيقة:
سوف نستخدم مجموعة بيانات ranklens، المستخدمة في العرض التوضيحي الخاص بنا، لذا قم فقط بتنزيل ملف البيانات
curl -O -L https://github.com/metarank/metarank/raw/master/src/test/resources/ranklens/events/events.jsonl.gz
سوف نستخدم ملف التكوين مرة أخرى من العرض التوضيحي الخاص بنا. ويستخدم مخزن في الذاكرة، لذلك ليست هناك حاجة إلى تبعيات أخرى.
curl -O -L https://raw.githubusercontent.com/metarank/metarank/master/src/test/resources/ranklens/config.yml
في الخطوة الأخيرة، سنستخدم وضع Metarank standalone
الذي يجمع بين التدريب وتشغيل واجهة برمجة التطبيقات في أمر واحد:
docker run -i -t -p 8080:8080 -v $( pwd ) :/opt/metarank metarank/metarank:latest standalone --config /opt/metarank/config.yml --data /opt/metarank/events.jsonl.gz
ستشاهد بعض المخرجات المفيدة أثناء بدء تشغيل Metarank ودراسة البيانات. بمجرد الانتهاء من ذلك، يمكنك إرسال طلبات إلى localhost:8080
للحصول على نتائج مخصصة.
سنتفاعل هنا مع العديد من الأفلام بالضغط على أحدها وملاحظة النتائج.
أولاً، دعونا نرى المخرجات الأولية التي يقدمها Metarank قبل أن نتفاعل معها
# get initial ranking for some items
curl http://localhost:8080/rank/xgboost
-d ' {
"event": "ranking",
"id": "id1",
"items": [
{"id":"72998"}, {"id":"67197"}, {"id":"77561"},
{"id":"68358"}, {"id":"79132"}, {"id":"103228"},
{"id":"72378"}, {"id":"85131"}, {"id":"94864"},
{"id":"68791"}, {"id":"93363"}, {"id":"112623"}
],
"user": "alice",
"session": "alice1",
"timestamp": 1661431886711
} '
# {"item":"72998","score":0.9602446652021992},{"item":"79132","score":0.7819134441404151},{"item":"68358","score":0.33377910321385645},{"item":"112623","score":0.32591281190727805},{"item":"103228","score":0.31640256043322723},{"item":"77561","score":0.3040782705414116},{"item":"94864","score":0.17659007036183608},{"item":"72378","score":0.06164568676567339},{"item":"93363","score":0.058120639770243385},{"item":"68791","score":0.026919880032451306},{"item":"85131","score":-0.35794106000271037},{"item":"67197","score":-0.48735167237049154}
# tell Metarank which items were presented to the user and in which order from the previous request
# optionally, we can include the score calculated by Metarank or your internal retrieval system
curl http://localhost:8080/feedback
-d ' {
"event": "ranking",
"fields": [],
"id": "test-ranking",
"items": [
{"id":"72998","score":0.9602446652021992},{"id":"79132","score":0.7819134441404151},{"id":"68358","score":0.33377910321385645},
{"id":"112623","score":0.32591281190727805},{"id":"103228","score":0.31640256043322723},{"id":"77561","score":0.3040782705414116},
{"id":"94864","score":0.17659007036183608},{"id":"72378","score":0.06164568676567339},{"id":"93363","score":0.058120639770243385},
{"id":"68791","score":0.026919880032451306},{"id":"85131","score":-0.35794106000271037},{"id":"67197","score":-0.48735167237049154}
],
"user": "test2",
"session": "test2",
"timestamp": 1661431888711
} '
الآن، دعونا نتفاعل مع العناصر
93363
# click on the item with id 93363
curl http://localhost:8080/feedback
-d ' {
"event": "interaction",
"type": "click",
"fields": [],
"id": "test-interaction",
"ranking": "test-ranking",
"item": "93363",
"user": "test",
"session": "test",
"timestamp": 1661431890711
} '
الآن، سيقوم Metarank بتخصيص العناصر، وسيكون ترتيب العناصر في الاستجابة مختلفًا
# personalize the same list of items
# they will be returned in a different order by Metarank
curl http://localhost:8080/rank/xgboost
-d ' {
"event": "ranking",
"fields": [],
"id": "test-personalized",
"items": [
{"id":"72998"}, {"id":"67197"}, {"id":"77561"},
{"id":"68358"}, {"id":"79132"}, {"id":"103228"},
{"id":"72378"}, {"id":"85131"}, {"id":"94864"},
{"id":"68791"}, {"id":"93363"}, {"id":"112623"}
],
"user": "test",
"session": "test",
"timestamp": 1661431892711
} '
# {"items":[{"item":"93363","score":2.2013986484185124},{"item":"72998","score":1.1542776301073876},{"item":"68358","score":0.9828904282341605},{"item":"112623","score":0.9521647429731446},{"item":"79132","score":0.9258841742518286},{"item":"77561","score":0.8990921381835769},{"item":"103228","score":0.8990921381835769},{"item":"94864","score":0.7131600718467729},{"item":"68791","score":0.624462038351694},{"item":"72378","score":0.5269765094008626},{"item":"85131","score":0.29198666089255343},{"item":"67197","score":0.16412780810560743}]}
تحقق من مرجع Quickstart الكامل الأكثر تعمقًا.
إذا كانت لديك أي أسئلة، فلا تتردد في الانضمام إلى Slack!
تم إصدار هذا المشروع بموجب ترخيص Apache 2.0، كما هو محدد في ملف الترخيص.