Chuyển đến nội dung chính

Lọc cộng tác: Hướng dẫn của bạn để có gợi ý thông minh hơn

Khám phá cách lọc cộng tác vận hành hệ thống gợi ý trong thương mại điện tử, phát trực tuyến và hơn thế nữa. Tìm hiểu các loại, lợi ích, thách thức và triển khai bằng Python.
· 10 phút đọc

Khám phá cùng AI

Bài viết này sẽ tìm hiểu lọc cộng tác là gì, cách thức hoạt động, cách triển khai bằng Python, các ưu điểm, thách thức phổ biến và những tiến bộ gần đây.

Từ kinh nghiệm của tôi khi làm việc với hệ thống gợi ý, tôi thấy lọc cộng tác đặc biệt hữu ích trong việc tạo ra trải nghiệm người dùng cá nhân hóa và có thể mở rộng. Xuyên suốt bài viết, tôi sẽ chia sẻ những hiểu biết và kỹ thuật mà tôi thấy hiệu quả.

Lọc cộng tác là gì?

Lọc cộng tác là một kỹ thuật nền tảng đứng sau các hệ thống gợi ý hiện đại, cung cấp trải nghiệm cá nhân hóa trên các nền tảng thương mại điện tử, dịch vụ phát trực tuyến và mạng xã hội nhằm nâng cao trải nghiệm người dùng thông qua các đề xuất phù hợp.

Về cốt lõi, nó vận hành theo nguyên tắc rằng những người dùng có sở thích tương đồng trong quá khứ nhiều khả năng cũng sẽ có mối quan tâm tương tự trong tương lai. Tương tự, các mục (item) nhận được tương tác từ những người dùng giống nhau có khả năng sẽ được ưu thích bởi những người dùng có gu tương đồng. Nói cách khác, clọc cộng tác dựa vào tương tác của người dùng với các mục để tạo ra đề xuất.

Lọc cộng tác được dùng ở đâu

Lọc cộng tác được sử dụng rộng rãi trong nhiều lĩnh vực để cá nhân hóa trải nghiệm người dùng.

Trong thương mại điện tử, các nền tảng như Amazon dựa vào đó để gợi ý sản phẩm dựa trên lịch sử mua hàng và hành vi duyệt web. Các dịch vụ phát trực tuyến như Netflix và Spotify đề xuất nội dung bằng cách phân tích thói quen xem hoặc nghe của những người dùng tương tự. Trên mạng xã hội như Facebook và TikTok, nó cung cấp gợi ý kết bạn và bảng tin nội dung phù hợp với sở thích từng cá nhân. Trong giáo dục, các nền tảng học trực tuyến như Coursera và Udemy dùng nó để gợi ý khóa học dựa trên mức độ tương tác và mô hình hoàn thành của người học. Ngay cả trong y tế, lọc cộng tác cũng đang được sử dụng để đưa ra khuyến nghị điều trị cá nhân hóa bằng cách so sánh dữ liệu bệnh nhân với các ca bệnh tương tự trong quá khứ.

Lọc cộng tác so với lọc theo nội dung

Việc so sánh lọc cộng tác và lọc theo nội dung giúp ích, đồng thời xem cách tích hợp cả hai trong hệ thống lai.

Lọc cộng tác đề xuất mục bằng cách xác định các mẫu trong hành vi người dùng, như xếp hạng, mua hàng hoặc lượt nhấp. Nó chỉ dựa trên các tương tác trong quá khứ và sự tương đồng giữa người dùng để đưa ra dự đoán. Lọc theo nội dung tập trung nhiều hơn vào đặc điểm của chính các mục, như thể loại, mô tả sản phẩm hoặc từ khóa, để gợi ý các mục tương tự với những gì người dùng từng thích trước đó.

Hệ thống lai kết hợp hai cách tiếp cận này. Chúng được biết là cải thiện độ chính xác vì bằng cách kết hợp dữ liệu hành vi với thuộc tính của mục, chúng khắc phục các hạn chế như vấn đề khởi động lạnh, khi người dùng hoặc mục mới có ít hoặc không có dữ liệu lịch sử.

Cách thức hoạt động của lọc cộng tác

Lọc cộng tác hoạt động bằng cách xác định các mẫu trong hành vi người dùng để nhóm những người dùng hoặc mục tương tự và tạo ra đề xuất.

Một ví dụ kinh điển

Chẳng hạn, nếu bạn thường xuyên xem phim hành động trên Netflix, lọc cộng tác sẽ xác định những người dùng có thói quen xem tương tự và gợi ý các bộ phim mà họ thích nhưng bạn chưa xem. Quá trình này phản chiếu cách bạn bè gợi ý nội dung dựa trên sở thích chung—tận dụng ưu tiên tập thể của người dùng thay vì đặc điểm của mục.

Bảng đơn giản minh họa Lọc cộng tác dựa trên người dùng. Bảng có hai người dùng (User A và User B) chấm điểm bốn bộ phim. User A và User B đưa ra các đánh giá tương tự cho Movie 1 và Movie 3. Vì User B chấm Movie 2 điểm 4, còn User A chưa xem, hệ thống gợi ý Movie 2 cho User A. Bảng tô xanh các đánh giá tương tự và tô xanh lá bộ phim được gợi ý

Ví dụ, trong bảng trên:

  • User A và User B đưa ra các đánh giá tương tự cho Movie 1 và Movie 3, nghĩa là họ có gu giống nhau.
  • Vì User B đã xem và thích Movie 2 (điểm: 4) còn User A chưa xem, hệ thống gợi ý Movie 2 cho User A—giống như cách Netflix đề xuất phim được yêu thích bởi những người dùng có thói quen xem tương tự.

Điều này phản chiếu cách bạn bè gợi ý nội dung dựa trên sở thích chung, tận dụng sở thích của người dùng tương tự thay vì phân tích thể loại, đạo diễn hay các đặc điểm khác của bộ phim.

Thuật toán lọc cộng tác

Các thuật toán lọc cộng tác xác định và khai thác các mẫu trong tương tác người dùng—mục để đưa ra dự đoán chính xác. Hãy đi sâu hơn vào cách chúng hoạt động về mặt kỹ thuật.

Ma trận người dùng—mục

Hệ thống tổ chức các tương tác của người dùng (xếp hạng, nhấp, mua) thành một ma trận. Ma trận này thường thưa do số lượng tương tác hạn chế. Thông thường, ma trận thưa vì nhiều người dùng chỉ tương tác với một phần nhỏ mục hiện có. Quản lý và diễn giải dữ liệu thưa một cách hiệu quả là chìa khóa cho các đề xuất chính xác. “Similarity index” là thuật ngữ tôi hay thấy.

Thước đo tương đồng

Các thước đo tương đồng giúp định lượng mức độ giống nhau giữa người dùng hoặc mục. Các phương pháp phổ biến gồm:

  1. Độ tương đồng Cosine: Đo cosin của góc giữa hai vector trong không gian đa chiều. Cosine đặc biệt hữu ích cho dữ liệu thưa, vì nó nắm bắt quan hệ dựa trên mẫu tương tác thay vì giá trị tuyệt đối. 
  2. Tương quan Pearson: Đo mối tương quan tuyến tính giữa các đánh giá của người dùng hoặc mục. Lưu ý rằng chỉ số này thường được dùng khi các mẫu đánh giá đã được điều chỉnh theo trung bình vì nó loại bỏ sai lệch có thể xảy ra khi các người dùng có mức nền đánh giá khác nhau. 

Các loại lọc cộng tác

Các kỹ thuật lọc cộng tác có thể được phân loại rộng thành phương pháp dựa trên bộ nhớ và dựa trên mô hình. Mỗi loại có thế mạnh riêng, và hiểu cả hai giúp bạn nắm được cách xây dựng hệ thống gợi ý hiện đại.

Các phương pháp dựa trên bộ nhớ 

Các phương pháp này tính trực tiếp độ tương đồng từ tương tác người dùng—mục:

  • Lọc dựa trên người dùng: Xác định những người dùng có hành vi tương tự và gợi ý các mục họ thích.
  • Lọc dựa trên mục: Gợi ý các mục dựa trên mức độ tương tự với những mục người dùng đã thích trước đó. Cách này có khả năng mở rộng tốt hơn vì các mục thường có mẫu tương tác ổn định hơn người dùng.

Các phương pháp dựa trên mô hình 

Các phương pháp này dùng học máy để nâng cao độ chính xác của đề xuất:

  • Phân rã ma trận: Giảm chiều của ma trận người dùng—mục để khám phá các mẫu ẩn (ví dụ: Phân rã giá trị kỳ dị - SVD).
  • Mạng nơ-ron: Nắm bắt các mẫu phức tạp trong hành vi người dùng để đưa ra đề xuất chính xác hơn (ví dụ: Lọc cộng tác bằng nơ-ron). 

Cả phương pháp dựa trên bộ nhớ và dựa trên mô hình đều bổ trợ cho nhau, và nhiều hệ thống hiện đại tích hợp chúng trong cách tiếp cận lai để tận dụng thế mạnh kết hợp.

Lọc cộng tác với Python

Để hiểu rõ hơn cách hoạt động của lọc cộng tác, hãy triển khai một hệ thống gợi ý dựa trên mục bằng Python. Ví dụ này tạo ma trận người dùng—mục, tính độ tương đồng giữa các mục bằng cosine và tạo đề xuất dựa trên hành vi người dùng.

import pandas as pd
from sklearn.metrics.pairwise import cosine_similarity
# Sample user-item interaction data
collab_filtered_data = {
	'User': ['Alice', 'Alice', 'Bob', 'Bob', 'Carol', 'Carol', 'Dave', 'Dave'],
	'Item': ['Item1', 'Item2', 'Item1', 'Item3', 'Item2', 'Item3', 'Item1', 'Item2'],
	'Rating': [5, 3, 4, 2, 4, 5, 2, 5]
}

collab_f_df = pd.DataFrame(collab_filtered_data)

# Create user-item matrix
user_item_matrix = collab_f_df.pivot_table(index='User', columns='Item', values='Rating', fill_value=0)

# Compute item similarity using cosine similarity
item_similarity = cosine_similarity(user_item_matrix.T)
item_similarity_df = pd.DataFrame(item_similarity, index=user_item_matrix.columns, columns=user_item_matrix.columns)

# Recommend items similar to 'Item1'
def recommend_similar_items(item, similarity_df, top_n=3):
	return similarity_df[item].sort_values(ascending=False)[1:top_n+1]

# Example recommendation
similar_items = recommend_similar_items('Item1', item_similarity_df)
print("Items similar to Item1:", similar_items)
Items similar to Item1: Item
Item2    0.527046
Item3    0.221455
Name: Item1, dtype: float64

Ưu điểm và thách thức của lọc cộng tác

Một số ưu điểm bao gồm:

  • Cá nhân hóa: Cho phép đề xuất cá nhân hóa mà không cần siêu dữ liệu của mục. 
  • Đề xuất bất ngờ thú vị: Xác định các mẫu ẩn vượt ra ngoài sự tương đồng trực tiếp giữa các mục.
  • Tính độc lập miền: Lọc cộng tác không phụ thuộc vào siêu dữ liệu chi tiết của mục, giúp thích ứng trên nhiều ngành khác nhau

Một số thách thức bao gồm:

  • Vấn đề khởi động lạnh: Khó đề xuất cho người dùng mới khi dữ liệu hạn chế 
  • Độ thưa dữ liệu: Ma trận người dùng—mục lớn thường chứa nhiều giá trị thiếu 
  • Vấn đề khả năng mở rộng: Hiệu năng có thể suy giảm khi số lượng người dùng và mục tăng lên.

Những phát triển và đổi mới gần đây

Những năm gần đây, lọc cộng tác đã phát triển đáng kể nhờ các công nghệ AI mới nổi và các cách tiếp cận lai. Dưới đây là một số đổi mới có ảnh hưởng lớn đang định hình tương lai của hệ thống gợi ý.

Hệ thống gợi ý lai

Hệ thống gợi ý lai kết hợp lọc cộng tác và lọc theo nội dung để nâng cao độ chính xác và khắc phục hạn chế của từng phương pháp. Bằng cách kết hợp mẫu tương tác của người dùng với thuộc tính mục, các hệ thống này cung cấp đề xuất vững chắc hơn, khắc phục hiệu quả các thách thức phổ biến như khởi động lạnh và độ thưa dữ liệu.

Học sâu cho bài toán gợi ý

Những tiến bộ trong học sâu đã cải thiện đáng kể lọc cộng tác bằng cách cho phép các mô hình nắm bắt các mối quan hệ phi tuyến, phức tạp trong tương tác người dùng—mục. Các kỹ thuật như Lọc cộng tác bằng nơ-ron và phương pháp dựa trên autoencoder sử dụng mạng nơ-ron để khám phá các mẫu hành vi tinh vi, dẫn đến đề xuất chính xác và cá nhân hóa hơn.

Lọc theo ngữ cảnh

Lọc cộng tác theo ngữ cảnh vượt ra ngoài tương tác người dùng—mục truyền thống bằng cách đưa thông tin ngữ cảnh—như thời điểm trong ngày, vị trí, loại thiết bị hoặc trạng thái hoạt động—vào quy trình gợi ý. Điều này mang lại các đề xuất không chỉ được cá nhân hóa mà còn phù hợp với ngữ cảnh tức thời của người dùng, từ đó tăng cường trải nghiệm và mức độ gắn kết.

Học tăng cường

Học tăng cường tối ưu hóa động các đề xuất dựa trên tương tác và phản hồi theo thời gian thực của người dùng. Bằng cách liên tục học hỏi và thích ứng từ phản ứng của người dùng, các bộ gợi ý dựa trên học tăng cường cải thiện cá nhân hóa và mức độ gắn kết.

Lời kết về lọc cộng tác

Lọc cộng tác vẫn là nền tảng của các hệ thống gợi ý hiện đại. Dù tồn tại các thách thức như khởi động lạnh và dữ liệu thưa, những tiến bộ trong mô hình lai và học máy không ngừng nâng cao hiệu quả của nó. Khi các hệ thống gợi ý phát triển, lọc cộng tác sẽ tiếp tục là động lực chính cho trải nghiệm số được cá nhân hóa trên nhiều ngành. Bước tiếp theo, bạn có thể học khóa Building Recommendation Engines in Python của chúng tôi để tìm hiểu cách xử lý dữ liệu thưa và cách tạo đề xuất với SVD cùng nhiều nội dung thú vị khác.

Arun Prem Sanker

Tác giả

Arun Prem Sanker

Arun có 12 năm kinh nghiệm với vai trò nhà khoa học dữ liệu, chuyên phân tích dữ liệu sản phẩm. Tại Stripe, công việc của anh tập trung vào thúc đẩy tăng trưởng sản phẩm thông qua thử nghiệm, mô hình dự đoán bằng ML và phân tích nâng cao. Trước đây, Arun là Nhà khoa học dữ liệu tại Amazon và Nhà khoa học ra quyết định tại Mu Sigma. Arun có bằng Thạc sĩ Phân tích dữ liệu từ Georgia Tech và Cử nhân từ NIT Calicut.

FAQs

Lọc cộng tác trong hệ thống gợi ý là gì?

Lọc cộng tác là kỹ thuật dự đoán sở thích của người dùng dựa trên các tương tác trong quá khứ và sự tương đồng giữa người dùng hoặc giữa các mục, thường được sử dụng trong hệ thống gợi ý.

Lọc cộng tác khác gì so với lọc theo nội dung?

Lọc cộng tác dựa vào các tương tác của người dùng, trong khi lọc theo nội dung đề xuất mục dựa trên thuộc tính của mục như từ khóa, thể loại hoặc mô tả.

Những thách thức chính của lọc cộng tác là gì?

Các thách thức gồm vấn đề khởi động lạnh (thiếu dữ liệu cho người dùng/mục mới), dữ liệu thưa (ít tương tác cho mỗi người dùng/mục) và vấn đề khả năng mở rộng với tập dữ liệu lớn.

Sự khác nhau giữa lọc cộng tác dựa trên người dùng và dựa trên mục là gì?

Lọc dựa trên người dùng tìm những người dùng tương tự và gợi ý các mục họ thích, trong khi lọc dựa trên mục gợi ý các mục tương tự với những gì người dùng đã tương tác.

Làm thế nào để triển khai lọc cộng tác trong Python?

Bạn có thể triển khai bằng các thư viện như Pandas và Scikit-learn bằng cách tạo ma trận người dùng—mục, tính độ tương đồng (ví dụ: cosine) và tạo đề xuất dựa trên điểm tương đồng.

Lọc cộng tác liên quan thế nào đến hệ thống gợi ý?

Lọc cộng tác là một kỹ thuật nền tảng trong các hệ thống gợi ý hiện đại, tạo thành xương sống của nhiều trải nghiệm cá nhân hóa trực tuyến. Các hệ thống này dự đoán nội dung người dùng có thể thích dựa trên tương tác trước đó, tận dụng sự tương đồng giữa người dùng hoặc giữa các mục. Bằng cách khai thác hiểu biết tập thể của người dùng, lọc cộng tác thực hiện cá nhân hóa, cải thiện mức độ gắn kết và giữ chân.

Chủ đề

Liên quan