ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN
------o0o-----
BÀI TẬP LỚN
HỆ THỐNG GỢI Ý CÔNG NGHÊ THƠNG TIN
ĐỀ TÀI:
Tìm hiểu Hệ thống gợi ý dựa trên kỹ thuật lọc cộng tác
User-User và ứng dụng
Giangr viên hướng dẫn:
Nhóm Thực Hiện:
Thái Nguyên, ngày … tháng 12 năm 2021.
LỜI CẢM ƠN
Đầu tiên, em xin gửi lời cảm ơn chân thành và sự tri ân sâu sắc đối với các quý thầy
cô của trường Đại học Công nghê thông tin và Truyền thơng Thái Ngun nói chung và
các thầy cơ trong khoa Cơng nghệ thơng tin của trường nói riêng đã tạo điều kiện cho
chúng em được thực hiện báo cáo tiểu luận này.
Và đặc biệt chúng em xin bày tỏ lịng biết ơn sâu sắc đến cơ giáo ThS.
– người đã
trực tiếp giúp đỡ, quan tâm, hướng dẫn em hoàn thành tốt báo cáo này trong thời gian
qua.
Sau cùng, em xin kính chúc q thầy cơ dồi dào sức khỏe, đạt nhiều thành tích cao
trong cơng tác giảng dạy. Chúc Trường Đại học Công nghệ thông tin và Truyền thông
Thái Nguyên sẽ mãi là niềm tin, nên tảng vững chắc cho nhiều thế hệ sinh viên trên bước
đường học tập.
Trong quá trình làm bài báo cáo tiểu luận khó tránh khỏi những sai sót, rất mong
các thầy cơ bỏ qua. Đồng thời do trình độ lý luận cũng như kinh nghiệm thực tiễn còn hạn
chế nên bài báo cáo khơng tránh khỏi những thiếu sót, em rất mong nhận được ý kiến
đóng góp của thầy, cơ để em học hỏi thêm được nhiều kinh nghiệm và để hoàn thành tốt
hơn trong những bài báo cáo thực tập sắp tới.
Em xin chân thành cảm ơn!
Thái Nguyên, Ngày tháng 12 năm 2021
Sinh viên thực hiện
MỞ ĐẦU
•
Lý do chọn đề tài
Tốc độ phát triển của thương mại điện tử trên thế giới đặc biệt là những nước đang
phát triển như Việt Nam hiện nay, mô hình kinh doanh qua mạng ngày càng phổ biến ở
khắp nơi. Lượng sách, báo, tạp chí, tài liệu, hình ảnh, âm thanh, video, sản phẩm và
dịch vụ được đăng tải lên mạng internet thông qua các hệ thống giao dịch điện tử ngày
càng khổng lồ dẫn đến tình trạng quá tải thơng tin.
Lượng dữ liệu q lớn gây khơng ít khó khăn cho người dùng trong việc đưa ra quyết là
nên mua hay xem sản phẩm nào phù hợp với nhu cầu của mình. Nhằm hạn chế ảnh
hưởng của quá trình q tải thơng tin đối với người dùng thúc đẩy một lĩnh vực nghiên
cứu mới đó là lọc thơng tin. Lọc thông thông tin là loại bỏ những thông tin khơng quan
trọng và cung cấp những thơng tin thích hợp đến với mỗi người dùng. Lọc thông tin
được xem là một phương pháp hiệu quả hạn chế tình trạng quá tải thông tin được quan
tâm nhất hiện nay.
Xuất phát từ những nhu cầu thực tế hệ thống gợi ý ra đời, Hệ thống gợi ý
(Recommender systems) là một phân lớp của hệ thống lọc thông tin. Hệ thống này đưa
ra gợi ý về sản phẩm theo nhu cầu cá nhân của mỗi người dùng dựa trên những hành vi
đã thực hiện trong quá khứ, hoặc dựa trên tổng hợp ý kiến của những người dùng khác.
Vì vậy, cần thiết phải sử dụng một hệ thống gợi ý :
Hệ thống gợi ý được phát triển theo nhiều cách tiếp cận khác nhau. Một trong
những hướng tiếp cận được tập trung nghiên cứu và được áp dụng khá thành công trong
nhiều hệ gợi ý đó là phương pháp lọc cộng tác (Collaborative filtering). Thực chất, lọc
cộng tác là một hình thức tư vấn tự động bằng cách dựa trên sự tương tự giữa những
người dùng hoặc giữa những sản phẩm trong hệ thống và đưa ra dự đoán sự quan tâm của
người dùng tới những sản phẩm, hoặc đưa ra gợi ý một sản phẩm mới cho người dùng.
•
Mục tiêu nghiên cứu
Nghiên cứu ứng dụng các phương pháp lọc cộng tác trong bài tốn. Tập trung vào
phân tích, so sánh, đánh giá hiệu quả của phương pháp lọc cộng tác users – users và ứng
dụng trong bài tốn lập trình.
•
Đối tượng và phạm vi nghiên cứu
Đối tượng: Phương pháp lọc cộng tác,lập trình trên Python: Khảo sát và đánh giá
hiệu quả của thuật toán lọc cộng tác dựa trên người dùng và thuật tốn
•
Phương pháp nghiên cứu
-
Đọc tài liệu, phân tích, tổng hợp.
-
Thu thập dữ liệu, thống kê, phân tích dữ liệu.
-
Mơ phỏng và đánh giá kết quả.
Kết hợp nghiên cứu lý thuyết, tìm hiểu tình hình ứng dụng, đánh giá khả năng ứng
dụng và đề xuất giải pháp.
•
Ý nghĩa khoa học và thực tiễn của đề tài
Nghiên cứu các phương pháp lọc cộng tác. Chứng minh khả năng ứng dụng của lọc cộng
tác users – users cho ví dụ xây dựng mã nguồn .
Với mục tiêu trên, luận văn được trình bày trong ba chương
Chương 1: Cơ sở lý thuyết
Chương này giới thiệu cơ sở lý thuyết về hệ thống gợi ý
Chương 2: Phương pháp thuật lọc cộng tác user – user
Chương này trình bày phương pháp lọc cộng tác user – user .
Chương 3: Ứng dụng phương pháp lọc cộng tác user – user để xây dựng demo bằng
Python.
Chương này cài đặt mã nguồn thử nghiệm phương pháp lọc cộng tác user – user
MỤC LỤC
DANH MỤC HÌNH ẢNH
1.1 Tổng quản về hệ thống gợi ý
1.1.1 Giới thiệu hệ thống gợi ý
Hệ thống gợi ý (Recommender Systems – RS) phân tích thơng tin về sở thích
của người dùng (user) về các sản phẩm (item) để cung cấp các khuyến nghị đối với
các item phù hợp nhất với mong muốn và sở thích của người dùng. Trên thực tế, hệ
thống gợi ý cố gắng thu thập những sở thích của người dùng và mơ hình hóa sự
tương tác giữa người dùng và sản phẩm.
Hệ thống gợi ý sử dụng các thông tin về sản phẩm và các tri thức của chuyên
gia hay tri thức khai phá dữ liệu được học từ hành vi của người dùng để đưa ra
những gợi ý về sản phẩm mà họ thích trong hàng ngàn hàng vạn sản phẩm có trong
hệ thống. Các website thương mại điện tử ví dụ như: sách, phim, nhạc, báo,... sử
dụng hệ thống gợi ý để cung cấp các thông tin giúp cho người dùng quyết định sẽ
lựa chọn sản phẩm nào. Các sản phẩm được gợi ý dựa trên số lượng sản phẩm đó đã
được bán, dựa trên các thông tin cá nhân của người dùng, dựa trên sự phân tích
hành vi mua hàng trước đó của người dùng để đưa ra các dự đốn về hành vi mua
hàng trong tương lai của chính khách hàng đó. Các dạng gợi ý bao gồm: gợi ý các
sản phẩm tới người tiêu dùng, các thông tin sản phẩm mang tính cá nhân hóa, tổng
kết các ý kiến cộng đồng, và cung cấp các chia sẻ, các phê bình, đánh giá mang tính
cộng đồng liên quan tới yêu cầu, mục đích của người dùng đó.
Rất nhiều hệ thống lớn thu thập thơng tin phản hồi từ khách hàng một cách
tường minh, như Ebay, Amazon, LastFM, NetFlix, Youtube,... ở đó người dùng sẽ
trực tiếp đánh giá trên sản phẩm, như bình chọn từ ★ (khơng thích) đến ★
★★★ (rất thích); hay Youtube thu thập thơng tin qua like/disklike, và các hệ thống
khác .Thông qua việc thu thập phản hồi tường minh, hệ thống dễ dàng xác định mức
độ yêu thích của người dùng trên sản phẩm, từ đó dự đốn các sản phẩm tiếp theo
mà người dùng có thể thích để gợi ý cho họ. Tuy nhiên, điều này có thể gây bất lợi
do khơng phải người dùng lúc nào cũng sẵn sàng/vui lòng để lại các phản hồi của
họ, vì vậy hệ thống phải nên tự xác định người dùng cần gì thơng qua phản hồi tiềm
ẩn. Một số ứng dụng hệ tư vấn nổi tiếng trên thế giới được giới thiệu trong Hình 1.1
Hình 1:
ứng dụng của hệ thống gợi ý
Trong kỹ thuật lọc cộng tác CF (Collaborative Filtering), việc đưa ra những
khuyến nghị về các sản phẩm đối với người dùng được xác định dựa trên những
quan điểm của những người dùng có cùng sở thích với người dùng đó. Hệ thống lọc
cộng tác biểu diễn người dùng dựa trên những đánh giá của họ
đối với tập các sản phẩm. Hệ thống sẽ lựa chọn những người dùng cùng sở thích tùy
thuộc vào độ đo tương tự hoặc tương quan. Sau đó, đưa ra những dự đoán đối với
những sản phẩm chưa từng được người dùng đánh giá hoặc quan tâm. Cuối cùng hệ
thống sẽ gợi ý những sản phẩm nào với mức độ dự đoán cao nhất cho người dùng
mục tiêu. Kỹ thuật CF đã được khẳng định sự thành công bởi rất nhiều nghiên cứu
và thực nghiệm trong nhiều ứng dụng thực tế .
Hệ thống gợi ý là một dạng của hệ hỗ trợ ra quyết định, cung cấp giải pháp
mang tính cá nhân hóa mà khơng phải trải qua q trình tìm kiếm phức tạp. Hệ gợi
ý học từ người dùng và gợi ý các sản phẩm tốt nhất trong số các sản phẩm phù hợp.
1.1.2 Bài toán tư vấn người dùng
Cho tập hợp hữu hạn gồm � người dùng � = {�1 , �1 , … , �� } và �
sản phẩm � = {�1 , �2 , … , �� }.
Mỗi người dùng � � ∈ � (với � = 1, 2, … , � ) được biểu diễn thông qua |�|
đặc trưng nội dung � = {�1, �2, … , �|�|}. Các đặc trưng �� ∈ � thông thường là
thơng tin cá nhân của mỗi người dùng. Ví dụ �� ∈ � là một người dùng thì các đặc
trưng nội dung biểu diễn người dùng �� có thể là T={giới tính, độ tuổi, nghề nghiệp,
trình độ,…}.
Mỗi sản phẩm �� ∈ � (với � = 1, 2, … � ) có thể là hàng hóa, phim, ảnh,
tạp chí, tài liệu, sách, báo, dịch vụ hoặc bất kỳ dạng thông tin nào mà người dùng
cần đến. Mỗi sản phẩm �� ∈ � được biểu diễn thông qua |� | đặc trưng nội dung �
= { �1, �2, … , �|�|}. Các đặc trưng �� ∈ � nhận được từ các phương pháp trích
chọn đặc trưng trong lĩnh vực truy vấn thơng tin. Ví dụ �� ∈ � là một phim thì các
đặc trưng nội dung biểu diễn phim �� có thể là � = {thể loại phim, nước sản xuất,
hãng phim, diễn viên, đạo diễn, …}.
Mối quan hệ giữa tập người dùng � và tập sản phẩm � được biểu diễn thông qua
ma trận đánh giá � = [���] với � = 1, 2, … , � ; � = 1, 2, … , � (Hình 1.2).
Sản phẩm
1
2
5
3
0
…
�
i
…
0
1
2
0
2
0
0
0
4
0
0
5
0
0
0
3
4
0
2
1
0
0
0
0
0
4
0
1
2
N
gư
ời
dù
ng
u
N
�
3dụ ma5trận đánh
0 giá?tổng qt
1
Hình 2: Ví
0
Giá trị ��� thể hiện đánh giá của người dùng �� ∈ � cho một số sản phẩm
�� ∈ �. Thông thường giá trị ��� nhận một giá trị thuộc miền � = { 1, 2, … , �}
được thu thập trực tiếp bằng cách hỏi ý kiến người dùng hoặc thu thập gián tiếp
thông qua cơ chế phản hồi của người dùng. Những giá trị ��� = 0 được hiểu là
người dùng �� ∈ � chưa biết đến hoặc không đánh giá sản phẩm �� ∈ �, những ô
điền ký tự “?” là giá trị cần hệ tư vấn đưa ra dự đoán đánh giá. Tiếp đến, ta ký hiệu
�� � là tập các sản phẩm �� ∈ � được đánh giá bởi người dùng �� ∈ � và ��
∈ � được gọi là người dùng hiện thời, người dùng cần được tư vấn hay người dùng
tích cực. Khi đó, tồn tại hai dạng bài tốn điển hình của hệ tư vấn là:
- Dự đoán đánh giá của người dùng �� với các sản phẩm chưa có đánh giá trước đó.
- Tư vấn danh sách ngắn các sản phẩm phù hợp với người dùng hiện thời. Cụ thể đối
với người dùng � � , hệ tư vấn sẽ chọn ra � sản phẩm mới �� ∈ (�\��) phù hợp với
người dùng �� nhất để gợi ý cho họ.
Việc giải quyết bài toán tư vấn sẽ được thực hiện theo qui trình xây dựng hệ
tư vấn trong mục 1.1.3.
1.1.3 Qui trình xây dựng hệ tư vấn
Qui trình tổng qt để giải quyết bài tốn tư vấn thơng thường gồm có 3 giai
đoạn chính được thể hiện như sau:
Giai đoạn 1: Thu thập thơng tin
Ba loại thơng tin chính thường được thu thập cho hệ tư vấn, gồm có:
- Người dùng (User) biểu diễn thông qua các đặc trưng là thông tin cá nhân. Thông
qua biểu diễn này, hệ thống cho phép xây dựng hồ sơ người dùng (user’s profile)
nhằm lưu trữ lại dấu vết các đặc trưng nội dung sản phẩm đã từng được sử dụng bởi
người dùng.
- Sản phẩm (Item) biểu diễn thông qua các đặc trưng là thông tin về sản phẩm. Thông
qua biểu diễn này, hệ thống cho phép xây dựng hồ sơ sản phẩm (item’s profile)
nhằm lưu trữ lại dấu vết các đặc trưng người dùng đã từng sử dụng sản phẩm.
- Phản hồi của người dùng với sản phẩm (Feedback), biểu diễn thông qua các giá trị
đánh giá của người dùng với sản phẩm.
Giai đoạn 2: Xây dựng mơ hình
Giai đoạn xây dựng mơ hình tư vấn có thể thực hiện bằng nhiều hướng tiếp
cận khác nhau nhằm so sánh, đánh giá mối liên hệ giữa các thông tin thu thập được
ở giai đoạn 1. Một số hướng tiếp cận điển hình được biết đến như: dựa vào kinh
nghiệm, học máy, lý thuyết xấp xỉ,.... Mỗi hướng tiếp cận sẽ khai thác thông tin đầu
vào theo những cách khác nhau hình thành những phương pháp tư vấn khác nhau.
Giai đoạn 3: Dự đoán đánh giá / Đưa ra tư vấn
Dữ liệu đầu ra của giai đoạn 2 sẽ được dùng để dự đoán các đánh giá của
người dùng với các sản phẩm chưa có đánh giá trước đó và chọn ra � sản phẩm mới
phù hợp nhất đối với người dùng hiện thời để gợi ý cho họ.
1.2. Các phương pháp lọc tin
1.2.1. Phân loại hệ thống tư vấn
Lọc thông tin là lĩnh vực nghiên cứu các q trình phân bổ thơng tin thích hợp
và gỡ bỏ thơng tin khơng thích hợp đến với mỗi người dùng. Lọc thông tin cho các
hệ tư vấn được tiếp cận theo hai xu hướng chính, đó là lọc dựa vào nội dung sản
phẩm và lọc dựa vào thói quen sử dụng sản phẩm của người hay còn được gọi là lọc
cộng tác. So với lọc theo nội dung, lọc cộng tác cho lại kết quả tốt hơn và có thể lọc
bất kỳ dạng thông tin nào. Tuy nhiên, lọc cộng tác gặp phải vấn đề dữ liệu thưa,
người dùng mới và sản phẩm mới cần được tiếp tục nghiên cứu giải quyết. Kết hợp
giữa lọc cộng tác và lọc nội dung để nâng cao chất lượng dự đoán và tránh hiện
trạng dữ liệu thưa của lọc cộng tác được tập trung nghiên cứu nhiều trong thời gian
gần đây. Các phương pháp lọc kết hợp hiện nay vẫn hạn chế trong biểu diễn và ước
lương mức độ ảnh hưởng của mỗi đặc trưng nội dung đến thói quen sử dụng sản
phẩm của người dùng .
Có rất nhiều cách để dự đốn, ước lượng hạng/điểm cho các sản phẩm như sử
dụng học máy, lý thuyết xấp xỉ, các thuật toán dựa trên kinh nghiệm, … Theo , các
hệ thống gợi ý thường được phân thành ba loại theo các phương pháp lọc tin (xem
Hình 1.3): Tư vấn dựa trên nội dung, tư vấn dựa trên cộng tác, tư vấn dựa trên cách
tiếp cận kết hợp.
Tư vấn dựa trên nội dung: Cách tiếp cận lọc nội dung tạo ra một hồ sơ cho
mỗi người dùng hoặc sản phẩm để mô tả bản chất của nó. Ví dụ, một hồ sơ phim có
thể bao gồm các thuộc tính liên quan đến thể loại của nó, các diễn viên tham gia, sự
phổ biến của phịng vé, v.v. Hồ sơ người dùng có thể bao gồm thông tin nhân khẩu
học hoặc câu trả lời được cung cấp trên bảng câu hỏi phù hợp. Các hồ sơ cho phép
các chương trình liên kết người dùng với các sản phẩm phù hợp. Tất nhiên, chiến
lược dựa trên nội dung u cầu thu thập thơng tin bên ngồi có thể khơng có sẵn
hoặc khó thu thập.
Tư vấn dựa trên cộng tác: Cách này chỉ dựa trên hành vi của người dùng
trước đây. Ví dụ: Giao dịch trước đó hoặc xếp hạng sản phẩm, mà khơng yêu cầu
tạo hồ sơ rõ ràng. Chiến thuật này phân tích mối liên quan giữa người dùng và các
thuộc tính của sản phẩm để định nghĩa quan hệ giữa người dùng – sản phẩm.
Ưu điểm của lọc cộng tác so với lọc nội dung là không bị giới hạn miền, dẫn
đến có thể giải quyết các khía cạnh dữ liệu thường khó nắm bắt và khó khăn để đưa
vào khi sử dụng lọc nội dung. Tuy nhiên không hiệu quả khi phải xử lý với dữ liệu
mới được thêm vào, điều mà lọc nội dung lại hiệu quả hơn.
Tư vấn dựa trên cách tiếp cận kết hợp: Kết hợp hai phương pháp tiếp cận
dựa trên nội dung và cộng tác.
Hình 3: Phân
loại hướng tiếp cận xây dựng hệ thống gợi ý
1.2.2. Phương pháp tư vấn dựa trên nội dung
Lọc theo nội dung là phương pháp thực hiện dựa trên việc so sánh nội dung
thơng tin hay mơ tả hàng hóa, để tìm ra những sản phẩm tương tự với
những gì mà người dùng đã từng quan tâm để giới thiệu cho họ những sản phẩm
này. Các phương pháp tiếp cận cho lọc theo nội dung được chia thành hai phương
pháp chính: lọc nội dung dựa vào bộ nhớ và lọc nội dung dựa vào mơ hình. Những
vấn đề cần tiếp tục nghiên cứu của lọc nội dung là vấn đề trích chọn đặc trưng và
người dùng mới .
Với phương pháp tư vấn dựa trên nội dung, độ phù hợp r(u, i) của sản phẩm i
với người dùng u được đánh giá dựa trên độ phù hợp r(u, i’) trong đó và “tương tự”
như i. Ví dụ, để gợi ý một bộ phim cho người dùng u, hệ thống gợi ý sẽ tìm các đặc
điểm của những bộ phim từng được u đánh giá cao như diễn viên, đạo diễn, … sau
đó chỉ những bộ phim tương tự với sở thích của u mới được giới thiệu.
Hướng tiếp cận dựa trên nội dung bắt nguồn từ những nghiên cứu về thu thập
thơng tin và lọc thơng tin. Do đó, rất nhiều hệ thống dựa trên nội dung hiện nay tập
trung vào tư vấn các đối tượng chứa dữ liệu văn bản như tin tức, website. Những
tiến bộ so với hướng tiếp cận cũ của phương pháp tìm kiếm thơng tin là do có sử
dụng hồ sơ về người dùng (chứa thơng tin về sở thích, nhu cầu,...). Hồ sơ này được
xây dựng dựa trên những thông tin được người dùng cung cấp trực tiếp (khi trả lời
khảo sát) hoặc gián tiếp (do khai phá thông tin từ các giao dịch của người dùng).
Hình 4:
Minh họa phương pháp tư vấn dựa trên lọc nội dung
Giả sử ta xem Content(i) là một thông tin riêng của sản phẩm, nghĩa là một tập
các đặc tính đặc trưng cho sản phẩm i. Nó thường được tính tốn thơng qua việc
trích rút từ tập các đặc tính của sản phẩm i (nội dung của nó) và ứng
với mỗi mục đích tư vấn sẽ xác định ra sản phẩm thích hợp. Dễ dàng nhận thấy
những hệ thống gợi ý dựa trên nội dung thường thiết kế cho hầu hết những sản
phẩm được tư vấn dựa trên text (văn bản) và nội dung của những hệ thống này được
mơ tả như là một từ khóa (keyword).
Một trong những thước đo phổ biến để xác định mức độ quan trọng của từ
khóa trong việc truy vấn thơng tin là đo tần suất xuất hiện của mục từ trong tài liệu
(Term Frequency) và tần số nghịch đảo của tần suất xuất hiện các tài liệu (Inverse
Document Frequency) được định nghĩa như sau:
Giả sử N là tổng số tài liệu được tư vấn cho người dùng và từ khóa ��xuất hiện
trong �� của chúng (�� là tổng số tài liệu có từ khóa k). Giả sử ��,� là số lần từ khóa
�� xuất hiện trong tài liệu � �. �� �,� là tần số xuất hiện từ khóa �� trong tài liệu
��:
��,� �
�,�
�� �,� =
(1.1)
���
Trong đó ��� ���,� là số lần xuất hiện cao nhất của từ khóa �� trong tồn
tập tài liệu ��. Tuy nhiên, những từ khóa xuất hiện trong nhiều tài liệu có thể khơng
được phân biệt với nhau giữa tài liệu liên quan và không liên quan. Vì vậy, tần số
nghịch đảo tần suất xuất hiện của các tài liệu ���� được đưa ra để phân biệt giữa
các từ khóa này và thường dùng kết hợp với tần suất xuất hiện
của từ khóa (���,� mang lại tầm quan trọng cho từ khóa):
�
���� = � ��
��
(1.2)
Vậy sự kết hợp của TF và IDF sẽ xác định mức độ quan trọng của từ khóa
�� cần xét.
��,� = ���,� × ����
Và nội dung của tài liệu � �được xác định như sau:
(1.3)
��� ��� �(��) = (� 1�, �2�, … , �� �)
(1.4)
Như đã nói ở trên, hệ thống dựa trên nội dung thường được dùng để tư vấn
những sản phẩm đã được người dùng đó trước đây ưa thích. Cụ thể, những sản phẩm
được tiến cử đem so sánh trọng số với các sản phẩm mà người dùng trước đây đã sử
dụng và từ đó tìm ra sản phẩm phù hợp nhất để tư vấn.
ContentBasedProfile(u) là hồ sơ cá nhân của người dùng u chứa những thị
hiếu và sở thích của người dùng. Hồ sơ cá nhân thu được thông qua việc phân tích
nội dung của những sản phẩm và trọng số do người dùng đánh giá trước đó, nó
thường được xây dựng bằng cách sử dụng kỹ thuật phân tích từ khóa từ việc truy
vấn thơng tin. Chẳng hạn, ContentBasedProfile(u) có thể được định nghĩa như là
một véc tơ của những mức độ quan trọng mỗi mức này sẽ biểu diễn tầm quan trọng
của từ khóa �� với người dùng u và nó có thể được
tính tốn từ các véc tơ nội dung đã được đánh trọng số cụ thể thơng qua các kỹ
thuật khác nhau. Ví dụ một vài phương pháp tính trung bình cộng, tính tốn
ContentBasedProfile(u) như là một véc tơ “trung bình” từ những véc tơ nội dung cụ
thể.
Trong những hệ thống dựa trên nội dung, hàm tiện ích r(u, i) thường được định
nghĩa như sau:
�(�, �) = �����(� ������� ����������� (�), �������(�))
(1.5)
Dựa trên việc truy vấn thông tin để tư vấn các trang Web, Web sites URLs
hoặc các thơng điệp tin tức Usenet, thì cả ContentBasedProfile (u) của người dùng u
và Content(i) của tài liệu i đều có thể được trình bày như các TF-IDF véc tơ
⃗�⃗
⃗� và ⃗�⃗ � của các từ khóa quan trọng. Hàm r(u, i) được biểu diễn trong việc truy
vấn
thông
tin
thường
được
xác
định
theo
véc
tơ
⃗�⃗
⃗�
⃗�⃗
và
⃗ � như sau:
�� � �� �
⃗�
⃗.
⃗�
⃗
�(�,
⃗
��� (⃗�
⃗
⃗�⃗
⃗)=
�)
=
�
,
�
�
=
(1.6)
�=1
⃗
‖
‖⃗�⃗
‖⃗�⃗
‖� ‖⃗�⃗
‖� ‖⃗�⃗
⃗‖
⃗
�
∑
�
⃗
�
�
�
Trong đó K là tổng số các từ khóa trong hệ thống.
�
Ví dụ, nếu user u đọc nhiều bài báo trực tuyến về chủ để Tin Sinh Học thì kỹ
thuật tư vấn dựa trên nội dung sẽ có khả năng tư vấn những bài báo khác về tin sinh
học cho user u nếu nó có nhiều thuật ngữ liên quan đến tin sinh học hơn vì vậy
ContentBasedProfile(u)
sẽ
được
xác
định
bằng
véc
tơ
⃗
⃗�
⃗� mơ tả các thuật ngữ �� với mức độ quan trọng cao � ��. Hơn nữa, hệ thống tư
vấn này còn sử dụng cosine hoặc thước đo mức độ tương tự để gán giá trị hàm r(u,
i) cao cho những bài báo i có nhiều thuật ngữ tin sinh học và giá trị hàm r(u, i) thấp
cho những bài báo có ít thuật ngữ tin sinh học hơn thông qua véc tơ
⃗�⃗
⃗ �.
Bên cạnh phương pháp truy vấn thông tin mà cơ sở là dựa trên các hàm dựa
vào kinh nghiệm truyền thống, tư vấn dựa trên nội dung còn sử dụng các kỹ thuật
khác như phân loại Bayes và nhiều kỹ thuật máy học khác bao gồm phân cụm, cây
quyết định, và mạng nơ-ron nhân tạo.
Những kỹ thuật này khác với phương pháp dựa trên việc truy vấn thơng tin, ở
đây chúng tính tốn hàm tiện ích khơng dựa trên hàm heuristic giống như việc đánh
giá độ tương quan bằng hàm cosine mà nó dựa trên các mơ hình được biết từ dữ liệu
phía dưới nhờ sử dụng các kỹ thuật máy học và thống kê. Chẳng hạn, dựa trên tập
các trang Web được đánh trọng số thể hiện mức độ liên quan đến người dùng, sử
dụng kỹ thuật phân loại Naïve Bayes để phân loại các trang Web không được đánh
trọng số.
Hơn nữa, kỹ thuật phân loại Naïve Bayes thường được dùng để đánh giá xác
suất trang �� có thuộc lớp � � khơng (có quan hệ hay khơng có quan hệ) dựa vào
tập các từ khóa �1,�, ……, ��,� trong trang đó:
� (� � |�1�& … &��� )
(1.7)
Ngồi ra, giả thuyết rằng các khóa này độc lập với nhau vì vậy xác suất ở
trên tương ứng với:
�(�� ) ∏ �(� ��|�� )
�
(1.8)
Mặc dù giả thuyết các từ khóa độc lập với nhau không nhất thiết phải áp
dụng ở nhiều ứng dụng nhưng kết quả thực nghiệm đã chứng minh kỹ thuật phân
loại Nạve Bayes vẫn đưa ra độ chính xác cao về mức độ phân loại.
Hơn nữa cả � (� ��|� � ) và �(�� ) có thể được đánh giá từ dữ liệu hướng dẫn
phía dưới. Với mỗi trang ��, xác suất �(�� |�1� & … &��� ) được tính toán ứng với mỗi
lớp �� và trang �� sẽ được gán cho lớp �� nếu nó có xác suất lớn nhất.
Khi việc cung cấp kỹ thuật tư vấn không rõ ràng thì tập truy vấn văn bản
sẽ đưa ra một vài kỹ thuật thường được sử dụng trong những hệ thống tư vấn nội
dung. Một trong số đó là kỹ thuật lọc thích ứng; nó tập trung vào việc nhận biết các
tài liệu liên quan cũng như là quan sát từng tài liệu trong những luồng tài liệu tiếp
theo để tăng thêm độ chính xác. Một ví dụ khác là đặt ngưỡng (threshold setting).
Nó tập trung vào việc xác định phạm vi tài liệu ăn khớp với những câu truy vấn
được đưa ra liên quan đến người dùng.
Theo như nhận xét trong hệ thống tư vấn hướng dựa trên nội dung có một số
hạn chế sau:
- Giới hạn trong phân tích nội dung: Nếu hai sản phẩm khác nhau được biểu diễn
cùng một tập đặc trưng thì chúng khơng thể phân biệt được. Vì vậy khi những tài
liệu dựa trên văn bản thường được biểu diễn dưới những từ khóa quan trọng, thì
những hệ thống dựa trên nội dung khơng thể phân biệt được cái nào hợp, cái nào
không hợp nếu chúng cùng sử dụng một thuật ngữ.
- Quá chuyên mơn hóa: Khi hệ thống chỉ có thể tư vấn những sản phẩm có trọng số
cao dựa trên những thơng tin của người dùng, thì người dùng sẽ bị giới hạn trong
việc tư vấn những sản phẩm khác có liên quan sản phẩm trên mà đã được đánh
trọng số. Chẳng hạn, một người khơng có kinh nghiệm với các món ăn của người
Huế thì ngay cả những cửa hàng lớn nhất kiểu Huế trong thành phố cũng không bao
giờ được tư vấn. Đây là một vấn đề đã được nghiên cứu trong nhiều lĩnh vực, nó
thường được ấn định bằng việc giới thiệu một cách
ngẫu nhiên. Chẳng hạn, việc sử dụng những thuật toán di truyền được đề xuất như
là khả năng giải quyết các vấn đề về ngữ cảnh của việc lọc thông tin. Thêm vào đó,
vấn đề liên quan đến việc quá chun mơn hóa cịn là những hệ thống dựa trên nội
dung không thể tư vấn những sản phẩm mà khác với những gì mà người dùng đã
biết trước đó. Trong trường hợp nào đó, những sản phẩm khơng nên được tư vấn
nếu chúng có quá nhiều điểm tương tự với những gì mà người dùng đã gặp, như
một bài báo tin tức tuy là khác nhau nhưng đưa về cùng một sự kiện. Vì vậy, một
vài hệ thống tư vấn dựa trên nội dung không chỉ lọc ra những sản phẩm có q
nhiều điểm khác với sở thích của người dùng mà cịn lọc cả chính những sản phẩm
có q nhiều điểm giống của người dùng trước đó. Nói tóm lại, tính đa dạng của
việc tư vấn thường là những đặc điểm mô tả trong hệ thống tư vấn. Lý tưởng nhất là
người dùng sẽ tự đưa ra trọng số của những lựa chọn thay cho việc đưa ra một tập
các khả năng lựa chọn.
- Vấn đề người dung mới: Người dùng phải đánh giá đầy đủ cho những sản phẩm
trước khi hệ thống tư vấn dựa trên nội dung có thể hiểu những sở thích của người
dùng và từ đó đưa ra cho người dùng những tư vấn tin cậy. Vì vậy, với người dùng
mới, thơng tin về việc đánh trọng số rất ít nên khó có thể đảm bảo việc tư vấn sẽ tốt.
- Vấn đề thông tin sản phẩm mới: Lọc nội dung phân tích các đặc điểm của sản
phẩm để so sánh với những sản phẩm mà người dùng đã đánh giá trước đó, với
những sản phẩm có thơng tin khơng đầy đủ hoặc q đặc biệt, rất khó để đưa ra 1 tư
vấn chính xác với các sản phẩm như vậy.
1.2.3. Phương pháp tư vấn dựa trên lọc cộng tác
Mục đích của giải thuật lọc cộng tác là gợi ý những sản phẩm mới hoặc dự
đoán một sản phẩm hợp lý cho người dùng, dựa trên những sở thích trước đây và
lựa chọn từ những sở thích của những người dùng khác.
Hình 5:
Minh họa phương pháp tư vấn dựa trên lọc cộng tác
Trong kịch bản điển hình của lọc cộng tác, có một danh sách m người dùng �
= {� 1, �2, … , �� } và một danh sách n sản phẩm � = {�1, �2, … , �� }.
Mỗi người dùng � 1 có danh sách các sản phẩm � �, mà người dùng đã đánh
giá về sản phẩm đó. Chú ý rằng �� I và ���có thể là rỗng.
Hình 1.6 mơ tả quy trình lọc cộng tác bao gồm 2 nhiệm vụ chính là:
- Dự đốn: cho ra giá trị � � �thể hiện đánh giá của người dùng a lên sản phẩm
j.
-Tư vấn: cho ra danh sách N sản phẩm {��� } mà người dùng a thích nhất.
Giải thuật lọc cộng tác được mô tả thông qua một ma trận đánh giá � � � �
người dùng và sản phẩm. Mỗi phần tử ��,� trong mảng R biểu diễn đánh giá của
người dùng thứ i đối với sản phẩm thứ j. Mỗi đánh giá cá nhân là một số và nó có
thể nhận giá trị 0 khi người dùng chưa đánh giá sản phẩm đó. Các nhà nghiên cứu
đã xây dựng một số các giải thuật lọc cộng tác mà có thể chia thành 2 loại chính:
dựa trên bộ nhớ (Memory-based) và dựa trên mơ hình (Model-based).
Hình 6:
1.2.3.1.
Quy trình của hệ thống tư vấn dựa trên lọc cộng tác
Giải thuật lọc công tác dựa trên bộ nhớ (Memory-based)
Giải thuật lọc cộng tác dựa trên bộ nhớ sử dụng các cơ sở dữ liệu người dùng
– sản phẩm để dự đoán. Những hệ thống triển khai kỹ thuật thống kê để tìm những
lựa chọn của người dùng, như biết người lân cận, có lịch sử phù hợp với người dùng
đích (ví dụ, người dùng đánh giá tương tự các sản phẩm khác nhau hoặc có khuynh
hướng mua những sản phẩm tương tự nhau). Một khi lân cận của người dùng được
hình thành, hệ thống sử dụng những giải thuật khác nhau để kết hợp những sở thích
của người dùng lân cận để đề xuất một dự đoán hoặc một tư vấn top-N cho người
dùng.
Thuật toán dựa trên bộ nhớ về căn bản sử dụng các độ do kinh nghiệm để sinh
ra dự đoán dựa trên tập các sản phẩm của người dùng.
Cụ thể là, đánh giá trị ��,� của người dùng u đối với sản phẩm i thường được
tính tốn như là một sự kết hợp trọng số của nhiều người dùng khác nhau với cùng
một sản phẩm i (thường là N sản phẩm giống nhau nhất):
��,� = aggr ��′,�
�∈� ̂
(1.9)
Trong đó �̂ biểu diễn tập người dùng N có trọng số về sản phẩm i giống nhất
với người dùng u (N có thể bắt đầu từ 1 đến tất cả người dùng). Một số ví dụ về
đánh giá ��,� là:
�
=
1
∑
�
(a)
�,�
� �′∈� �′,�
��,� = � ∑�′∈�� ��(�, � ′ ) × ��′,�
(b)
��,� = �̅� + � ∑�′∈� ��� (�, � ′ ) × ��′,�
(c)
(1.10)
Trong đó
k: hệ số chuẩn hóa và thường được lựa chọn là:
1
�=
∑
(1.11)
|� ��(�, �′)|
�̅� : trọng số trung bình của người dùng u, được đinh nghĩa như sau:
1
�̅� =
Với:
|� |�
�,�
∑
(1.12)
�∈� �
�� = {� ∈ �|��,� ≠ ∅}
(1.13)
Trường hợp đơn giản nhất, giá trị đánh giá có thể là trung bình cộng của các
đánh giá người dùng khác lên sản phẩm đó như cơng thức (a). Tuy nhiên, phương
pháp tiếp cận kết hợp phổ biến nhất thường được sử dụng tính tổng mức quan trọng
như theo cơng thức (b). Đánh giá sự giống nhau giữa người dùng u và u’, sim(u, u’)
về cơ bản là đo độ tương quan giữa những người dùng và thường được xem là trọng
số, nghĩa là với những người dùng giống nhau nhất thì � �′,� sẽ được thực hiện dựa
vào dự đốn của �� ,� . Chú ý rằng sim(x,
y) như 1 hàm heuristics, được giới thiệu để đánh giá mức khác nhau giữa users
giống nhau, nhằm làm đơn giản hóa việc sử dụng thừa số k như biểu diễn ở trên.
Những phương pháp tiếp cận khác nhau thường được tính tốn hàm tương
quan sim(u, u’) giữa những người dùng trong hệ thống tư vấn cộng tác.
Trong hầu hết các phương pháp tiếp cận này, sự tương tự giữa hai người dùng dựa
trên những đánh giá về sản phẩm được cả u và u’ quan tâm. Một trong những
phương pháp phổ biến nhất là dựa trên sự tương quan và cosine. Cụ thể, đầu tiên,
xem ��� là tập tất cả các sản phẩm của người dùng x và y; nghĩa là
��� = {� ∈ � | ��,� ≠ ∅ & ���,� ≠ ∅}. Trong hệ thống tư vấn cộng tác, ��� thường
được sử dụng để đưa ra kết quả tức thì cho việc tính tốn “người hàng xóm gần
nhất” của người dùng x và thường được tính tốn để đưa ra xếp hạng rõ ràng, nghĩa
là tính tốn tìm ra điểm giao nhau giữa tập �� và ��.
1.2.3.2.
Thuật tốn lọc cộng tác dựa trên mơ hình (Model-based)
Giải thuật lọc cộng tác dựa trên mơ hình cung cấp các tư vấn sản phẩm bằng
việc phát triển một mơ hình đánh giá của người dùng. Giải thuật loại này thuộc
phương pháp tính xác suất và xử lý lọc cộng tác như tính tốn giá trị kỳ vọng của
một dự đốn người dùng, cho đánh giá của người đó với các sản phẩm khác. Xử lý
xây dựng mơ hình được thực hiện bởi nhiều các giải thuật học máy khác nhau như
mạng Bayes, phân cụm, và phương pháp dựa trên luật (rule- based), mơ hình hồi
quy tuyến tính, mơ hình entropy cực đại, …
Thuật tốn dựa trên mơ hình sử dụng tập đánh giá để đưa ra một mô hình mà
sau đó được sử dụng để tạo ra những dự đốn về trọng số. Chẳng hạn, phương pháp
tính xác suất để lọc cộng tác, trong đó những trọng số (đánh giá) chưa biết được tính
như sau:
�� ,� = �(��,� ) = ∑�
� × ��(��,� = � | ��,�′, �′ ∈ �� ).
Giá trị trọng số (đánh giá) là những số nguyên nằm giữa 0 và n. Biểu thức xác
suất là xác suất mà người dùng u sẽ đưa ra trọng số cụ thể cho sản phẩm i, dựa trên
những trọng số của người dùng về những sản phẩm trước đó đã được đánh giá. Để
ước lượng xác suất này, sử dụng 2 mơ hình xác suất tương đối sau: mơ hình phân cụm
(cluster) và mạng Bayes. Trong mơ hình đầu tiên, người dùng có sở thích giống nhau
được tập hợp lại thành một lớp. Trong lớp người dùng, sự