Cụ thể hơn, kỹ thuật này sử dụng mô hình LDA Latent Dirichlet Allocation để phân tích đặc trưng ngữ nghĩa các dữ liệu mô tả địa điểm, sau đó sử dụng phương pháp lọc cộng tác dựa trên tài
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
VIỆN ĐẠI HỌC MỞ HÀ NỘI
LUẬN VĂN THẠC SỸ
CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN
NGHIÊN CỨU PHƯƠNG PHÁP LỌC CỘNG TÁC DỰA TRÊN NGỮ NGHĨA VÀ ỨNG DỤNG XÂY DỰNG CHƯƠNG TRÌNH GỢI Ý ĐỊA ĐIỂM
LÂM VĂN ÂN
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO
VIỆN ĐẠI HỌC MỞ HÀ NỘI
LUẬN VĂN THẠC SỸ
NGHIÊN CỨU PHƯƠNG PHÁP LỌC CỘNG TÁC DỰA TRÊN NGỮ NGHĨA VÀ ỨNG DỤNG XÂY DỰNG
CHƯƠNG TRÌNH GỢI Ý ĐỊA ĐIỂM
LÂM VĂN ÂN
Trang 3i
LỜI CAM ĐOAN
Tôi xin cam đoan kết quả đạt được trong luận văn là sản phẩm của riêng cá nhân tôi dưới sự hướng dẫn của TS Dương Thăng Long và không sao chép của bất
kỳ ai Những điều được trình bày trong toàn bộ nội dung của luận văn, hoặc là của cá nhân hoặc là được tổng hợp từ nhiều nguồn tài liệu Tất cả các tài liệu tham khảo đều
có nguồn gốc rõ ràng và được trích dẫn hợp pháp
Tôi xin hoàn toàn chịu trách nhiệm theo quy định cho lời cam đoan của mình
Hà Nội, ngày 25 tháng 12 năm 2017
Học viên
Lâm Văn Ân
Trang 4ii
LỜI CẢM ƠN
Luận văn này được thực hiện tại Viện Đại Học Mở Hà Nội dưới sự hướng dẫn
của TS Dương Thăng Long Tôi xin được gửi lời cảm ơn sâu sắc nhất đến thầy đã
định hướng, giúp đỡ, quan tâm và tạo mọi điều kiện thuận lợi trong suốt quá trình
nghiên cứu để hoàn thành luận văn này Tôi cũng xin được gửi lời cảm ơn đến các
thầy cô trong Khoa công nghệ thông tin đã mang lại cho tôi những kiến thức vô cùng
quý giá và bổ ích trong quá trình học tập tại trường
Tôi cũng xin gửi lời cảm ơn tới gia đình và bạn bè đã luôn quan tâm và động
viên giúp tôi có thêm nghị lực để có thể hoàn thành được luận văn này
Do thời gian và kiến thức có hạn nên luận văn không tránh khỏi những thiếu
sót Tôi rất mong nhận được những góp ý quý báu của thầy cô và các bạn
Xin chân thành cảm ơn!
Hà Nội, ngày 25 tháng 12 năm 2017
Học viên
Lâm Văn Ân
Trang 5iii
MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT v
DANH SÁCH BẢNG vi
DANH SÁCH HÌNH VẼ vii
MỞ ĐẦU 1
CHƯƠNG 1: BÀI TOÁN LỌC CỘNG TÁC VÀ MỘT SỐ KỸ THUẬT BỔ TRỢ 3 1.1 Lọc cộng tác [1] 3
1.2 Một số phương pháp cho bài toán lọc cộng tác 6
1.2.1 Lọc cộng tác dựa trên bộ nhớ 6
1.2.1.1 Phương pháp User-based 6
1.2.1.2 Phương pháp Item-Based 11
1.2.2 Lọc cộng tác dựa trên mô hình 14
1.3 Một số vấn đề của lọc cộng tác 17
1.4 Kết luận chương 19
CHƯƠNG 2: PHƯƠNG PHÁP LỌC CỘNG TÁC DỰA TRÊN NGỮ NGHĨA 21
2.1 Phương pháp đánh giá độ tương đồng ngữ nghĩa theo mô hình LDA 21
2.1.1 Mô hình tách từ vnTokenizer 21
2.1.2 Mô hình LDA 23
2.2 Phương pháp lọc cộng tác dựa trên mô hình LDA 27
2.2.1 Kỹ thuật lọc cộng tác dựa trên mô hình 27
2.2.2 Phương pháp item-base có sử dụng mô hình LDA 28
Trang 6iv
2.3 Hệ thống gợi ý dựa trên phương pháp lọc LDA 30
2.4 Kết luận chương 33
CHƯƠNG 3: XÂY DỤNG ỨNG DỤNG VÀ THỬ NGHIỆM KẾT QUẢ 35
3.1 Bài toán ứng dụng phương pháp lọc cộng tác dựa trên ngữ nghĩa 35
3.2 Mô hình cài đặt 41
3.2.1 Tương tác người dùng 44
3.2.2 Tính toán gợi ý 44
3.2.3 Bộ đệm 45
3.2.4 Thiết kế cơ sở dữ liệu lưu trữ 47
3.2.5 Thử nghiệm và kết quả 51
3.3 Kết luận chương 57
CHƯƠNG 4: KẾT LUẬN VÀ ĐỊNH HƯỚNG PHÁT TRIỂN 58
4.1 Kết luận 58
4.2 Định hướng phát triển của đề tài 58
TÀI LIỆU THAM KHẢO 60
PHỤ LỤC 62
Trang 7v
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
Chữ cái viết tắt/ ký hiệu Cụm từ đầy đủ
Trang 8vi
DANH SÁCH BẢNG
Bảng 1.1 Ví dụ về ma trận đánh giá của lọc cộng tác 5
Bảng 1.2 Ma trận đánh giá của lọc cộng tác 17
Bảng 2.1 Tính độ tương đồng giữa hai mục 28
Bảng 3.1 Môi trường, phần mềm và thư viện hỗ trợ 45
Trang 9vii
DANH SÁCH HÌNH VẼ
Hình 1.1 Các thành phần của hệ thống lọc cộng tác 5
Hình 1.2 Các bước thực hiện lọc cộng tác người dùng 8
Hình 1.3 Các bước thực hiện lọc cộng tác mục 12
Hình 2.1 Mô hình xử lý thông tin của vnTokenizer trong hệ thống 21
Hình 2.2 Mô hình xử lý dữ liệu của LDA model 24
Hình 2.3 Mô hình module đánh giá 30
Hình 3.1 Mô hình kiến trúc hệ thống 42
Hình 3.2 Mô hình cài đặt hệ thống 43
Hình 3.3 Biểu đồ cơ sở dữ liệu 47
Hình 3.4 Biểu diễn dữ liệu sau bước tiền xử lý 53
Hình 3.5 Giao diện trang chủ khi chưa đăng nhập 55
Hình 3.6 Giao diện trang chủ khi đã đăng nhập 55
Hình 3.7 Giao diện tìm kiếm 56
Hình 3.8 Giao diện trang yêu thích 56
Hình 3.9 Giao diện trang chi tiết - đánh giá 57
Trang 101
MỞ ĐẦU
Ngày nay, với sự tăng trưởng bùng nổ của công nghệ thông tin, đặc biệt là Internet, rất nhiều thông tin dữ liệu đã và đang được phổ biến qua môi trường này Với lượng dữ liệu khổng lồ, đôi khi là một thách thức không nhỏ đối với những người dùng mong muốn tìm kiếm thông tin từ khắp các kho lữu trữ trên toàn thế giới Điều này thường được gọi là vấn đề quá tải thông tin do hạn chế về khả năng xử lý thông tin của con người Do đó, hệ thống gợi ý ra đời, nhằm hỗ trợ người dùng trong việc lấy thông tin hữu ích một cách hiệu quả trong trường hợp người dùng đó không thể
mô tả yêu cầu của họ một cách chính xác Hệ thống này đề nghị người dùng các thông tin mong muốn bằng cách phân tích các sở thích trước đây của họ hoặc sở thích của những người có cùng đặc điểm chung với họ
Đề tài tốt nghiệp của tôi nhằm xây dựng một hệ thống gợi ý địa điểm cho người dùng trong phạm vi thành phố Hà Nội Hệ thống này sử dụng một kỹ thuật lọc tiếp cận lai, gọi là kỹ thuật lọc cộng tác dựa trên ngữ nghĩa SBCF (semantic-based collaborative filtering) Cụ thể hơn, kỹ thuật này sử dụng mô hình LDA (Latent Dirichlet Allocation) để phân tích đặc trưng ngữ nghĩa các dữ liệu mô tả địa điểm, sau đó sử dụng phương pháp lọc cộng tác dựa trên tài liệu (item-based Collaborative Filtering) đánh giá các đặc điểm ngữ nghĩa thu được từ mô hình LDA, từ đó đưa ra tập các thông tin gợi ý có độ tương đồng về ngữ nghĩa cao nhất với những thông tin
mà người dùng yêu thích trong quá khứ Các thông tin được tính toán ở đây là đặc trưng ngữ nghĩa của các địa điểm du dịch được trình bày bởi các đoạn text mô tả địa điểm lấy từ bộ dữ liệu
Bộ dữ liệu được sử dụng cho hệ thống gợi ý địa điểm du lịch được lấy trên Google Places API
Nội dung của luận văn được trình bày trong 4 chương, bao gồm:
Chương 1: Lọc cộng tác và một số kỹ thuật bổ trợ
Chương 2: Trình bày về phương pháp lọc cộng tác
Trang 112
Chương 3: Xây dựng ứng dụng áp dụng phương pháp lọc cộng tác
dựa trên ngữ nghĩa vào bài toán thực tiễn và thử nghiệm kết quả đạt được
Chương 4: Kết luận và định hướng phát triển của luận văn.
Trang 123
CHƯƠNG 1: BÀI TOÁN LỌC CỘNG TÁC VÀ MỘT SỐ KỸ
THUẬT BỔ TRỢ
1.1 Lọc cộng tác [1]
Không giống như lọc theo nội dung, lọc cộng tác khai thác những khía cạnh
liên quan đến thói quen sở thích của người sử dụng sản phẩm để đưa ra dự đoán các
sản phẩm mới cho người dùng này So với lọc theo nội dung, lọc cộng tác không
phải phân tích, bóc tách, hiểu, đánh chỉ mục cho các đặc trưng nội dung sản
phẩm Chính vì vậy, lọc cộng tác có thể lọc hiệu quả trên nhiều dạng sản phẩm
khác nhau như hàng hóa, phim, ảnh, tài liệu… Cùng trên một hệ tư vấn, người
dùng sẽ được tư vấn nhiều loại mặt hàng khác nhau cho dù các mặt hàng này có
thể biểu diễn trên không gian các đặc trưng nội dung khác nhau
Phương pháp lọc cộng tác là phương pháp dựa trên cộng đồng người dùng, dự
đoán đánh giá của một người dùng dựa trên đánh giá của những người dùng khác Nếu
người dùng có cùng quan điểm với một nhóm người dùng về một số sản phẩm thì có
thể cũng đồng quan điểm với nhóm người dùng đó về một mặt hàng, mục chưa biết
Phương pháp lọc cộng tác giới thiệu những mục có số đông người thích, nó mang tính
trào lưu, xu hướng theo người dùng
Phương pháp này không đi sâu vào phân tích tính chất, nội dung các mục đã yêu
thích để giới thiệu các mục gần giống với mục mà người dùng quan tâm Kết quả dự
đoán là các mục ngẫu nhiên thuộc nhiều chủ đề, thể loại khác nhau Phương pháp lọc
cộng tác dựa trên nhóm người dùng tương đồng mà nhóm người dùng đó có thể thích
nhiều thể loại, chủ thế khác nhau nên các mục tư vấn dựa trên sở thích của họ cũng sẽ
thuộc nhiều chủ đề, thể loại khác nhau Điều này là điều mà các nhà cung cấp mong
muốn, giới thiệu nhiều mục khác nhau đến với người sử dụng
Phương pháp lọc cộng tác chia làm hai loại là lọc cộng tác người dùng (User–
User Collaborative Filtering) và lọc cộng tác mục (Item–Item Collaborative Filtering)
Trang 134
Bài toán lọc cộng tác
Ký hiệu U = {u1, u2,…, uN} là tập gồm N người dùng, P = {p1, p2, , pM}
là tập gồm M sản phẩm mà người dùng có thể lựa chọn Mỗi sản phẩm pi∈P 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
Tiếp theo, ký hiệu R={ rij }, i = 1 N, j = 1 M là ma trận đánh giá, trong
đó mỗi người dùng ui∈U đưa ra đánh giá của mình cho một số sản phẩm pj∈P bằng một số rij Giá trị rij phản ánh mức độ ưa thích của người dùng ui đối với sản phẩm pj Giá trị rij có thể đượ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 Giá trị rij
=∅ trong trường hợp người dùng ui chưa đánh giá hoặc chưa bao giờ biết đến sản phẩm pj
Với một người dùng cần được tư vấn ua (đượ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), bài toán lọc cộng tác
là bài toán dự đoán đánh giá của ua đối với những mặt hàng mà ua chưa đánh giá (raj = ∅), trên cơ sở đó tư vấn cho ua những sản phẩm được đánh giá cao
Bảng 1.1 thể hiện một ví dụ với ma trận đánh giá R = (rij) trong hệ gồm 5 người dùng U = {u1, u2, u3, u4, u5} và 4 sản phẩm P = {p1, p2, p3, p4} Mỗi người
dùng đều đưa ra các đánh giá của mình về các sản phẩm theo thang bậc {∅, 1, 2, 3,
4, 5} Giá trị rij=∅ được hiểu là người dùng ui chưa đánh giá hoặc chưa bao giờ biết đến sản phẩm pj Các giá trị r5,2 =? là sản phẩm hệ thống cần dự đoán cho người dùng u5
Trang 14Ma trận đánh giá R = (rij) là thông tin đầu vào duy nhất của các phương
pháp lọc cộng tác Dựa trên ma trận đánh giá, các phương pháp lọc cộng tác
thực hiện hai tác vụ: Dự đoán quan điểm của người dùng hiện thời (Active User) về
các sản phẩm mà họ chưa đánh giá, đồng thời đưa ra một danh sách các sản phẩm
có đánh giá cao nhất phân bổ cho người dùng hiện thời Hình 1.1 dưới đây mô tả các thành phần của hệ thống lọc cộng tác
Hình 1.1: Các thành phần của hệ thống lọc cộng tác
Trang 151.2 Một số phương pháp cho bài toán lọc cộng tác
Cũng giống như lọc theo nội dung, lọc cộng tác tiếp cận theo hai xu hướng chính: Lọc cộng tác dựa trên bộ nhớ và lọc cộng tác dựa trên mô hình Mỗi phương pháp tiếp cận có những ưu điểm và hạn chế riêng, khai thác các mối liên hệ trên ma trận đánh giá người dùng
1.2.1 Lọc cộng tác dựa trên bộ nhớ
Các phương pháp lọc dựa trên bộ nhớ sử dụng toàn bộ ma trận đánh giá để
sinh ra dự đoán các sản phẩm cho người dùng hiện thời (AU) Về thực chất, đây là phương pháp học lười (LL) hay học dựa trên ví dụ (IBL) được sử dụng trong học
máy Phương pháp được thực hiện theo hai bước: Tính toán mức độ tương tự và bước tạo nên dự đoán
Tính toán mức độ tương tự sim(x, y): Mô tả khoảng cách, sự liên quan, hay trọng số giữa hai người dùng x và y (hoặc giữa hai sản phẩm x và y)
Dự đoán: Đưa ra dự đoán cho người dùng cần được tư vấn bằng cách xác định tập láng giềng của người dùng này Tập láng giềng của người dùng cần tư vấn được xác định dựa trên mức độ tương tự giữa các cặp người dùng hoặc sản phẩm
Các phương pháp tính toán mức độ tương tự
Việc tính toán mức độ tương tự giữa hai người dùng x và y được xem xét dựa vào tập sản phẩm cả hai người dùng đều đánh giá Tương tự, việc tính toán mức
độ tương tự giữa hai sản phẩm x và y được xem xét dựa vào tập người dùng cùng
đánh giá cả hai sản phẩm Sau đó, sử dụng một độ đo cụ thể để xác định mức độ tương tự giữa hai người dùng hoặc sản phẩm
Có nhiều phương pháp khác nhau tính toán mức độ tương tự sim(x, y) giữa các
cặp người dùng Hai phương pháp phổ biến nhất được sử dụng là độ tương quan Pearson và giá trị cosin giữa hai véctơ
1.2.1.1 Phương pháp User-based
Trang 16Phương pháp lọc cộng tác người dùng (User – User Collaborative Filtering) hay còn gọi tắt là phương pháp UserBased, đây là phương phương pháp ước lượng mức độ tương tự giữa các người dùng, nhóm hoặc cụm người dùng để dựa vào đó đưa ra dự đoán các sản phẩm mới phù hợp với người dùng cần được tư vấn
Ý tưởng của phương pháp lọc cộng tác người dùng là quảng cáo truyền miệng, tức là ý kiến của các thành viên trong gia đình, bạn bè đóng vai trò quan trọng trong việc đưa ra quyết định cá nhân Nó sử dụng những ý kiến của người dùng tương tự
để dự đoán đánh giá của một người dùng cho một mục
Người dùng tương tự là những người dùng có cùng sở thích về nhiều mục với người dùng đang xét Để tránh trường hợp dự đoán xếp hạng của người dùng dựa trên quá nhiều người dùng tương tự, hệ tư vấn lựa chọn k người hàng xóm gần nhất trong
số người dùng tương tự trên để lấy ý kiến của họ cho dự đoán mục của người dùng
đang xét
Trang 17Các bước thực hiện thuật toán của phương pháp UserBased được mô tả như sau:
Tìm kiếm người dùng có đánh giá cho mục trên
Tính tương đồng giữa người dùng u với từng người trên
Tìm kiếm mục người dùng u
đã có đánh giá Bước 1
dùng u với mục chưa xếp
hạng
Hình 1.2: Các bước thực hiện lọc cộng tác người dùng
Ta quy ước người dùng u là người dùng đang xét
Bước 1: Tìm kiếm mục người dùng u đã có đánh giá
Bước 2: Tìm những người dùng có đánh giá cho các mục mà người dùng
u đánh giá Sau khi tìm kiếm được các mục mà người dùng u đã đánh
giá, ta tìm kiếm những người dùng có đánh giá cho các mục tìm được ở
bước 2
Bước 3: Tính tương đồng giữa người dùng u với những người dùng tìm kiếm ở bước 2
Trang 18Có 4 công thức được dùng để tính toán sự tương đồng giữa hai người sử dụng Giá trị này càng cao thể hiện hai người dùng càng có chung sự tương đồng
- Tương quan người dùng (Pearson correlation)
Công thức tương quan người dùng tính toán sự tương tự giữa hai người dùng dựa trên xếp hạng những mục mà cả hai người đều đánh giá
ru,i là xếp hạng của người dùng u với mục i
𝑟̅ulà xếp hạng trung bình của người dùng u
Trong trường hợp I u ⋂ I v lớn ta có thể sử dụng ngưỡng giới hạn Iu ⋂ Iv Theo nhiều thí nghiệm cho thấy ngưỡng có giá trị 50 là hữu ích trong việc cải thiện độ chính xác dự đoán
- Ràng buộc tương quan người dùng (Constrained Pearson correlation)
Trong công thức này ta cần một điểm tiêu chuẩn z là đánh giá trung tính Ví dụ với thang điểm 1-5 trong đó đánh giá 1-2 là không thích, đánh giá 3 là trung tính (không thích cũng không ghét), đánh giá từ 4-5 là thích ta có thể sử dụng điểm chuẩn
ru, Ilà xếp hạng mà người dùng u đã đánh giá mục i
rz là điểm tiêu chuẩn
- Thứ hạng tương quan với người dùng (Spearman rank correlation)
Đối với phương pháp này, các mục được người dùng đánh giá sẽ được sắp xếp
Trang 19theo cấp bậc Với những đánh giá tốt nhất sẽ ở bậc 1, còn những đánh giá thấp hơn
sẽ ở các bậc cao hơn Sau đó thực hiện tính toán như phương pháp Pearson
correlation, các đánh giá trong công thức (1.3) sẽ được thay thế bằng các cấp bậc
Trong đó du,i là cấp bậc xếp hạng của người dùng u đánh giá cho mục i
𝑑̅u là cấp bậc trung bình đánh giá của người dùng u
- Độ tương đồng cosine (Cosine similarity)
Đây là phương pháp vector không gian dựa trên đại số tuyến tính không phải
là các phương pháp thống kê như ở trên Mỗi người dùng được biểu diễn bằng 1 vector và sự tương đồng giữa hai người dùng được tính toán bằng khoảng cách cosine giữa hai vector đánh giá
Trong đó ru,i là đánh giá của người dùng u với mục i
Bước 4: Lựa chọn k người dùng là hàng xóm
Trong một số hệ thống, người ta lựa chọn k hàng xóm là tất cả người dùng khác người dùng đang Còn trong một số hệ thống khác, k hàng xóm được lựa chọn tùy thuộc vào việc xét duyệt từng mục, với mỗi mục khác nhau sẽ lựa chọn một số lượng k hàng xóm khác nhau
Việc hạn chế số lượng người dùng tương tự mang đến những dự đoán chính xác hơn vì thế khi thực hiện nhiều thí nghiệm trong nhiều lĩnh vực khác nhau, người
ta nhận thấy với k ∊ [20, 50] là con số hợp lý
Bước 5: Tìm kiếm những mục k người dùng đã xếp hạng mà người dùng u chưa xếp hạng
Bước 6: Dự đoán đánh giá của người dung u với mục chưa xếp hạng
Trang 20Dựa trên người dùng hàng xóm ta có công thức dự đoán đánh giá của người dùng đó với một mục như sau:
s(u, u’) là sự tương đồng giữa người dùng đang xét u và người dùng hàng xóm u’
ru’,ilà xếp hạng của người dùng u’ với i
𝑟̅u’ là xếp hạng trung bình của người dùng u’
1.2.1.2 Phương pháp Item-Based
Phương pháp ItemBased là phương pháp ước lượng mức độ tương tự giữa các cặp sản phẩm, nhóm hoặc cụm sản phẩm dựa vào đó để đưa ra dự đoán các sản phẩm mới phù hợp với người dùng cần được tư vấn
Hiện nay, số lượng sản phẩm đang tăng theo thời gian và quy mô mở rộng của nhà cung cấp nhưng so với người sử dụng thì số lượng này có thể ít hơn thậm chí ít hơn một cách đáng kể Để khắc phục sự phức tạp khi số lượng người dùng tăng trong phương pháp lọc cộng tác người dùng (UserBased), các nhà nghiên cứu đã tìm hiểu
và đưa thêm một phương pháp là lọc cộng tác dựa trên mục
Phương pháp lọc cộng tác mục dựa trên ý tưởng người dùng sẽ có cùng quan tâm với những mục tương tự, hệ tư vấn tìm kiếm những mục tương tự với mục mà người dùng đã đánh giá để đưa ra tư vấn Sự giống nhau giữa các mục được dựa trên xếp hạng của những người dùng khác với chúng
Trang 21Các bước thực hiện thuật toán của phương pháp ItemBased được mô tả như sau:
Xét mỗi mục j đã đánh giá với mục i chưa đánh giá.
Tính sự tương đồng giữa hai
mục i và j Bước 1
Hình 1.3: Các bước thực hiện lọc cộng tác mục
Bước 1: Tìm kiếm mục người dùng đã có đánh giá và chưa có đánh giá Trong
bước này chỉ thực hiện 2 công việc là tìm tập những mục mà người dùng chưa đánh giá và tìm tập những mục mà người dùng đã đánh giá
Bước 2: Xét mỗi mục i đã đánh giá với lần lượt các mục j chưa có đánh giá Sau đó tính sự tương đồng giữa hai mục i và j
Sự tương đồng giữa hai mục i và j dựa trên đánh giá của những người dùng đã xếp hạng cho cả hai mục
Có ba công thức để tính tương đồng giữa hai mục
- Độ tương đồng Cosine (Cosine similarity)
Độ tương đồng cosine giữa các vector xếp hạng mục là số đo tương đồng phổ biến nhất vì nó đơn giản, nhanh và cung cấp các dự đoán có độ chính xác tương đối tốt
Trang 22Trong đó, 𝑟𝑣,𝑖 là xếp hạng của người dùng v với mục i
V là tập hơn người dùng có cùng đánh giá cho cả hai mục i và j
- Tương quan người dùng (Pearson correlation)
Công thức Pearson correlation này với công thức Pearson correlation lọc cộng tác người dùng chỉ khác rằng danh sách những mục mà hai người sử dụng có đồng đánh giá được thay thế thành danh sách người sử dụng cùng đánh giá cho hai mục i
và j Công thức Pearson correlation cho phương pháp lọc cộng tác mục như sau:
𝑠(𝑖, 𝑗) = ∑𝑣∈𝑉(𝑟𝑣,𝑖 − 𝑟 ̅)(𝑟𝑖 𝑣,𝑗 − 𝑟 ̅)𝑗
√∑ (𝑟𝑣,𝑖 − 𝑟 ̅)𝑖 2 𝑣∈𝑉 √∑ (𝑟𝑣,𝑗 − 𝑟 ̅)𝑗 2
𝑣∈𝑉
(1.7)
Trong đó, V là tập hợp người dùng cùng danh sách đánh giá cho hai mục i và j
𝑟𝑣,𝑖 là xếp hạng của người dùng v cho mục i
𝑟𝑖
̅ là xếp hạng trung bình của mục i
- Điều chỉnh độ tương đồng Cosine (Adjusted Cosine Similarity)
Trong công thức tính toán Cosine similarity có một điều hạn chế là những đánh giá khác nhau của những người dùng khác nhau không có giá trị tham khảo để đưa ra dự đoán Công thức Cosine similarity khắc phục được nhược điểm này bằng cách trừ đi trung bình xếp hạng người dùng tương ứng với mỗi cặp đồng đánh giá
𝑠(𝑖, 𝑗) = ∑𝑢∈𝑈(𝑟𝑢,𝑖 − 𝑟 ̅ )(𝑟𝑢 𝑢,𝑗 − 𝑟 ̅ )𝑢
√∑ (𝑟𝑢,𝑖 − 𝑟 ̅ )𝑢 2 𝑢∈𝑈 √∑ (𝑟𝑢,𝑗 − 𝑟 ̅ )𝑢 2
𝑢∈𝑈
(1.8)
Trong đó , 𝑟𝑢,𝑖 là xếp hạng của người dùng u với mục i
𝑟 ̅ là xếp hạng trung bình của người dùng u 𝑢
Trang 23Bước 3 : Dự đoán đánh giá của người dùng u với mục j
Các tư vấn được tạo ra từ việc chọn ra các mục ứng cử viên là những mục có dự đoán cao nhất Sau khi thu thập một bộ S các mục tương tự nhau với mục i, công thức dự đoán đánh giá của người dùng u với mục i như sau:
𝑝𝑢,𝑖 = ∑𝑗∈𝑆𝑆(𝑖, 𝑗)𝑟𝑢,𝑗
∑𝑗∈𝑆|𝑆(𝑖, 𝑗)| (1.9)
Trong đó, S là tập các mục tương đồng với i
S(i,j) là giá trị tương đồng giữa hai mục i và j
𝑟𝑢,𝑗 là xếp hạng của người dùng u với mục j
1.2.2 Lọc cộng tác dựa trên mô hình
Khác với phương pháp dựa trên bộ nhớ, phương pháp lọc dựa trên mô hình sử dụng tập đánh giá để xây dựng mô hình huấn luyện Kết quả của mô hình huấn luyện được sử dụng để sinh ra dự đoán quan điểm của người dùng về các sản phẩm chưa được họ đánh giá Ưu điểm của của phương pháp này là mô hình huấn luyện có kích thước nhỏ hơn rất nhiều so với ma trận đánh giá và thực hiện dự đoán nhanh Mô hình chỉ cần cập nhật lại khi có những thay đổi lớn và chỉ thực hiện lại pha xây dựng
mô hình
Mô hình mạng Bayes:
Mô hình mạng Bayes biểu diễn mỗi sản phẩm như một đỉnh của đồ thị, trạng thái của đỉnh tương ứng với giá trị đánh giá của người dùng đối với sản phẩm đã được đánh giá Cấu trúc của mạng được nhận biết từ tập dữ liệu huấn luyện
Billsus và Pazzani chuyển đổi dữ liệu có nhiều mức đánh giá thành dữ liệu nhị phân Khi đó, ma trận đánh giá được chuyển đổi thành ma trận bao gồm đặc trưng nhị phân Việc chuyển đổi này làm cho việc sử dụng mô hình mạng Bayes trở nên
Trang 24thuận tiện hơn Tuy nhiên, kết quả phân loại theo các đặc trưng nhị phân không phản ánh đúng các bộ dữ liệu thực
Su và Khoshgoftaar mở rộng mô hình mạng Bayes cho các tập dữ liệu thực gồm nhiều lớp đánh giá khác nhau Kết quả dự đoán của mô hình tốt hơn so với các phương pháp dựa trên độ tương quan Pearson và mô hình mạng Bayes đơn giản
Mô hình phân cụm:
Một cụm là tập các đối tượng dữ liệu có các phần tử trong cụm giống nhau nhiều nhất, và khác nhau nhiều nhất đối với các phần tử thuộc các cụm khác Các phương pháp phân cụm cho lọc cộng tác được sử dụng để phân chia tập người dùng (hoặc tập sản phẩm) thành các cụm người dùng (hoặc sản phẩm) có sở thích tương tự nhau Khi đó, người dùng (hoặc sản phẩm) thuộc cụm nào sẽ được dự đoán và tư vấn các sản phẩm được đánh giá cao trong cụm đó
Độ đo dùng để ước lượng mức độ giống nhau giữa các đối tượng dữ liệu thường được sử dụng là khoảng cách Minkowski và độ tương quan Pearson
Sarwar và Herlocker cùng các cộng sự sử dụng các kỹ thuật phân cụm chia tập người dùng thành các cụm Phương pháp dự đoán sử dụng các thuật toán dựa trên bộ nhớ như độ tương quan Pearson để thực hiện trên mỗi cụm dữ liệu
Ungar và Foster sử dụng kỹ thuật K-median phân tập người dùng thành các cụm dựa vào những sản phẩm họ đã đánh giá, phân tập sản phẩm thành các cụm sản phẩm dựa vào những người dùng đánh giá sản phẩm đó Tập người dùng sau đó được phân cụm lại dựa vào số sản phẩm họ đánh giá Tương tự như vậy, tập sản phẩm cũng được phân cụm lại dựa vào số lượng người dùng đã đánh giá sản phẩm Phương pháp này được đánh giá cao về ý tưởng, nhưng trên thực tế kết quả dự đoán không được như mong muốn
Si và Jin đề xuất mô hình phân cụm bằng mô hình FMM (Flexible Mixture Model) Phương pháp phân cụm đồng thời cho cả người dùng, sản phẩm và cho phép mỗi người dùng hoặc sản phẩm có thể thuộc nhiều cụm khác nhau, sau đó mô hình hóa các cụm người dùng và các cụm sản phẩm độc lập nhau để thực hiện dự đoán
Trang 25Kết quả thử nghiệm đã chứng tỏ phương pháp cho lại kết quả tốt hơn so với phương pháp dựa trên độ tương quan Pearson và mô hình định hướng (Aspect Model)
Mô hình ngữ nghĩa ẩn:
Mô hình ngữ nghĩa ẩn cho lọc cộng tác dựa vào các kỹ thuật thống kê, trong
đó các tham biến ẩn được thiết lập trong một mô hình hỗn hợp để khám phá ra cộng đồng người dùng phù hợp với mẫu hồ sơ thích hợp Hofmann đề xuất mô hình định hướng (AM) cấp 3 bằng cách mở rộng mô hình định hướng cấp 2 đã được áp dụng cho bài toán phân tích ngữ nghĩa văn bản Sau đó sử dụng thuật toán tôi (Expectation Maximization) để ước lượng ngữ nghĩa các tham biến ẩn
Si và Jin đề xuất mô hình MM (Multinomial Model) phân loại tập người dùng với giả thiết chỉ có một kiểu người dùng duy nhất Marlin đề xuất mô hình MMM (Multinomial Mixture Model), kết hợp với mô hình định hướng (AM) để tạo nên mô hình URP (User Rating Profile) với giả thiết có nhiều kiểu người dùng và các đánh giá mỗi người dùng độc lập nhau Marlin khẳng định, URP thực hiện tốt hơn so với
mô hình AM và MMM
Mô hình phân loại và hồi qui:
Cho tập gồm N véctơ M chiều {xi} Mục tiêu của phân loại hay hồi qui là dự đoán chính xác giá trị đầu ra tương ứng {ci} Trong trường hợp phân loại, ci nhận một giá trị từ một tập hữu hạn gọi là tập các nhãn Trong trường hợp hồi qui, ci có thể nhận một giá trị thực
Để áp dụng mô hình phân loại cho lọc cộng tác, mỗi sản phẩm (hoặc người dùng) được xây dựng một bộ phân loại riêng Bộ phân loại cho sản phẩm y phân loại tập người dùng dựa trên những người dùng khác đã đánh giá sản phẩm y Các bộ phân loại được tiến hành huấn luyện độc lập nhau trên tập các ví dụ huấn luyện
Một số mô hình khác: Một số mô hình khác cũng được sử dụng trong lọc cộng tác như mô hình cực đại Entropy (Maximization Entropy Model), mô hình đồ thị (Graph-Based Model)
Trang 261.3 Một số vấn đề của lọc cộng tác
Phương pháp lọc cộng tác điển hình được áp dụng rộng rãi nhất là phương pháp k – láng giềng gần nhất Phương pháp này còn được gọi là lọc dựa trên bộ nhớ (memory-based filtering) để phân biệt với lọc dựa trên mô hình (model-based filtering) Với mỗi người dùng, hệ thống xác định k người dùng có sở thích giống người đó nhất dựa trên những sản phẩm họ đã chọn hoặc đã đánh giá trong quá khứ, sau đó tư vấn cho người dùng hiện thời sản phẩm mà k người này đã chọn Tương tự như vậy, thay vì tìm k người dùng gần nhất, ta cũng có thể tìm k láng giềng gần nhất cho mỗi sản phẩm và dựa trên việc người dùng có quan tâm tới các láng giềng này trong quá khứ không để quyết định lựa chọn hoặc không lựa chọn sản phẩm đang xét Trong trường hợp thứ nhất, lọc cộng tác được gọi là lọc dựa trên người dùng (user-based collaborative filtering), trong trường hợp thứ hai là lọc dựa trên sản phẩm (item-based)
4, 5} Giá trị rij= được hiểu là người dùng ui chưa đánh giá hoặc chưa bao giờ biết
Trang 27đến sản phẩm pj Các giá trị r5,1 =? là sản phẩm hệ thống cần dự đoán cho người dùng
Để giảm bớt ảnh hưởng của vấn đề dữ liệu thưa tới hiệu quả lọc cộng tác, nhiều phương pháp đồng huấn luyện đã được đề xuất như kỹ thuật làm trơn nhờ phân cụm, hoặc kết hợp lọc dựa trên người dùng với dựa trên sản phẩm Một số đề xuất khác dựa vào kỹ thuật SVD (Singular Value Decomposition) hoặc chia sẻ các đặc trưng chung
Hạn chế của phương pháp User-Based và Item-Based
Hiện nay đa số các hệ tư vấn đều sử dụng phương pháp học không giám sát
mà đặc trưng là 2 phương pháp UserBased và ItemBased Mặc dù 2 phương pháp này
đã được áp dụng thành công cho nhiều hệ thống thương mại điện tử, tuy vậy các phương pháp User-Based và Item-Based vẫn tồn tại một số hạn chế dưới đây:
Vấn đề dữ liệu thưa Đối với các hệ thống lọc cộng tác, số lượng sản phẩm có
đánh giá khác rỗng nhỏ hơn rất nhiều lần số lượng sản phẩm có đánh giá rỗng Điều này ảnh hưởng trực tiếp đến việc tính toán mức độ giống nhau giữa các cặp người dùng hoặc sản phẩm Trong trường hợp hai người dùng i, jU có tập đánh giá chung PiPj =, khi đó mức độ tương tự giữa hai người dùng này sẽ không thể xác định được (Ví dụ người dùng u5 và u2 trong Bảng 1.2) Khi hai sản phẩm x, yP có tập người dùng cùng đánh giá sản phẩm UxUy =, thì mức độ tương tự giữa hai sản phẩm này cũng không thể xác định được (Ví dụ
Trang 28sản phẩm p7 và p3 trong Bảng 1.2) Đây là hạn chế lớn nhất ngay khi thực hiện Bước 1 của thuật toán
Vấn đề dữ liệu thưa làm cho việc xác định tập láng giềng của thuật toán tại Bước 2 trở nên kém tin cậy Khi thực hiện tính toán các giá trị sij và pxy , các độ
đo đều chỉ thực hiện trên các tập PiPj ≠ và UxUy ≠ Việc các giá trị đánh giá không giao nhau không tham gia vào quá trình tính toán đã bỏ qua nhiều nhãn phân loại biết trước Điều này làm cho nhiều người dùng hoặc sản phẩm rất tương tự nhau nhưng lại không được xác định (Ví dụ u1 và u3 trong Bảng 1.2) Ngược lại, nhiều cặp người dùng kém tương tự nhau nhưng vẫn được xác định trong tập láng giềng Tập láng giềng được xác định không phù hợp sẽ ảnh hưởng trực tiếp đến chất lượng dự đoán các phương pháp (Ví dụ u2 và u4 trong Bảng 1.2)
Vấn đề người dùng mới(New user problem): cũng giống như lọc theo nội dung,
để phân bổ chính xác các sản phẩm người dùng quan tâm, lọc cộng tác phải ước lượng được sở thích của người dùng đối với các sản phẩm mới thông qua những đánh giá của họ trong quá khứ Trong trường hợp một người dùng mới, số đánh giá của người dùng cho các sản phẩm là rỗng, khi đó phương pháp lọc cộng tác không thể đưa ra những tư vấn chính xác cho người dùng này
Vấn đề sản phẩm mới(New item problem): Trong lọc thông tin, các sản phẩm
thường xuyên được bổ sung, cập nhật vào hệ thống Khi xuất hiện một sản phẩm mới, tất cả đánh giá người dùng cho sản phẩm này đều là rỗng Do đó lọc cộng tác không thể tư vấn sản phẩm cho bất kỳ người dùng nào trong hệ thống
1.4 Kết luận chương
Như vậy, chương I đã trình bày khái quát về các về lọc cộng tác, một số phương pháp kỹ thuật bổ trợ như lọc cộng tác dựa trên bộ nhớ và dựa trên mô hình Bên cạnh đó, chương này cũng đã phân tích các vấn đề của lọc cộng tác cũng như các hạn chế của phương pháp User-Based và Item-Based, tiến tới lựa chọn phương pháp phù hợp cho bài toán cần giải quyết của đề tài
Trong chương tiếp theo, luận văn sẽ giới thiệu cụ thể hơn về phương pháp lọc
Trang 29cộng tác dựa trên ngữ nghĩa nhằm xác định phạm vi cho các nhiệm vụ đề xuất mô hình giải quyết, phân tích và khai phá tiếp theo với mục tiêu cụ thể sau:
Nghiên cứu về phương pháp lọc cộng tác LDA Phương pháp sử dụng đề xuất được trình bày trong Chương 2
Nghiên cứu và đề xuất sử dụng phương pháp lọc cộng tác LDA Mô hình đề xuất được trình bày trong Chương 3
Trang 30CHƯƠNG 2: PHƯƠNG PHÁP LỌC CỘNG TÁC DỰA TRÊN
Hình 2.1: Mô hình xử lý thông tin của vnTokenizer trong hệ thống
Hình 2.1 biểu diễn các quá trình xử lý thông tin bên trong mô hình tách từ vnTokenizer Đầu vào của mô hình này là các đoạn text được lấy từ các bản mô tả địa điểm trong cơ sở dữ liệu Sau khi qua hai bước tách từ và loại bỏ từ dừng, khoảng trắng, ký tự đặc biệt, đầu ra của mô hình sẽ là tập các từ đại diện cho từng mô tả ứng với từng địa điểm
vnTokenizer là công cụ tách từ tiếng Việt được nhóm tác giả Nguyễn Thị Minh Huyền, Vũ Xuân Lương và Lê Hồng Phương phát triển dựa trên phương pháp so khớp tối đa (Maximum Matching) với tập dữ liệu sử dụng là bảng âm tiết tiếng Việt
và từ điển từ vựng tiếng Việt
Công cụ được xây dựng bằng ngôn ngữ Java, mã nguồn mở Có thể dễ dàng sửa đổi nâng cấp và tích hợp vào các hệ thống phân tích văn bản tiếng Việt khác
Quy trình thực hiện tách từ theo phương pháp khớp tối đa:
Trang 31- Đầu vào của công cụ tách từ vnTokenizer là một câu hoặc một văn bản được lưu dưới dạng tệp Trong luận văn đầu vào ở đây là trường dữ liệu mô tả về địa điểm đã có sẵn
- Đầu ra là một chuỗi các đơn vị từ được tách
- Các đơn vị từ bao gồm các từ trong từ điển cũng như các chuỗi số, chuỗi kí từ nước ngoài, các hình vị ràng buộc (gồm các phụ tố), các dấu câu và các chuỗi
kí tự hỗn tạp khác trong văn bản (ISO, 2008) Các đơn vị từ không chỉ bao gồm các từ có trong từ điển, mà cả các từ mới hoặc các từ được sinh tự do theo một quy tắc nào đó (như phương thức thêm phụ tố hay phương thức láy) hoặc các chuỗi kí hiệu không được liệt kê trong từ điển
Công cụ sử dụng tập dữ liệu đi kèm là tập từ điển từ vựng tiếng Việt, danh sách các đơn vị từ mới bổ sung, được biểu diễn bằng ôtômat tối tiểu hữu hạn trạng thái, tệp chứa các biểu thức chính quy cho phép lọc các đơn vị từ đặc biệt (xâu dạng
số, ngày tháng, …), và các tệp chứa các thống kê unigram và bigram trên kho văn bản tách từ mẫu
Với các đơn vị từ đã có trong từ điển, khi thực hiện tách từ cũng được xử lý hiện tượng nhập nhằng bằng cách kết hợp với các thống kê unigram và bigram Chẳng hạn trong tiếng Việt thường gặp các trường hợp nhập nhằng như:
- Xâu AB vừa có thể hiểu là 1 đơn vị từ, vừa có thể là chuỗi 2 đơn vị từ A-B
- Xâu ABC có thể tách thành 2 đơn vị AB-C hoặc A-BC
Ví dụ như với thông tin địa điểm nhà hàng Cook & Cook:
- Tên: nhà hàng Cook&Cook
- Vị trí: Số 3, ngõ Bà Triệu, Lê Đại Hành, Hai Bà Trưng, Hà Nội
- Tọa độ: (21.012392, 105.84882)
- Loại địa điểm: ẩm thực
- Mô tả: Nằm trên ngõ Bà Triệu rẽ ra đường Bà Triệu sầm uất, nhà hàng CookCook mang đến cho thực khách Hà thành một phong cách ấn tượng và mới lạ Điểm đặc biệt ở nhà hàng là có các bàn Teppanyaki, mà tại đó thực
Trang 32khách được thoả mãn con mắt với màn trình diễn của đầu bếp tại bàn với các dụng cụ làm bếp Điều này chắc chắn sẽ làm bạn thích thú và ngạc nhiên Và lại được ăn những món nóng sốt sẽ làm cho bạn thấy ngon miệng hơn
Đầu vào của module vnTokenizer trong trường hợp này sẽ là trường dữ liệu
mô tả: “Nằm trên ngõ Bà Triệu rẽ ra đường Bà Triệu sầm uất, nhà hàng CookCook mang đến cho thực khách Hà thành một phong cách ấn tượng và mới lạ Điểm đặc biệt ở nhà hàng là có các bàn Teppanyaki, mà tại đó thực khách được thoả mãn con mắt với màn trình diễn của đầu bếp tại bàn với các dụng cụ làm bếp Điều này chắc chắn sẽ làm bạn thích thú và ngạc nhiên Và lại được ăn những món nóng sốt sẽ làm cho bạn thấy ngon miệng hơn”
Sau khi tách từ vnTokenizer, thông tin về mô tả nhà hàng này là một tập các từ: {“bà”, “bàn”, “bạn”, “cho”, “chắc chắn”, “cookcook”, “có”, “dụng cụ”, “hà thành”, “hơn”, “làm”, “làm bếp”, “lại”, “mang”, “mà”, “màn”, “món”, “mắt”, “một”,
“mới lạ”, “ngon miệng”, “ngõ”, “ngạc nhiên”, “nhà hàng”, “này”, “nóng sốt”, “nằm”,
“phong cách”, “sầm uất”, “teppanyaki”, “thoả mãn”, “thích thú”, “thấy”, “thực khách”, “triệu”, “trình diễn”, “ăn”, “điều”, “điểm”, “đó”, “đường”, “được”, “đầu bếp”, “đặc biệt”, “đến”, “ấn tượng”}
Sau khi tách từ, vẫn còn lại một số từ dừng như: “lại”, “mà” do cơ sở dữ liệu chưa được đầy đủ
2.1.2 Mô hình LDA
Mô hình LDA là một trong hai module chính có vai trò rất quan trọng trong
hệ thống Nó được sử dụng để trích trọn đặc trưng, biểu diễn ngữ nghĩa nội dung của các thông tin mô tả địa điểm một cách hiệu quả nhằm khai thác mối quan hệ giữa các thông tin mô tả địa điểm đó
LDA là một mô hình chủ đề ẩn, giúp giải quyết vấn đề mô hình hóa dữ liệu Chúng được dựa trên ý tưởng rằng mỗi tài liệu có một xác suất phân phối vào các chủ
đề, và mỗi chủ đề là sự phân phối kết hợp giữa các từ Biểu diễn các từ và tài liệu (ở đây là nội dung mô tả các địa điểm) dưới dạng phân phối xác suất giúp cho việc khai
Trang 33thác mối quan hệ giữa các tài liệu hiệu quả hơn rất nhiều so với mô hình không gian vector thông thường
Latent Dirichlet Allocation (LDA) là một mô hình sinh xác suất cho tập dữ liệu rời rạc LDA dựa trên ý tưởng: mỗi tài liệu là sự trộn lẫn của nhiều chủ đề (topic)
Về bản chất, LDA là một mô hình Bayesian 3 cấp (three-level hierarchical Bayes model: corpus level, document level, word level) trong đó mỗi phần của mô hình được coi như một mô trình trộn hữu hạn trên cơ sở tập các xác suất chủ đề
Một cách nôm na, ta có thể hiểu, trong mô hình LDA, các tài liệu được phân phối xác suất theo các chủ đề ẩn (ký hiệu là θ), và các chủ đề ẩn được phân phối xác suất theo các từ trong bộ từ vựng (ký hiệu là ϕ) Các từ trong bộ từ vựng đại diện cho ngữ nghĩa của các tài liệu, vậy nên chúng ta có thể xác định ngữ nghĩa của các chủ
đề ẩn bằng phân phối xác suất của các từ trong chủ đề ấy Có nghĩa là, giải thích các
từ liên quan đến các chủ đề ẩn sẽ giúp ta hiểu được đặc trưng ngữ nghĩa của chủ đề
đó Tương tự, giải thích các chủ đề liên quan đến các tài liệu sẽ giúp ta hiểu được đặc trưng ngữ nghĩa của tài liệu đó Như vậy, một cách gián tiếp, các phân bố chủ đề tiềm
ẩn của tài liệu có thể đặc trưng về mặt ngữ nghĩa của tài liệu đó
Hình 2.2: Mô hình xử lý dữ liệu của LDA model
Hình 2.2 mô tả mô hình xử lý dữ liệu của LDA, với đầu vào là tập các từ ứng với mỗi mô tả địa điểm, tập các từ này được lấy từ đầu ra của module tách từ vnTokenizer Nhìn vào mô hình, ta thấy việc sử dụng mô hình vnTokenizer là cần thiết vì nó sẽ giảm bớt công sức cực kỳ nhiều cho việc xây dựng bộ từ vựng trong LDA Sau khi xây dựng xong bộ từ vựng, ta dùng thuật toán lấy mẫu Gibbs sampling lấy mẫu xác suất và đưa ra kết quả là hai ma trận: ma trận phân phối xác suất mô tả địa điểm theo các chủ đề ẩn θ và ma trận phân phối xác suất chủ đề ẩn theo các từ ϕ
Mô hình LDA trong hệ thống sử dụng kỹ thuật lấy mẫu Gibbs Sampling để ước lượng các tham số Cụ thể hơn, kỹ thuật sử dụng những vòng lặp liên tiếp để lấy
Trang 34mẫu topic k đối với mỗi từ v trong tập các tài liệu dựa trên xác suất p(zi = k | v, z-i) được tính như sau:
p(zi = k | v, z-i) ∝ (nd,k + αk) 𝑛𝑘,𝑣 + 𝛽𝑣
∑𝑣′𝑛𝑘,𝑣′+𝛽𝑣′ (1) Với nv,k là số lần từ v được gắn với topic k, nd,k là số lần topic k được gán với các từ trong tài liệu d zi là chủ đề ẩn được lấy mẫu và z-i đại diện cho toàn bộ chủ đề trong tập chủ đề ngoài trừ zi
α và 𝛽 là các tham số của phân bố Dirichlet, sử dụng để làm mịn các thông số cho việc đếm Quá trình lấy mẫu sẽ dừng lại khi đạt được một độ chính xác nhất định
Thông qua việc đếm các phân bố xác suất trong biểu thức (1), các giá trị θ và
φ được tính ra như sau:
là một đoạn short text, vậy áp dụng mô hình LDA vào hệ thống gợi ý địa điểm này là đúng hay sai? Câu trả lời là không sai, và hoàn toàn có thể áp dụng được Lý do là
mô hình LDA tìm ra các chủ đề ẩn và mối liên hệ của các tài liệu với các chủ đề ẩn dựa trên bộ từ vựng Vậy chỉ cần một bộ từ vựng đủ lớn, ta có thể áp dụng mô hình LDA mà không cần quan tâm nhiều đến dữ liệu đầu vào là văn bản hay short text
Một ví dụ điển hình, mạng xã hội Twitter sử dụng mô hình LDA để phân loại topic của các tweets của người dùng – vốn là những đoạn short text chứ không phải
là văn bản
Trang 35Để thực hiện xử lý qua LDA, ta sử dụng bộ thư viện hỗ trợ JGibbLDA[11] với đầu vào là một file txt dữ liệu có cấu trúc như sau:
M: là số địa điểm trong tập dữ liệu
motadiadiemi: là địa điểm thứ i trong tập dữ liệu, mỗi mô tả địa điểm sẽ được biểu diễn trên một dòng, mỗi dòng sẽ là một tập các từ biểu diễn cho địa điểm đó, phân cách giữ các từ là một khoảng trắng
[motadiadiemi] = [wordi1] [wordi2] [wordiNi]
Đầu ra của module này là ma trận θ phân phối xác suất thông tin mô tả địa điểm theo các chủ đề ẩn và ma trận phân phối xác suất các chủ đề ẩn theo các từ
Cấu trúc ma trận θ như sau:
motadiadiem 1 giá trị 11 giá trị 12 … giá trị 1n
motadiadiemM giá trị M1 giá trị M2 … giá trị Mn
Với M là số địa điểm, n là số chủ đề ẩn Trong đó n là 1 tham số đầu vào của JGibbLDA với giá trị mặc định là 100 Tức là module này sẽ đi tìm xác suất phân bố của địa điểm vào 100 chủ đề
Cấu trúc ma trận ϕ như sau:
Trang 36Từ 1 Từ 2 … Từ V
Với V là số từ trong bộ từ vựng, n là số topic
2.2 Phương pháp lọc cộng tác dựa trên mô hình LDA
2.2.1 Kỹ thuật lọc cộng tác dựa trên mô hình
Như đã nói ở trên, phương pháp lọc cộng tác mục (Item – Item Collaborative Filtering) hay còn gọi là phương pháp ItemBased, đây là phương phương pháp ước lượng mức độ tương tự giữa các cặp sản phẩm, nhóm hoặc cụm sản phẩm dựa vào đó
để đưa ra dự đoán các sản phẩm mới phù hợp với người dùng cần được tư vấn
Lấy ví dụ bảng đánh giá xếp hạng 5 sao của 5 người sử dụng A, B, C, D, E cho 4 bộ phim Batman Begins, Alice in Wonderland, Dumb and Dumber và Equilibrium (theo bảng 1.1) Xếp hạng này được đánh theo thang điểm 1- 5 trong đó
5 là xếp hạng cao nhất của người dùng thể hiện người dùng rất thích, rất quan tâm đến bộ phim đó
Ta thực hiện dự đoán đánh giá của người dùng C với bộ phim Equilibrium