Latar Belakang Pendahuluan
Latar Belakang Pendahuluan
Dengan terus berkembangnya teknologi jaringan dan skala e-commerce yang terus berkembang, jumlah dan variasi barang tumbuh dengan cepat dan pengguna harus menghabiskan banyak waktu untuk menemukan barang yang ingin mereka beli. Ini adalah kelebihan informasi. Untuk mengatasi masalah ini, sistem rekomendasi muncul.
Sistem rekomendasi adalah bagian dari Sistem Penyaringan Informasi, yang dapat digunakan di berbagai bidang seperti film, musik, e-commerce, dan rekomendasi aliran Feed. Sistem rekomendasi menemukan kebutuhan dan minat pengguna yang dipersonalisasi dengan menganalisis dan menambang perilaku pengguna, dan merekomendasikan informasi atau produk yang mungkin menarik bagi pengguna. Tidak seperti mesin pencari, sistem rekomendasi tidak mengharuskan pengguna untuk mendeskripsikan kebutuhan mereka secara akurat, tetapi memodelkan perilaku historis mereka untuk secara proaktif memberikan informasi yang sesuai dengan minat dan kebutuhan pengguna.
Pada artikel ini kami menggunakan PaddlePaddle, sebuah platform deep learning dari Baidu, untuk membangun sebuah model dan menggabungkan Milvus, sebuah mesin pencari dengan kemiripan vektor, untuk membangun sebuah sistem rekomendasi yang dipersonalisasi yang dapat dengan cepat dan akurat memberikan informasi yang menarik kepada pengguna.
Persiapan Data
Kami menggunakan MovieLens Million Dataset (ml-1m) [1] sebagai contoh. Dataset ml-1m berisi 1.000.000 ulasan dari 4.000 film oleh 6.000 pengguna, yang dikumpulkan oleh laboratorium GroupLens Research. Data asli termasuk data fitur film, fitur pengguna, dan peringkat pengguna film, Anda dapat merujuk ke ml-1m-README [2] .
Dataset ml-1m mencakup 3 artikel .dat: movies.datćusers.dat dan ratings.dat.movies.dat termasuk fitur film, lihat contoh di bawah ini:
MovieID::Title::Genres
1::ToyStory(1995)::Animation|Children's|Comedy
Ini berarti id filmnya adalah 1, dan judulnya adalah ćToy Storyć, yang dibagi menjadi tiga kategori. Ketiga kategori ini adalah animasi, anak-anak, dan komedi.
users.dat berisi fitur-fitur pengguna, lihat contoh di bawah ini:
UserID::Gender::Age::Occupation::Zip-code
1::F::1::10::48067
Ini berarti ID pengguna adalah 1, perempuan, dan berusia kurang dari 18 tahun. ID pekerjaannya adalah 10.
ratings.dat berisi fitur rating film, lihat contoh di bawah ini:
UserID::MovieID::Rating::Timestamp 1::1193::5::978300760
Artinya, pengguna 1 mengevaluasi film 1193 sebagai 5 poin.
Model Rekomendasi Fusion
Dalam sistem rekomendasi film yang dipersonalisasi, kami menggunakan Fusion Recommendation Model [3] yang telah diimplementasikan oleh PaddlePaddle. Model ini dibuat dari praktik industrinya.
Pertama, ambil fitur pengguna dan fitur film sebagai input ke jaringan saraf, di mana:
- Fitur pengguna menggabungkan empat informasi atribut: ID pengguna, jenis kelamin, pekerjaan, dan usia.
- Fitur film memasukkan tiga informasi atribut: ID film, ID jenis film, dan nama film.
Untuk fitur pengguna, petakan ID pengguna ke representasi vektor dengan ukuran dimensi 256, masukkan lapisan yang terhubung penuh, dan lakukan pemrosesan serupa untuk tiga atribut lainnya. Kemudian representasi fitur dari keempat atribut tersebut terhubung sepenuhnya dan ditambahkan secara terpisah.
Untuk fitur film, ID film diproses dengan cara yang mirip dengan ID pengguna. ID jenis film secara langsung dimasukkan ke dalam lapisan yang terhubung penuh dalam bentuk vektor, dan nama film diwakili oleh vektor dengan panjang tetap menggunakan jaringan syaraf tiruan. Representasi fitur dari ketiga atribut tersebut kemudian dihubungkan sepenuhnya dan ditambahkan secara terpisah.
Setelah mendapatkan representasi vektor dari pengguna dan film, hitung kemiripan kosinus dari keduanya sebagai skor dari sistem rekomendasi yang dipersonalisasi. Terakhir, kuadrat dari perbedaan antara skor kemiripan dan skor sebenarnya dari pengguna digunakan sebagai fungsi kerugian dari model regresi.
1-pengguna-film-personalisasi-pemberi-rekomendasi-Milvus.jpg
Gambaran Umum Sistem
Dikombinasikan dengan model rekomendasi fusi PaddlePaddle, vektor fitur film yang dihasilkan oleh model disimpan di mesin pencari kesamaan vektor Milvus, dan fitur pengguna digunakan sebagai vektor target untuk dicari. Pencarian kemiripan dilakukan di Milvus untuk mendapatkan hasil pencarian sebagai film yang direkomendasikan untuk pengguna.
2-sistem-overview.jpg
Metode inner product (IP) disediakan dalam Milvus untuk menghitung jarak vektor. Setelah menormalkan data, inner product similarity konsisten dengan hasil cosine similarity pada model rekomendasi fusion.
Penerapan Sistem Rekomendasi Pribadi
Ada tiga langkah dalam membangun sistem rekomendasi personal dengan Milvus, detail cara pengoperasiannya dapat dilihat di Mivus Bootcamp [4].
Langkah 1: Pelatihan Model
# run train.py
$ python train.py
Menjalankan perintah ini akan menghasilkan model recommender_system.inference.model dalam direktori, yang dapat mengubah data film dan data pengguna menjadi vektor fitur, dan menghasilkan data aplikasi untuk disimpan dan diambil oleh Milvus.
Langkah 2: Pemrosesan Data
# Data preprocessing, -f followed by the parameter raw movie data file name
$ python get_movies_data.py -f movies_origin.txt
Menjalankan perintah ini akan menghasilkan data uji movies_data.txt dalam direktori untuk mencapai pra-pemrosesan data film.
Langkah 3ļ¼Menerapkan Sistem Rekomendasi Pribadi dengan Milvus
# Implementing personal recommender system based on user conditions
$ python infer_milvus.py -a <age>-g <gender>-j <job>[-i]
Menjalankan perintah ini akan mengimplementasikan rekomendasi yang dipersonalisasi untuk pengguna tertentu.
Proses utamanya adalah:
- Melalui load_inference_model, data film diproses oleh model untuk menghasilkan vektor fitur film.
- Muat vektor fitur film ke dalam Milvus melalui milvus.insert.
- Menurut usia / jenis kelamin / pekerjaan pengguna yang ditentukan oleh parameter, diubah menjadi vektor fitur pengguna, milvus.search_vectors digunakan untuk pencarian kemiripan, dan hasil dengan kemiripan tertinggi antara pengguna dan film dikembalikan.
Prediksi lima film teratas yang diminati pengguna:
TopIdsTitleScore
03030Yojimbo2.9444923996925354
13871Shane2.8583481907844543
23467Hud2.849525213241577
31809Hana-bi2.826111316680908
43184Montana2.8119677305221558
Ringkasan
Dengan memasukkan informasi pengguna dan informasi film ke dalam model rekomendasi fusi, kita bisa mendapatkan skor yang cocok, lalu mengurutkan skor semua film berdasarkan pengguna untuk merekomendasikan film yang mungkin menarik bagi pengguna. Artikel ini menggabungkan Milvus dan PaddlePaddle untuk membangun sistem rekomendasi yang dipersonalisasi. Milvus, sebuah mesin pencari vektor, digunakan untuk menyimpan semua data fitur film, dan kemudian pencarian kemiripan dilakukan pada fitur-fitur pengguna di Milvus. Hasil pencarian adalah peringkat film yang direkomendasikan oleh sistem kepada pengguna.
Mesin pencari kemiripan vektor Milvus [5] kompatibel dengan berbagai platform deep learning, yang dapat mencari miliaran vektor hanya dengan respon milidetik. Anda dapat menjelajahi lebih banyak kemungkinan aplikasi AI dengan Milvus dengan mudah!
Referensi
- MovieLens Million Dataset (ml-1m): http://files.grouplens.org/datasets/movielens/ml-1m.zip
- ml-1m-README: http://files.grouplens.org/datasets/movielens/ml-1m-README.txt
- Model Rekomendasi Fusion oleh PaddlePaddle: https://www.paddlepaddle.org.cn/documentation/docs/zh/beginners_guide/basics/recommender_system/index.html#id7
- Bootcamp: https://github.com/milvus-io/bootcamp/tree/master/solutions/recommendation_system
- Milvus: https://milvus.io/
- Persiapan Data
- Model Rekomendasi Fusion
- Gambaran Umum Sistem
- Penerapan Sistem Rekomendasi Pribadi
- Ringkasan
- Referensi
On This Page
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word