0
0
Lập trình
TT

Xây Dựng Hệ Thống Gợi Ý Tự Học Mà Không Cần Dữ Liệu Lớn

Đăng vào 3 tuần trước

• 3 phút đọc

Xây Dựng Hệ Thống Gợi Ý Tự Học

Nhiều người nghĩ rằng bạn cần những tập dữ liệu khổng lồ như Netflix hay Amazon để xây dựng một hệ thống gợi ý. Thực tế là: bạn có thể bắt đầu từ những mô hình đơn giản và để chúng cải thiện theo thời gian khi người dùng tương tác với sản phẩm của bạn.

Giới Thiệu

Trong bài viết này, chúng ta sẽ xây dựng một hệ thống gợi ý tự học với các đặc điểm sau:

  1. Bắt đầu với một mô hình đã được huấn luyện trước (giải quyết vấn đề khởi đầu lạnh)
  2. Học từ tương tác của người dùng theo thời gian (học tăng cường)
  3. Cập nhật gợi ý để luôn phù hợp

Vấn Đề

Khi bạn mới ra mắt sản phẩm, bạn thường không biết người dùng thích gì. Nếu hệ thống gợi ý của bạn bắt đầu đưa ra các đề xuất ngẫu nhiên, người dùng có thể rời bỏ trước khi hệ thống học được điều gì. Để tránh điều này, chúng ta bắt đầu với một mô hình đã được huấn luyện trước dựa trên dữ liệu bán hàng hoặc dữ liệu nhấp chuột lịch sử của bạn. Điều này cho phép hệ thống của bạn đưa ra ít nhất những gợi ý hợp lý ngay từ ngày đầu tiên.

Xây Dựng Mô Hình Ban Đầu

Giả sử bạn có một cửa hàng thương mại điện tử nhỏ bán giày, áo thun và phụ kiện. Bạn có một số dữ liệu mua hàng lịch sử như sau:

python Copy
import pandas as pd

# Dữ liệu lịch sử
data = pd.DataFrame({
"userId": [1, 1, 2, 2, 3],
"productId": ["Áo Thun", "Giày", "Giày", "Áo Khoác", "Mũ"],
"category": ["Quần Áo", "Giày", "Giày", "Quần Áo", "Phụ Kiện"]
})

# Bước 1: Tìm các danh mục phổ biến nhất
category_popularity = data.groupby("category")["productId"].count().sort_values(ascending=False)


def initial_recommendations(user_id):
    return list(category_popularity.index) # Gợi ý các danh mục phổ biến trước


print(initial_recommendations(1))
# Kết quả: ['Giày', 'Quần Áo', 'Phụ Kiện']

Với chỉ vài dòng mã, bạn đã có một mô hình gợi ý các danh mục phổ biến cho người dùng mới.

Biến Đổi Nó Thành Tự Học

Giờ giả định rằng người dùng 1 mua một đôi giày khác. Hệ thống của chúng ta nên học từ điều này và tăng cường trọng số cho "Giày" trong hồ sơ của người dùng đó.

python Copy
# Một cách đơn giản để lưu trữ sở thích người dùng
user_profiles = {
    1: {"Giày": 1, "Quần Áo": 1},
    2: {"Giày": 2, "Quần Áo": 1}
}

# Hàm cập nhật khi một giao dịch mới xảy ra
def update_profile(user_id, category):
    user_profiles.setdefault(user_id, {})
    user_profiles[user_id][category] = user_profiles[user_id].get(category, 0) + 1

# Người dùng 1 mua giày mới
update_profile(1, "Giày")
print(user_profiles[1]) # {'Giày': 2, 'Quần Áo': 1}

Bây giờ chúng ta có thể gợi ý các danh mục dựa trên hồ sơ đã được cập nhật này — tập trung vào những gì mỗi người dùng thực sự thích.

Chu Kỳ Học Tập

  1. Bắt đầu với mô hình đã được huấn luyện (dựa trên dữ liệu lịch sử)
  2. Phục vụ gợi ý cho người dùng
  3. Theo dõi tương tác (nhấp chuột, mua hàng, thích/không thích)
  4. Cập nhật hồ sơ người dùng hoặc trọng số mô hình
  5. Tạo ra các gợi ý cải thiện

Chu kỳ này tiếp tục, và hệ thống của bạn trở nên thông minh hơn với mỗi tương tác.

Ưu Điểm Của Cách Tiếp Cận Này

Hiệu suất khởi đầu lạnh tốt hơn – người dùng nhận được các gợi ý có ý nghĩa ngay từ ngày đầu tiên
Cá nhân hóa theo thời gian – gợi ý thích ứng với hành vi người dùng
Có thể mở rộng – hoạt động với dữ liệu nhỏ, có thể phát triển thành các mô hình học máy như ALS, bandits, hoặc học sâu sau này

Bước Tiếp Theo

Nếu bạn muốn phát triển xa hơn, bạn có thể:

  • Sử dụng ALS (Alternating Least Squares) trong Spark cho lọc cộng tác
  • Triển khai bandits đa tay cho tối ưu hóa theo thời gian thực
  • Kết hợp lọc dựa trên nội dung + lọc cộng tác cho các gợi ý hỗn hợp

Bạn có muốn tôi viết một bài tiếp theo về cách xây dựng điều này với Spark hoặc học sâu không? Hãy để lại bình luận bên dưới!

Cách tiếp cận này cho phép bạn xây dựng một hệ thống gợi ý không đứng im — nó học và thích ứng cùng với người dùng của bạn.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào