Hỗ trợ đồ án, khóa luận Web, App, AI - Uy tín, chất lượng!
Hỗ trợ đồ án, khóa luận Web, App, AI - Uy tín, chất lượng!
Trang Chủ Hướng Dẫn Đồ Án Lập trình hệ thống gợi ý sản phẩm dựa trên hành vi người dùng
Hướng Dẫn Đồ ÁnLập Trình AI

Lập trình hệ thống gợi ý sản phẩm dựa trên hành vi người dùng

Chia sẻ
Chia sẻ

Hệ thống gợi ý sản phẩm là một trong những công nghệ cốt lõi đứng sau sự thành công của các nền tảng thương mại điện tử như Amazon, Lazada hay Tiki. Mỗi sản phẩm bạn thấy hiển thị – từ đề xuất trên trang chủ, trong giỏ hàng, đến sản phẩm tương tự khi xem một mặt hàng – đều do thuật toán recommendation engine đứng sau xử lý và cá nhân hóa.

Nếu bạn từng thực hiện các bài như Tự động phân loại ảnh thời trang bằng AI, Tạo chức năng nhận dạng ảnh trong app di động, hoặc Tự động đếm số người trong ảnh bằng kỹ thuật segmentation thì xây dựng hệ thống đề xuất là bước tiếp theo để gia tăng trải nghiệm người dùng dựa trên hành vi cá nhân.

Các phương pháp xây dựng hệ thống gợi ý

Có 3 phương pháp chính:

  • Content-based Filtering: Gợi ý dựa trên thuộc tính sản phẩm và hành vi trước đó của người dùng.

  • Collaborative Filtering: Gợi ý dựa trên hành vi của người dùng khác có hành vi tương tự.

  • Hybrid Filtering: Kết hợp cả hai để tăng độ chính xác và khả năng mở rộng.

Thu thập dữ liệu hành vi người dùng

Dữ liệu thu thập có thể gồm:

  • Click vào sản phẩm

  • Lượt xem chi tiết

  • Thêm vào giỏ hàng

  • Lượt mua, đánh giá sao

  • Thời gian ở lại trên trang sản phẩm

Một ví dụ đơn giản trong cơ sở dữ liệu:

user_id item_id interaction_type timestamp
001 1001 view 2025-07-26 10:00
001 1001 purchase 2025-07-26 10:20
002 1002 view 2025-07-26 11:05

Dữ liệu này có thể dùng để tạo ma trận user–item để huấn luyện mô hình gợi ý.

Xây dựng hệ thống gợi ý collaborative filtering với LightFM

Cài đặt thư viện LightFM

pip install lightfm

Tạo dữ liệu và huấn luyện mô hình

from lightfm import LightFM
from lightfm.data import Dataset
import pandas as pd

# Dữ liệu mẫu
data = pd.DataFrame({
    'user_id': ['u1', 'u1', 'u2', 'u3'],
    'item_id': ['i1', 'i2', 'i2', 'i3']
})

# Tạo dataset và tương tác
dataset = Dataset()
dataset.fit(data['user_id'], data['item_id'])
(interactions, _) = dataset.build_interactions(
    list(zip(data['user_id'], data['item_id']))
)

# Huấn luyện mô hình
model = LightFM(loss='warp')
model.fit(interactions, epochs=10, num_threads=2)

Phương pháp WARP loss là một trong những loss function phổ biến dùng cho bài toán ranking.

Gợi ý sản phẩm với mô hình content-based

Trong content-based filtering, ta sử dụng thuộc tính sản phẩm để đo mức độ tương đồng.

Ví dụ sử dụng TF-IDF

from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import linear_kernel

# Mô tả sản phẩm
products = [
    "giày sneaker trắng thể thao nam",
    "giày cao gót nữ thời trang",
    "sandal nữ đế bệt đi biển",
    "sneaker nữ màu trắng hiện đại"
]

# Tính TF-IDF
vectorizer = TfidfVectorizer()
tfidf_matrix = vectorizer.fit_transform(products)

# Tính độ tương đồng cosine
similarity = linear_kernel(tfidf_matrix, tfidf_matrix)

# Gợi ý 2 sản phẩm gần giống với sản phẩm đầu tiên
similar_items = similarity[0].argsort()[::-1][1:3]
for idx in similar_items:
    print(products[idx])

Kết hợp hybrid model

Khi bạn có cả điểm tương tác từ collaborative filtering và content similarity, có thể kết hợp như sau:

def hybrid_score(cf_score, cb_score, alpha=0.6):
    return alpha * cf_score + (1 - alpha) * cb_score

Bạn có thể huấn luyện song song hai mô hình, lưu kết quả scoring và kết hợp điểm như trên để đưa ra top-N sản phẩm phù hợp.

Đánh giá mô hình gợi ý

Một số chỉ số phổ biến:

  • Precision@K: Tỷ lệ item thực sự được yêu thích trong top-K gợi ý.

  • Recall@K: Tỷ lệ item được gợi ý trong top-K so với toàn bộ item yêu thích.

  • NDCG: Đánh giá độ chính xác có trọng số theo vị trí.

  • Coverage: Tỷ lệ bao phủ số lượng item được hệ thống gợi ý.

Ví dụ tính Precision@5 bằng LightFM:

from lightfm.evaluation import precision_at_k
score = precision_at_k(model, interactions, k=5).mean()
print(f"Precision@5: {score:.3f}")

Kết luận

Hệ thống gợi ý là chìa khóa để thúc đẩy cá nhân hóa và tăng hiệu suất kinh doanh trong các ứng dụng thương mại điện tử. Dù là một hệ thống đơn giản dựa trên TF-IDF hay một hệ thống matrix factorization với hàng triệu user-item, giá trị mà nó mang lại là rất lớn.

Việc sử dụng hybrid model giúp hệ thống linh hoạt hơn trong trường hợp dữ liệu mới (cold start), hoặc khi người dùng chưa có nhiều tương tác. Kết hợp thêm các yếu tố thời gian, ngữ cảnh và thiết bị sử dụng sẽ giúp nâng cao trải nghiệm hơn nữa.

Tham Gia Nhóm – Hỗ Trợ Lập Trình

Hỗ Trợ Đồ Án – ThueDoAn.vn

Liên quan
Hướng Dẫn Đồ Án

Checklist 10 bước kiểm tra cuối cùng trước khi nhấn nút nộp đồ án

Thời điểm chuẩn bị nhấn nút nộp đồ án luôn mang lại...

Hướng Dẫn Đồ Án

Tuyệt chiêu đối phó với những giảng viên hướng dẫn ‘khó tính’ nhất

Giai đoạn làm đồ án tốt nghiệp luôn đi kèm với vô...

Hướng Dẫn Đồ Án

Tại sao việc quản lý Source Code bằng Git lại quan trọng hơn bạn nghĩ?

Trong thế giới lập trình hiện đại, mã nguồn chính là linh...

Hướng Dẫn Đồ Án

Những chức năng ‘thừa’ khiến bạn tốn thời gian mà không được cộng điểm

Làm đồ án tốt nghiệp là một cuộc đua thực thụ với...

Hướng Dẫn Đồ Án

Cách xử lý khi đề tài bị trùng lặp ý tưởng với các khóa trước quá nhiều

Lựa chọn đề tài đồ án luôn là bước khởi đầu đầy...

Hướng Dẫn Đồ Án

Làm sao để giải trình với giảng viên khi code bị nghi ngờ là đi chép?

Trong quá trình thực hiện đồ án, việc tham khảo mã nguồn...

Hướng Dẫn Đồ Án

Cảnh báo: Những nguồn share code ‘rác’ trên mạng cần tuyệt đối tránh

Trong quá trình làm đồ án, việc tìm kiếm sự hỗ trợ...

Hướng Dẫn Đồ Án

Sai lầm khi chọn công nghệ quá khó so với năng lực thực tế của bản thân

Chọn đề tài và công nghệ cho đồ án luôn là bước...

Liên Hệ
Liên hệ để được tư vấn & hỗ trợ đồ án CNTT nhé bạn!