1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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

72 200 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 72
Dung lượng 2,04 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

BỘ 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 2

BỘ 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 3

i

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 4

ii

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 5

iii

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 6

iv

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 7

v

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 8

vi

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 9

vii

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 10

1

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 11

2

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 12

3

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 13

4

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 pjP 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 14

Ma 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 15

1.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 16

Phươ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 17

Cá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 18

Có 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 19

theo 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 20

Dự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 21

Cá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 22

Trong đó, 𝑟𝑣,𝑖 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 23

Bướ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 24

thuậ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 25

Kế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 26

1.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, jU có tập đánh giá chung PiPj =, 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, yP có tập người dùng cùng đánh giá sản phẩm UxUy =, 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 28

sả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 PiPj ≠ và UxUy ≠ 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 29

cộ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 30

CHƯƠ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 32

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

Đầ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 33

thá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 34

mẫ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 36

Từ 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

Ngày đăng: 03/09/2018, 16:22

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w