Metarank: personalisasi waktu nyata sebagai layanan
Metarank adalah layanan pemeringkatan sumber terbuka. Ini dapat membantu Anda membangun pencarian dan rekomendasi semantik/neural yang dipersonalisasi.
Jika Anda baru ingin memulai, coba:
Dengan Metarank, Anda dapat membuat pencarian dan rekomendasi yang ada menjadi lebih cerdas :
Metarank cepat :
Hemat waktu pengembangan Anda:
Metarank membantu Anda membangun sistem peringkat lanjutan untuk pencarian dan rekomendasi:
Postingan blog:
Pertemuan dan pembicaraan konferensi:
Anda dapat bermain dengan demo Metarank di demo.metarank.ai:
Demo itu sendiri dan data yang digunakan adalah sumber terbuka dan Anda dapat mengambil salinan acara pelatihan dan file konfigurasi di repo github.
Izinkan kami menunjukkan bagaimana Anda dapat mulai mempersonalisasi konten dengan pemeringkatan berbasis LambdaMART hanya dalam waktu kurang dari satu menit:
Kami akan menggunakan dataset ranklens yang digunakan dalam Demo kami, jadi unduh saja file datanya
curl -O -L https://github.com/metarank/metarank/raw/master/src/test/resources/ranklens/events/events.jsonl.gz
Kami akan kembali menggunakan file konfigurasi dari Demo kami. Ini menggunakan penyimpanan dalam memori, jadi tidak diperlukan ketergantungan lain.
curl -O -L https://raw.githubusercontent.com/metarank/metarank/master/src/test/resources/ranklens/config.yml
Pada langkah terakhir kita akan menggunakan mode standalone
Metarank yang menggabungkan pelatihan dan menjalankan API menjadi satu perintah:
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
Anda akan melihat beberapa keluaran berguna saat Metarank memulai dan menelusuri data. Setelah ini selesai, Anda dapat mengirim permintaan ke localhost:8080
untuk mendapatkan hasil yang dipersonalisasi.
Disini kita akan berinteraksi dengan beberapa film dengan mengklik salah satunya dan mengamati hasilnya.
Pertama, mari kita lihat keluaran awal yang disediakan oleh Metarank tanpa sebelum kita berinteraksi dengannya
# 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
} '
Sekarang, mari berinteraksi dengan item
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
} '
Sekarang, Metarank akan mempersonalisasi item, urutan item di respon akan berbeda
# 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}]}
Lihat Referensi lengkap Quickstart yang lebih mendalam.
Jika Anda memiliki pertanyaan, jangan ragu untuk bergabung dengan Slack kami!
Proyek ini dirilis di bawah lisensi Apache 2.0, sebagaimana ditentukan dalam file Lisensi.