Hệ thống gợi ý: phương pháp lọc cộng tác (Item-to-Item Collaborative Filtering) cho gà mờ

BinlerdevBinlerdev
5 min read

1. Hệ thống gợi ý là gì?

Khái niệm

  • Hệ thống gợi ý (Recommendation System) là công nghệ giúp đề xuất các sản phẩm, dịch vụ, hoặc nội dung mà người dùng có thể quan tâm dựa trên dữ liệu hành vi hoặc sở thích của họ.

  • Ví dụ: Khi bạn xem phim trên Netflix, hệ thống sẽ gợi ý các phim tương tự dựa trên phim bạn đã xem hoặc đánh giá.

2. Collaborative Filtering (Lọc cộng tác) là gì?

Khái niệm

  • Collaborative Filtering là một kỹ thuật trong hệ thống gợi ý, dựa trên việc sử dụng dữ liệu đánh giá hoặc hành vi của nhiều người dùng để dự đoán sở thích của người dùng hiện tại.

  • Có 2 loại chính:

    • User-to-User Filtering (Người dùng với người dùng): Tìm người dùng có sở thích giống nhau và gợi ý những mục họ thích.

    • Item-to-Item Filtering (Mục với mục): Tìm các mục tương tự nhau dựa trên cách người dùng đánh giá hoặc tương tác.

3. Item-to-Item Collaborative Filtering là gì?

Giải thích đơn giản

  • Thay vì so sánh người dùng với người dùng, phương pháp này so sánh từng mục (item) với các mục khác dựa trên hành vi của người dùng.

  • Ví dụ: Nếu nhiều người dùng cùng mua hoặc đánh giá cao sản phẩm A và B, thì A và B được xem là tương tự nhau.

  • Khi một người dùng thích sản phẩm A, hệ thống sẽ gợi ý sản phẩm B vì chúng có sự tương đồng cao.

Ưu điểm

  • Phù hợp với hệ thống có nhiều người dùng và nhiều mục.

  • Tính toán nhanh hơn và hiệu quả hơn so với user-to-user filtering.

  • Gợi ý chính xác hơn vì dựa vào sự tương đồng giữa các mục.

4. Cách hoạt động của Item-to-Item Collaborative Filtering

Các bước cơ bản

  1. Thu thập dữ liệu: Lấy dữ liệu đánh giá hoặc hành vi người dùng với các mục (ví dụ: người dùng đã mua, đánh giá sản phẩm nào).

  2. Tính toán sự tương đồng giữa các mục: Dựa trên dữ liệu người dùng, tính toán mức độ giống nhau giữa các mục bằng các công thức như cosine similarity, Pearson correlation,...

  3. Tạo bảng tương đồng: Lưu trữ các cặp mục có độ tương đồng cao.

  4. Gợi ý: Khi người dùng chọn một mục, hệ thống sẽ gợi ý các mục tương tự dựa trên bảng tương đồng.

Ví dụ minh họa

Giả sử có 3 người dùng và 4 sản phẩm (A, B, C, D):

Người dùngABCD
User15300
User24002
User30053
  • Dữ liệu trên là điểm đánh giá (rating) từ 0 đến 5.

  • Hệ thống sẽ tính độ tương đồng giữa sản phẩm A với B, C, D dựa trên điểm đánh giá của người dùng.

  • Nếu A và B có điểm tương đồng cao, khi User1 thích A, hệ thống sẽ gợi ý B.

5. Công thức tính độ tương đồng (ví dụ: Cosine Similarity)

Giải thích đơn giản

  • Cosine similarity đo góc giữa hai vector điểm đánh giá của các mục.

  • Nếu góc nhỏ (cosine gần 1), hai mục tương tự nhau.

  • Công thức:

Trong đó:

6. Mã nguồn ví dụ đơn giản bằng Python

import numpy as np

# Dữ liệu điểm đánh giá: hàng là người dùng, cột là sản phẩm
ratings = np.array([
    [5, 3, 0, 0],
    [4, 0, 0, 2],
    [0, 0, 5, 3]
])

def cosine_similarity(vec1, vec2):
    dot_product = np.dot(vec1, vec2)
    norm1 = np.linalg.norm(vec1)
    norm2 = np.linalg.norm(vec2)
    if norm1 == 0 or norm2 == 0:
        return 0
    return dot_product / (norm1 * norm2)

# Tính độ tương đồng giữa sản phẩm A (cột 0) và các sản phẩm khác
item_A = ratings[:, 0]
similarities = []
for i in range(ratings.shape[^1]):
    if i != 0:
        sim = cosine_similarity(item_A, ratings[:, i])
        similarities.append((i, sim))

# In kết quả
for item, sim in similarities:
    print(f"Similarity between item A and item {item}: {sim:.2f}")

7. Ứng dụng thực tế

  • Amazon: Gợi ý sản phẩm dựa trên sản phẩm bạn đang xem hoặc đã mua.

  • Netflix: Gợi ý phim dựa trên phim bạn đã xem.

  • Spotify: Gợi ý bài hát tương tự dựa trên bài hát bạn thích.

8. Ưu và nhược điểm của Item-to-Item Collaborative Filtering

Ưu điểmNhược điểm
Tính toán nhanh, hiệu quả với dữ liệu lớnCần nhiều dữ liệu đánh giá chính xác
Gợi ý chính xác dựa trên sự tương đồng thực tế giữa các mụcKhó xử lý với các mục mới chưa có dữ liệu (cold start)
Dễ dàng mở rộng và cập nhậtKhông phản ánh được sở thích cá nhân thay đổi nhanh

Kết luận

  • Item-to-Item Collaborative Filtering là một kỹ thuật quan trọng trong hệ thống gợi ý, giúp tìm ra các mục tương tự dựa trên hành vi người dùng.

  • Phương pháp này dễ hiểu, hiệu quả và được ứng dụng rộng rãi trong thực tế.

0
Subscribe to my newsletter

Read articles from Binlerdev directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Binlerdev
Binlerdev