HỆ THỐNG GỢI Ý SẢN PHẨM

Ngày nay với sự cải cách và phát triển của các website thương mại điện tử, vấn đề chú trọng mang đến trải nghiệm tín đồ dùng cũng tương tự tiếp cận những sản phẩm đến tay người dùng vô cùng quan trọng. Hệ thống gợi nhắc sản phẩm ra đời sẽ giúp người dùng có thể tìm thấy các sản phẩm mà người ta mong đợi.

Bạn đang xem: Hệ thống gợi ý sản phẩm

I. Khối hệ thống Recommender systems là gì ?

Nói một cách dễ dàng recommender systems là hệ thống phụ thuộc vào “sở thích” của người dùng trong vượt khứ, để tham gia đoán “sở thích” người tiêu dùng trong sau này và triển khai gợi ý cho người dùng. Để một khối hệ thống recommender systems chuyển động tốt điều tiên quyết là phụ thuộc vào sự phản hồi của fan dùng. Những phản hồi này rất có thể là đánh giá sao, bình luận, số lần click chuột vào sản phẩm, thời gian quan cạnh bên sản phẩm,…Về cơ bạn dạng recommender systems được chia thành 3 technology chính :

Collaborative filtering ( Lọc hợp tác )

Content-based filtering (Lọc theo nội dung)

Hybrid filtering ( Lọc tất cả hổn hợp )

*

Trong khuôn khổ nội dung bài viết này bản thân sẽ gợi ý cho các bản triển khai 4 hệ thống gợi ý bao gồm : user-based, item-based, content-based và session-based.

II. Lọc công tác (Collaborative filtering) :

Ý tưởng của Lọc cộng tác: “người tương tự” rất có thể thích “sản phẩm tương tự” hoặc ngược lại, tự đó việc của họ cần làm là tìm ra mối tương quan giữa các user và item để gợi nhắc các sản phẩm cho những người dùng.

1. User-based :

User-base là 1 dạng recommender systems dựa vào độ tương quan giữa những user để gợi nhắc sản phẩm cho những user.

Đến trên đây các các bạn sẽ có một câu hỏi : làm thế nào để tính độ đối sánh của người tiêu dùng ?

Chúng ta và tính độ tương quan của các user dựa vào khoảng bí quyết giữa các user trong ma trận trình diễn user - item. Nếu khoảng cách giữa 2 user càng nhỏ tức 2 user tất cả độ tương tự tương đồng và ngược lại.

Vậy họ tính khoảng cách bằng gì? tất yếu là chưa phải bằng thước rồi :v. Chúng ta sẽ tính khoảng cách bằng những công thức Ơ-clit, Minkowski, Cosin,.. Trong bài này bản thân sẽ thực hiện công thức tính khoảng cách cosin.

Tuy không hẳn là người hải phòng đất cảng nhưng tôi cũng không say mê lòng vòng. Mình thực hiện ngay một hệ thống nhắc nhở sử dụng user-based để mọi tín đồ cùng phát âm nhé.

Ví dụ mình bao gồm một bảng tiếp sau đây thể hiện sự rating sao của 10 người dùng cho 8 app trên điện thoại thông minh của họ( những ô trống là phần đông ô người tiêu dùng không hoặc không đánh giá) từ bỏ đó bọn họ cần gửi ra dự kiến sự yêu thích của họ với những ô trống không được reviews để gợi ý cho người dùng. Phần đa người hoàn toàn có thể tải data mẫu mã tại đây

*

Mình sẽ áp dụng công thức cosin nhằm tính độ đối sánh tương quan của user :

*

Đầu tiền mình sẽ import một số thư viện cần thiết cho câu hỏi :


sử dụng hàm cosine_similarity trong tủ sách sklearn nhằm tính khoảng cách giữa các user


Sau khi tính xong xuôi ta sẽ được ma trận khoảng cách giữa các user như hình:

Tiếp tục họ sẽ phụ thuộc độ tương quan của những user để tham gia đoán các review các item nhưng mà user trước đó không đánh giá, mình sẽ áp dụng công thức dự kiến tại từng điểm tài liệu :

*


Kết quả bọn họ sẽ nhận được ma trận dự kiến như sau :

*

Từ ma trận dự đoán này chúng ta cũng có thể gợi ý cho người dùng những app tuy nhiên họ chưa cần sử dụng nhưng các bạn nghĩ họ sẽ thích nó dựa vào các điểm dự đoán. Bạn có thể tham khảo code đầy đủ tại đây

2. Vật phẩm - based:

Đây là một trong bài toán tương tự trọn vẹn user -based chỉ khác tại vị trí các các bạn sẽ dựa vào độ tương tự giữa các item thay bởi vì độ tương tự giữa các user, cần mình đã không triển khai lại. đông đảo người rất có thể tự bình chọn và so sánh công dụng với user - based.

3. Content - based :

Content based là phương thức gợi ý dựa trên nội dung, phát minh của phương thức này người dùng sẽ gọi những bài xích cùng những chủ đề nhưng mình yêu thích.

Trong content-based chúng ta cần chế tạo 1 bộ hồ sơ đến từng thành quả được hotline profile item. Từng profile item sẽ tiến hành biểu diễn dưới dạng là một trong vector. Chúng ta sẽ thực hiện kỹ thuật TF-IDF để tạo những feature vector mang lại từng item.

Xem thêm: Bột Sương Sáo Trắng Là Gì

Mình làm luôn luôn 1 bài bác ví dụ nhằm mọi tín đồ dễ tưởng tượng nhé.

Bài toán : phát hành một hệ thống gợi nhắc để gợi ý các tập phim dựa vào những nội dung của các bộ phim. Dữ liệu của câu hỏi là bộ dữ liệu MovieLens 100k dataset trên kaggle.

Đầu tiên chúng ta cần import những thư viện cần thiết cho việc :


from sklearn.feature_extraction.text import TfidfVectorizerfrom sklearn.metrics.pairwise import cosine_similarityfrom sklearn.metrics import mean_squared_errorfrom sklearn.model_selection import train_test_splitfrom sklearn.metrics.pairwise import linear_kernelimport numpy as npimport pandas as pd
Bộ dữ liệu gồm 24 feature là : ‘adult’, ‘belongs_to_collection’, ‘budget’, ‘genres’, ‘homepage’, ‘id’, ‘imdb_id’, ‘original_language’, ‘original_title’, ‘overview’, ‘popularity’, ‘poster_path’, ‘production_companies’, ‘production_countries’, ‘release_date’, ‘revenue’, ‘runtime’, ‘spoken_languages’, ‘status’, ‘tagline’, ‘title’, ‘video’, ‘vote_average’, ‘vote_count’ . Ở phía trên mình sẽ có tác dụng một bài content-based đơn giản dễ dàng nên chỉ sử dụng feature overview trong tập dữ liệu.


Sau khi load và lấy những dữ liệu quan trọng ta cần thải trừ các “stop word” (stop word là các từ vào câu mà lại không mang ý nghĩa sâu sắc đặc trưng đến câu ví dụ : the, a, an, is, …). Tiếp tục chúng ta sẽ sử dụng kỹ thuật TF-IDF để tìm những đặc trưng của của những ‘overview’ vào từng bộ phim.

Nói qua về kỹ thuật TF-IDF : đây là 1 kỹ thuật khẳng định tần số suất hiện các từ trong đoạn văn. Tf(t, d): tần suất lộ diện của từ bỏ t vào văn phiên bản didf(t, D): giá trị idf của trường đoản cú t vào tập văn bản


tf_idf = TfidfVectorizer(stop_words="english")overview_movies = tf_idf.fit_transform(movies_dataset<"overview">)
Sau khi vứt bỏ các “stop word” với tính các tần số lộ diện của những từ trải qua TF-IDF ta thường xuyên tính sự tương quan của các câu, sử dụng công thức cosin (tương từ user-based tôi đã hướng dẫn sinh hoạt trên).


Sau đó chúng ta sẽ được một ma trận tựa như như này :

*

Cuối thuộc ta buộc phải viết một hàm dự kiến các tập phim giống nhau dựa vào bộ phim chúng ta đang xem.


mapping = pd.Series(movies.index,index = movies<"title">)def list_recommend_movies(movie_input): movie_index = mapping similarity_score = list(enumerate(similarity_matrix)) similarity_score = sorted(similarity_score, key=lambda x: x<1>, reverse=True) similarity_score = similarity_score<1:11> movie_indices = for i in similarity_score> return (movies_dataset<"title">.iloc)list_recommend_movies("Toy Story")
Kết quả ta đã thu được một list 10 bộ phim truyền hình tương tự như bộ phim “Toy Story”

*

Trên đây là nội dung bài viết đơn giản mình sử dụng content-based để lưu ý phim cho người coi. Vì mình chỉ dùng từng feature overview nên tác dụng cũng rất có thể không thiệt sự đúng chuẩn nhất. Bạn nên tận dụng toàn bộ các feature của thành tích để phát hành được một profile vật phẩm hoàn hảo.

4. Session- based :

Sau khi khám phá 2 tế bào hình lưu ý Lọc hiệp tác và thanh lọc theo nội dung ta thấy được để sở hữu được độ đúng mực cao cho lọc hiệp tác ta cần người tiêu dùng phải can dự với hệ thống, và các sản phẩm phổ biến sẽ được nhiều reviews và sẽ không cân bởi cho hệ thống. Bên cạnh đó ta cũng phiêu lưu một tiêu giảm của hai quy mô này là nó hầu như không nhận xét được mục tiêu của khác hàng trải qua mỗi lần quý khách hàng vào trang web của bọn chúng ta. Từ bỏ những tinh giảm này tín đồ ta xây hình thành một mô hình hiện đại và đổi mới hơn sẽ là session- based. Bọn họ sẽ ghi lại toàn bộ các tracking của doanh nghiệp khi vào trang web từ phần lớn lần click ảnh, click coi tiếp, tạm dừng xem ảnh, like, xem review, search kiếm,… sau khoản thời gian phân tích ta đã tìm ra được mục tiêu của người dùng khi vào trang web là gì cùng sẽ nhắc nhở sản phẩm phù hợp cho tín đồ dùng.

Trong bài bác này mình sẽ hướng dẫn chúng ta sử dụng một quy mô mạng neural dựa và những session để xây dựng hệ thống gợi ý sản phẩm.