Tải bản đầy đủ (.pdf) (58 trang)

ĐỒ ÁN TỐT NGHIỆP XÂY DỰNG HỆ THỐNG GỢI Ý BẰNG PHƯƠNG PHÁP MÔ HÌNH HÓA CHỦ ĐỀ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (784.57 KB, 58 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

ĐỒ ÁN TỐT NGHIỆP
XÂY DỰNG HỆ THỐNG GỢI Ý
BẰNG PHƯƠNG PHÁP MƠ HÌNH HĨA CHỦ ĐỀ

NGUYỄN THỊ THU HUYỀN

Chuyên ngành: Hệ thống thông tin quản lý

Giảng viên hướng dẫn: TS. Nguyễn Thị Thanh Huyền ___________
Bộ mơn:

Tốn Tin

Viện:

Tốn ứng dụng và tin học

HÀ NỘI – 07/2022

Chữ kí GVHD


TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN TOÁN ỨNG DỤNG VÀ TIN HỌC

XÂY DỰNG HỆ THỐNG GỢI Ý
BẰNG PHƯƠNG PHÁP MƠ HÌNH HĨA CHỦ ĐỀ
ĐỒ ÁN TỐT NGHIỆP
Chun ngành: Hệ thống thông tin quản lý


Chuyên sâu: Tin học

Giảng viên hướng dẫn: TS. Nguyễn Thị Thanh Huyền
Sinh viên thực hiện:

Nguyễn Thị Thu Huyền

MSSV:

20185457

Lớp:

Hệ thống thông tin 01 – K63

HÀ NỘI – 07/2022
2


NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

1. Mục đích và nội dung của đồ án:
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
2. Kết quả đạt được:
.................................................................................................................................
.................................................................................................................................

.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
3. Ý thức làm việc của sinh viên:
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................

Hà Nội, ngày…. tháng….năm 2022
Giảng viên hướng dẫn
(Ký và ghi rõ họ tên)


Mục lục

Lời cảm ơn.............................................................................................................................6
Đặt vấn đề..............................................................................................................................7
Danh mục hình vẽ..................................................................................................................8
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT...................................................................................10
1.1. Hệ thống gợi ý...............................................................................................................10
1.1.1. Hệ thống gợi ý là gì?...............................................................................................10
1.1.2. Sự quan trọng của hệ thống gợi ý..........................................................................11
1.1.3. Ứng dụng................................................................................................................11
1.2. Mơ hình hóa chủ đề văn bản.........................................................................................13
1.2.1. Latent Semantic Allocation.....................................................................................13
1.2.2. LDA..........................................................................................................................15
1.3. Cơ sở lý thuyết..............................................................................................................19
1.3.1. Cosine similarity.....................................................................................................19

1.3.2. SVD..........................................................................................................................19
1.3.3. Tf – idf.....................................................................................................................20
CHƯƠNG 2: CÁC PHƯƠNG PHÁP GỢI Ý....................................................................23
2.1. Hệ thống gợi ý dựa trên nội dung................................................................................23
2.1.1. Mô hình tổng quan...............................................................................................23
2.1.2. Cách thức hoạt động..............................................................................................28
2.1.3. Ưu điểm.................................................................................................................29
2.1.4. Nhược điểm...........................................................................................................29
2.2. Hệ thống gợi ý dựa trên người dùng – lọc cộng tác....................................................30
2.2.1. Mơ hình tốn học...................................................................................................31
2.2.2. Cách thức hoạt động..............................................................................................37
2.2.3. Ưu điểm..................................................................................................................38
2.2.4. Nhược điểm...........................................................................................................38
2.3. Hệ thống gợi ý sử dụng phương pháp mơ hình hóa chủ đề.......................................39
2.3.1. Hệ thống gợi ý dựa trên nội dung sử dụng mơ hình hoá chủ đề........................39
2.3.2. Cách thức hoạt động..............................................................................................39
2.3.3. Ưu điểm..................................................................................................................40
2.3.4. Nhược điểm............................................................................................................40
CHƯƠNG 3: XÂY DỰNG HỆ THỐNG GỢI Ý...............................................................41
3.1. Thu thập và xử lý dữ liệu ............................................................................................41
4


3.1.1. Thu thập.................................................................................................................41
3.1.2. Xử lý dữ liệu...........................................................................................................41
3.2. Đào tạo mô hình LDA..................................................................................................45
3.2.1. Xác định số lượng chủ đề cho mơ hình................................................................45
3.2.2. Đào tạo mơ hình LDA...........................................................................................47
3.3. Xây dựng hệ thống gợi ý bằng LDA............................................................................50
3.3.1. Xây dựng ma trận document - topic.....................................................................50

3.3.2. Gợi ý bài viết..........................................................................................................51
3.4. Kết quả..........................................................................................................................52
KẾT LUẬN..........................................................................................................................53
Tài liệu tham khảo..............................................................................................................55

5


Lời cảm ơn

Vốn dĩ cuộc đời dài mấy chục năm nhưng chỉ cho ta vỏn vẹn vài năm
thanh xuân tuổi trẻ, vậy mà trong khoảng thời gian ngắn ngủi đấy, vừa phải học
tập, vừa phải lớn lên, trưởng thành, trải qua không biết bao nhiêu thăng trầm
cảm xúc. Nhưng cũng trong những năm tháng thanh xn ấy tơi có Bách Khoa ở
bên, có Tốn Tin là nhà. Nếu như nói cuộc đời là một chuyến tàu thì Bách Khoa
chính là một điểm dừng chân mà tôi không nỡ rời xa nhất.
Vẫn nhớ những ngày đầu còn lạ lẫm bước chân vào trường, cầm trên tay tờ
giấy báo trúng tuyển mà lòng còn hân hoan vui sướng, thế mà bây giờ cũng sắp
khép lại chặng đường bốn năm mang tên Bách Khoa. Đi qua những năm tháng
Bách Khoa, ta mới thấy tuổi trẻ đáng trân trọng như thế nào.
Cảm ơn Bách Khoa, cảm ơn Tốn Tin đã trang bị cho tơi những hành trang
để tơi có thể bước đi tiếp trên những chặng đường của mình. Đặc biệt, tơi xin gửi
lời cảm ơn đến cô TS.Nguyễn Thị Thanh Huyền đã tận tình hướng dẫn, chỉ bảo
để em có thể hồn thành đồ án này. Tôi cũng xin gửi lời cảm ơn sâu sắc tới gia
đình, bạn bè và những người bạn đã luôn ở bên cạnh ủng hộ, động viên, giúp tơi
có thêm nhiều niềm vui, động lực để học tập cũng như hoàn thành đồ án này.
Cảm ơn tất cả mọi người!

6



Đặt vấn đề

Ngày nay, việc sử dụng Internet là một tất yếu của cuộc sống. Với Internet,
chúng ta có thể truy cập mọi thơng tin trên tồn thế giới một cách nhanh chóng,
dễ dàng đọc bất cứ một bài báo, bài viết nào chỉ với một chiếc điện thoại thông
minh hay một chiếc ipad, laptop. Nhu cầu tìm kiếm sản phẩm, tìm kiếm thơng
tin, bài viết ngày càng gia tăng. Với lượng thông tin khổng lồ trên Internet cùng
với lượng người dùng tăng lên đáng kể, việc tìm kiếm, liên kết và cung cấp cho
khách hàng những thông tin theo sở thích và thị hiếu rất quan trọng. Một trong
những thách thức là người dùng làm thế nào để lựa chọn được sản phẩm, hay các
tin tức đáp ứng đúng nhu cầu tìm kiếm của họ? Người dùng thường gặp các vấn
đề khó khăn trong việc tìm kiếm các sản phẩm, các bài viết bởi lượng bài viết
ngày càng nhiều, việc tìm kiếm tốn thời gian hơn. Vấn để đặt ra là làm sao để
người dùng có thể tìm được sản phẩm, các bài viết trong vô vàn lượng dữ liệu
mà họ đang tìm?
Do đó, hệ thống gợi ý đã được xây dựng để giải quyết vấn đề trên. Hệ
thống gợi ý sẽ hỗ trợ người dùng tìm kiếm đúng các thơng tin cần thiết, dự đốn
sở thích hay xếp hạng mà người dùng người dùng có thể dành cho một sản
phẩm, một bài viết mà người dùng xem xét trong quá khứ. Từ đó gợi ý cho
người dùng các sản phẩm liên quan. Với các bài viết, việc khai thác nội dung
gặp nhiều khó khăn đối với những văn bản có độ dài khác nhau. Các bài viết
được biểu diễn để khai thác mối quan hệ giữa chúng một cách hiệu quả ngày
càng trở nên tinh vi và phức tạp hơn. Các mơ hình chủ đề ẩn là một bước tiến
quan trọng trong việc mơ hình hóa dữ liệu văn bản. Hai kĩ thuật về phân tích chủ
đề sử dụng mơ hình ẩn là Probabilistic Latent Sematic Analysis(pLSA) và Latent
Dirichlet Allocation (LDA).
Trong đồ án này, em xin lựa chon đề tài:” Xây dựng hệ thống gợi bằng
phương pháp mô hình hóa chủ đề” nhằm xây dựng hệ thống, tích hợp hệ gợi ý
để tối ưu hóa việc hiển thị nội dung các bài báo phù hợp với từng đối tượng

người đọc.
7


Danh mục hình vẽ
Hình 1: Hệ thống gợi ý...................................................................................................10
Hình 2: Tổng quan mơ hình LSA...................................................................................14
Hình 3: Ma trận documents – term.................................................................................14
Hình 4: tf-idf cho giá trị trong ma trận trận documents – term......................................15
Hình 5: Phân tích ma trận gồm m documents và n từ thành k topic...............................15
Hình 6: Mọi tài liệu bao gồm một phân phối các chủ đề ..............................................16
Hình 7: Mỗi chủ đề được đặc trưng bởi sự phân bố các từ ...........................................16
Hình 8: Tài liệu với chủ đề ẩn .......................................................................................17
Hình 9: Ước lượng tham số cho tập dữ liệu..................................................................17
Hình 10: Xây dựng mà trận phân phối topic .................................................................40
Hình 11: Biểu đồ Coherence score.................................................................................46
Hình 12: Biểu đồ Jacar...................................................................................................47
Hình 13: Mơ hình tổng quan đào tạo mơ hình LDA.......................................................47
Hình 14: Phân bố topic...................................................................................................50
Hình 15: Ma trận documents – topics.............................................................................50
Hình 16: Hệ thống gợi ý bài viết....................................................................................51

8


Danh mục bảng
Bảng 1: Unility Matrix biểu diễn các giá trị "rating" giữa người dùng và sản phẩm.....24
Bảng 2: Feature vector..................................................................................................26
Bảng 3: Thông tin của users quan tâm tương ứng.........................................................26
Bảng 4: Mức độ quan tâm của user...............................................................................27

Bảng 5: Feature Vector (Thiếu nhi, Kỹ năng)...............................................................28
Bảng 6: Rating..............................................................................................................31
Bảng 7: Tính các giá trị trung bình rating của từng user_i............................................32
Bảng 8: Chuẩn hóa Utility matrix.................................................................................33
Bảng 9: Dự đốn các giá trị rating cịn thiếu.................................................................34
Bảng 10: Quay lại các giá trị trung bình rating của từng user_i....................................35
Bảng 11: Giá trị trung bình rating của từng item...........................................................35
Bảng 12: Chuẩn hóa ma trận.........................................................................................36
Bảng 13: Tính tốn độ tương đồng giữa 2 item.............................................................36
Bảng 14: Dự đoán các rating cịn thiếu.........................................................................36
Bảng 15: Chuẩn hóa ma trận.........................................................................................37
Bảng 16: Chuyển markdown sang text..........................................................................42
Bảng 17: Parse HTML..................................................................................................44
Bảng 18: Tokenize........................................................................................................44
Bảng 19: Coherence Score ...........................................................................................45
Bảng 20: Bảng jaccard similarity score.........................................................................46
Bảng 21: Dictionary......................................................................................................48
Bảng 22: Corpus............................................................................................................49
Bảng 23: Topic của mơ hình LDA................................................................................49
Bảng 24: Kết quả gợi ý một số bài viết.........................................................................52

9


CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1. Hệ thống gợi ý
1.1.1. Hệ thống gợi ý là gì?
Hệ thống gợi ý hay Recommendation System [1] là một dạng của hệ thống
lọc thông tin, nó được sử dụng để dự đốn sở thích hay xếp hạng mà người dùng
có thể dành cho một mục thơng tin(item) nào đó mà họ chưa xem xét tới (item

có thể là bài báo, bộ phim, sách, âm nhạc, …) nhằm gợi ý các mục thơng tin có
thể được quan tâm bởi người dùng. Hệ thống gợi ý sẽ đưa ra các gợi ý dựa trên
quá trình thu thập, xử lý và phân tích dữ liệu người dùng. Trong hầu hết các
trường hợp, hệ thống gợi ý được coi là bài toán dự đoán việc xếp hạng của các
sản phẩm (bài báo, bộ phim, cuối sách, …) chưa được người dùng biết đến. Hệ
thống gợi ý là ứng dụng rõ ràng nhất và hữu dụng nhất của Khoa học dữ liệu
(Data Science) trong thời đại công nghệ số hiện nay. Chúng ta có thể đã gặp ứng
dụng của hệ thống này khi qua các trang Amazon, Netflix, Vinabook, Tiki …
Ngoài nội dung mà bạn đang xem, các trang nói trên cịn hiển thị các nội dung
liên quan, giữ người dùng ở lại trên trang web lâu hơn, tăng được số lượng
khách hàng tiềm năng…

Hình 1: Hệ thống gợi ý

Nội dung liên quan nói trên chính là các gợi ý, là kết quả được tính tốn
dựa trên việc thu thập dữ liệu về người dùng như khi mua hàng, khi đưa ra các
đánh giá cá nhân hoặc dựa trên mối quan hệ giữa người dùng và món hàng, hay
10


giữa các món hàng với nhau. Việc thực hiện tính toán được xây dựng trên các
thuật toán Học máy (Machine Learning), đưa ra các dự đoán tốt nhất về sản
phẩm mà người dùng có thể thích, giúp gia tăng số lượng sản phẩm bán được.
1.1.2. Sự quan trọng của hệ thống gợi ý
Hệ gợi ý được xác định ở đây chính là kĩ thuật của trí tuệ nhân tạo, được
nghiên cứu để cung cấp những gợi ý tự động tới người dùng hoặc khách hàng. sự
bùng nổ của Internet như thời đại hiện nay, thương mại điện tử này càng phát
triển Với mạnh mẽ. Người mua và người bán không cần đến gặp gỡ trực tiếp, mà
họ giao dịch với nhau qua trang web. Việc tích hợp các kĩ thuật gợi ý
(Recommender Systems) trong các website bán hàng như 1 chun gia tư vấn,

dự đốn thơng minh sở thích của khách hàng và cung cấp những thông tin mà họ
thực sự quan tâm. Các kỹ thuật gợi ý đã và đang được nghiên cứu, ứng dụng
mạnh mẽ mang lại lợi ích cho cả người cung cấp và sử dụng dịch vụ. Nếu quảng
cáo sản phẩm tới đúng người dùng, khả năng các món hàng được mua sẽ nhiều
hơn. Nếu gợi ý một video mà đúng sở thích của người dùng hoặc gợi ý kết bạn
đúng đối tượng, họ sẽ ở lại bên nên nền tảng của bạn lâu hơn. Khi đó, lợi nhuận
từ phía quảng cáo sẽ tăng lên.
Hệ thống gợi ý mang lại nhiều mục đích to lớn cho doanh nghiệp, bao
gồm:
 Khả năng đưa ra các dịch vụ cá nhân hóa, hướng tới từng đối tượng
khách hàng cụ thể
 Tăng mức tín nhiệm và trung thành của khách hàng
 Tăng doanh thu, tăng tỉ lệ chuyển đổi của khách hàng
 Thêm hiểu biết về khách hàng
…
1.1.3. Ứng dụng
Có rất nhiều ứng dụng liên quan đến tích hợp hệ thống gợi ý vào thực tế
trong nhiều lĩnh vực khác nhau, như của Amazon, Ebay, Youtube, Netflix,
LastFM, …

11


Gợi ý sản phẩm
Trên các trang thương mại điện tử, hệ hống gợi ý đóng vai trị như một
chun gia thơng minh hỗ trợ khách hàng trong q trình tìm và chọn mua sản
phẩm. Amazon được coi là một trong những hệ thống gợi ý tiên phong, đặc biệt
trong thương mại và hệ thống gợi ý đã sử dụng rất thành công ở Amazon. Hệ
thống này sử dụng đánh giá của người dùng, hành vi của người dùng và lịch sử
hoạt động để làm dữ liệu dự đoán. Ratings ở Amazon có thang điểm từ 1 đến 5,

cịn lịch sử mua hàng và lịch sử hoạt động có thể dễ dàng được thu thập bằng khi
mà user thực hiện đăng nhập trên trang web của Amazon. Những gợi ý cho
người dùng được hiển thị trên trang chủ của Amazon, ngay khi người dùng truy
cập vào trang web. Trong nhiều trường hợp, những items được gợi ý cũng được
giải thích, ví dụ như trong mối quan hệ của sản phẩm được gợi ý với những sản
phẩm mà user đã mua trước đó. Ngồi ra, một số trang thương mại điện tử khác
như Shopee, Lazada, Tiki, … cũng đã ứng dựng rất tốt hệ thống gợi ý để đưa ra
những sản phẩm gợi ý cho khách hàng.
Gợi ý bài hát
Last.fm là một trang web (hệ thống) gợi ý bài hát nổi tiếng trên thế giới.
Dựa trên các xếp hạng mà người dùng đã cho trên các bài hát trong quá khứ, hệ
thống gợi ý có những bài hát kế tiếp mà người dùng dự dốn là sẽ thích chúng. Ở
Việt Nam cũng có rất nhiều trang nghe nhạc trực tuyến có tích hợp kĩ thuật gợi ý
như: zingmp3.vn, nhccuatui.com, nhacso.net, … tuy nhiên phần lớn các hệ thống
này gợi ý dạng không cá nhân hóa, nghã là gợi ý dựa vào các bài hát cùng ca sĩ,
cùng thể loại, …
Gợi ý phim
Hệ thống gợi ý cũng được ứng dụng vào để đưa ra các gợi ý các bộ phim,
các video cho khách hàng. Một trong các hệ thống gợi ý phim nổi tiếng trên thế
giới là Netflix.com. Hệ thống này cũng dựa trên các đánh giá, các tương tác
trong quá khứ để dự đốn sở thích của người dùng trên các bộ phim mà họ chưa
xem.
12


Gợi ý kết bạn
Facebook thường gợi ý cho chúng ta kết bạn với những người mà chúng ta
có thể quen, nhằm mục đích tăng số lượng kết nối trên mạng xã hội. Kiểu gợi ý
này với mục tiêu có chút khác biệt so với hệ thống gợi ý sản phẩm. Trong khi hệ
thống gợi ý sản phẩm trực tiếp tạo ra lợi nhuận cho người cung cấp dịch vụ bằng

cách tăng doanh số sản phẩm bán được, thì trong mạng xã hội, việc gợi ý kết bạn
nhằm tăng số lượng kết nối trên mạng xã hội và từ đó nâng cao trải nghiệm của
người dùng. Cùng với việc tăng được số lượng kết nối, lợi nhuận thu được từ
việc quảng cáo cũng sẽ tăng lên.
Gợi ý bài viết, tin tức
Các cổng tin tức phổ biến như Google News, Yahoo News, The New York
Times, ... cùng với nhiều cổng thông tin khác đã thu hút được sự chú ý ngày
càng tăng của độc giả trên Internet. Các hệ thống gợi ý tin tức trực tuyến đã
được các nhà nghiên cứu đề cập đến trong những năm qua, bằng cách sử dụng
các phương pháp khác nhau.
1.2. Mơ hình hóa chủ đề văn bản
1.2.1. Latent Semantic Allocation
LSA (Latent Semantic Allocation) [4] là viết tắt của phân tích ngữ nghĩa
tiềm ẩn, là một trong những kĩ thuật nền tảng được sử dụng trong mô hình hóa
chủ đề. Có thể hiểu, phân tích ngữ nghĩa là đưa rả cách “hiểu” văn bản qua mối
liên quan ngữ nghĩa của văn bản với tập khái niệm cho trước. Khái niệm là ý
chung và trừu tượng về một vật, do hoặt động của trí tuệ nhân tạo nên qua các
kinh nghiệm đúc kết thành. Các khái niệm này được biểu thị nghĩa thơng qua tập
từ khóa sử dụng trong nó. Ví dụ, khi nói đến “bệnh viện” thì ta nghĩ ngay đến
bác sĩ, y tá, bệnh nhân, thuốc, v.v…
Ý tưởng của phương pháp là từ một ma trận tài liệu và các thuật ngữ, và phân
tách nó thành hai ma trận riêng biệt:
 Một ma trận document – topic
 Một ma trận topic – term

13


Hình 2: Tổng quan mơ hình LSA


Các bước thực hiện:
Bước 1: Tạo ma trận A - Ma trận document - term
Bỏ qua trật tự xuất hiện của các từ, tập tài liệu D = { d 1, d 2, …, d n} chứa
tập từ W = { w 1, w 2, …, d m }. Giá trị phần tử a ij của ma trận chính là chỉ số
tf-idf của từ wj trong tài liệu d i.

Hình 3: Ma trận documents – term

Trong đó, các chỉ số trong ma trận được tính bằng điểm tf – idf

14


Hình 4: tf-idf cho giá trị trong ma trận trận documents – term

Bước 2: Áp dụng SVD - phân tích ma trận gốc thành 3 ma trận với số
chiểu nhỏ hơn.
A = UxSxVT
Với:
A = [aij]: Ma trận document - term, trong đó a ij là trọng số của từ j
trong tài liệu i.
U: Ma trận document - topic, là ma trận trực giao theo cột thỏa mãn
UTxU = I
V: Ma trận term - topic, ma trận trực giao theo cột thỏa mãn VTxV= I
S: Ma trận chéo chứa các trị riêng của A

Hình 5: Phân tích ma trận gồm m documents và n từ thành k topic

1.2.2. LDA
LDA (Latent Dirichlet Allocation) [8] là mơ hình thuộc lớp mơ hình sinh

xác suất của một bộ văn bản. Ý tưởng cơ bản của mơ hình là mọi văn bản được

15


biểu diễn bởi một hỗn hợp các chủ đề, mỗi chủ đề được đặc tả bởi phân phối của
các nhóm từ.

Hình 6: Mọi tài liệu bao gồm một phân phối các chủ đề 1

Hình 7: Mỗi chủ đề được đặc trưng bởi sự phân bố các từ 2

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: copus level, document level, word level) trong đó mỗi phần của
mơ hình được coi như là một mơ hình trộn hữu hạn trên cơ sở tập các xác suất
chủ đề.

1
2

/> />
16


Hình 8: Tài liệu với chủ đề ẩn 3

Ước lượng tham số cho mơ hình LDA: Cho một corpus của M tài liệu biểu
diễn bởi D = {d1, d2, …, dm}, trong đó, mỗi tài liệu m trong corpus bao gồm
nxm, từ wi rút từ một tập từ vựng của các mục từ {t1, t2, …, tv}, V là số lượng các

mục từ t trong tập từ vựng. LDA cung cấp một mơ hình sinh đầy đủ chỉ ra kết
quả tốt hơn các phương pháp trước. Quá trình sinh văn bản như hình vẽ sau:

Hình 9: Ước lượng tham số cho tập dữ liệu

Trong đó:
- Các khối vng biểu diễn q trình lặp. Như vậy ta có thể thấy có 2 quá
trình lặp lại liên tục trong LDA là quá trình lựa chọn topic và quá trình
lựa chọn từ. Các tham số được khởi tạo tiến trình ban đầu là α và β. Từ
đó tính tốn được phân phối hỗn hợp của topic θ⃗ m và phân phối của từ
theo topic wmn.
3

/>
17


- Tham số đầu vào gồm α và β:
 α: là tham số của phân phối tiên nghiệm Dirichlet của topic đối với
mỗi văn bản.
 β: là tham số của phân phối tiên nghiệm Dirichlet của topic đối với
mỗi từ.
 θ⃗ m: phân phối của topic trong document thứ m
 Zm, n: là topic của từ thứ m đối với văn bản thứ n. Là một số nguyên
có giá trị trong khoảng [1, k]
 Wm, n: là vị trí trong từ điển của từ thứ n thuộc văn bản m. Giá trị là
một số nguyên trong khoảng [1, V].
φ k : phân phối của các từ được sinh ra từ topic zm, n
⃗


 m: số lượng các tài liệu
 Nm: số lượng các từ trong tài liệu thứ m
 K: số lượng các topic ẩn
d m bằng cách:
- LDA sinh ra một tập các từ wm, n cho các văn bản ⃗

 Với mỗi văn bản m, sinh ra phân phối topic θ⃗ m cho văn bản.
 Với mỗi từ zm, n được lấy mẫu dựa vào phân phối topic trên.
φ k , wm, n được sinh ra.
 Với mỗi topic index zm, n dựa vào phân phối ⃗
φ k : được lấy mẫu một lần cho toàn bộ corpus.
⃗

- Trong mơ hình LDA biến duy nhất nà chúng ta quan sát được là các từ
wmn, các biến còn lại đều là những nhân tố ẩn được sinhh ra từ các phân
phối xác định. Trong đó quan trọng nhất là một phân phối tiên nghiệm
Dirichlet được sử dụng để mơ hình hóa các cặp topic - word. Phân phối
của một topic qua các từ thường có skew lớn (phân phối dạng nhọn, đi
mỏng) để xác xuất tập trung vào một nhóm nhỏ các từ.
φ k tương tự như những ma trận được tạo ra
- Ta cũng có thể coi rằng θ⃗ m và ⃗

từ phép phân tích suy biến từ ma trận document – word ở thuật toán
LSA.

1.3. Cơ sở lý thuyết
18


1.3.1. Cosine similarity

Cosine similarity [1] là một cách đo độ tương tự giữa 2 vectơ khác không
của một không gian tích vơ hướng. Độ đo tương tự này được định nghĩa bằng
giá trị cosine của góc giữa hai vectơ, và cũng là tích vơ hướng của cùng các
vectơ đơn vị.
Cosine của hai vectơ khác không được suy ra bằng cách sử dụng cơng
thức tích vơ hướng Euclid:
A.B = ¿∨| A|∨⋅∨|B|∨⋅cos(θ)
Cho hai vectơ chứa các thuộc tính, A và B, độ tương tự cosine, cos(θ),
được thể hiện bằng tích vô hướng và độ lớn là
n

A⋅B
similarity = cos(θ) =
=
¿|A|∨⋅∨|B|∨¿ ¿

∑ Ai ⋅B i
i=1

√∑ √ ∑
n

i =1

2
i

A ⋅

n


i=1

2

Bi .

với Ai và Bi là thành phần của vectơ A và B tương ứng.
Độ tương tự có giá trị −1 có nghĩa là trái nghĩa hồn toàn, với giá trị 1
nghĩa là giống nhau hoàn toàn, với 0 có nghĩa là trực giao hay tương quan
(decorrelation), trong khi các giá trị ở giữa biểu thị sự giống nhau hoặc không
giống nhau ở mức trung gian.

1.3.2. SVD
Ý tưởng đằng sau SVD [7] vô cùng đơn giản, Một ma trận Am , n bất kỳ
đều có thể phân tích thành dạng:
T

Am , n=U m ,m Σ m ,n (V ¿¿ n , n) ¿

trong đó U , V là các ma trận trực giao, Σ là ma trận đường chéo với các
phần tử trên đường chéo σ 1 ≥ σ 2 ≥ σ 3 ≥ … ≥ σ r ≥ 0 với r là rank của ma trận A . Số
lượng các phần tử khác 0 trong Σ chính là rank của ma trận A :
T

Um, m

Am , n

Σm , n


Ta có:
T T

A A =U ⋅ Σ⋅ V ⋅ ( U ⋅ Σ ⋅V )
T

T

19

V n, n


¿ U ⋅ Σ⋅V T V ⋅ Σ T ⋅ U T
T

¿U ⋅ Σ Σ ⋅U

T

¿ U ⋅ ΣΣ ⋅U−1

Dấu bằng thứ 3 xảy ra vì V T V =I do V là 1 ma trận trực giao.
Các tham số σ 21 , σ 22 , … chính là các trị riêng của A AT . Ma trận A AT luôn là ma
trận xác định dương nên các trị riêng của nó là khơng âm. Các σ i là căn bậc hai
của các trị riêng của A AT còn được gọi là singular value của A . Theo đó phương
pháp chung được gọi là Singular Value Decomposition
Mỗi cột của U chính là 1 vector riêng của A AT . Ta gọi mỗi cột này là left singular vectơ của A. Tương tự như thế, AT A=V Σ T ΣV T là các cột của V còn
được gọi là các right - singular vectơ của A .

Các bước thực hiện:
Bước 1: Tìm trị riêng của ma trận ATA và sắp xếp chúng theo thứ tự giảm
dần, kí hiệu là i
Bước 2: Tính số các trị riêng khác 0 của ma trận ATA
Bước 3: Tìm các vectơ riêng trực giao của ma trận A TA tương ứng với các
trị riêng i , và sắp xếp chúng theo trật tự tương ứng với các trị riêng dưới
dạng các vectơ cột của ma trận VRNxN
Bước 4: Ma trận chéo RMxN chứa p = min{m, n} trị riêng trên đường
chéo chính, khi đó i  √ λi
Bước 5: Tính các vectơ cột đầu tiên của ma trận URMxM theo công thức
sau:
ui  -1 Avi

(i = 1, 2, …, r)

Bước 6: Tìm m - r vectơ còn lại của ma trận U bằng cách sử dụng phương
pháp chéo hóa trực giao

1.3.3. Tf – idf
Mỗi từ trong khơng gian vectơ sẽ có một trọng số, có nhiều phương pháp
xếp hạng khác nhau, nhưng Tf - Idf (term frequency - inverse document
frequency) là một phương pháp phổ biến để đánh giá và xếp hạng một từ trong
một tài liệu. TF - IDF [3] là một kĩ thuật sử dụng trong khai phá dữ liệu văn
20


bản, một phương thức thống kê được biết đến rộng rãi để xác định độ quan trọng
của một từ trong đoạn văn bản trong một tập nhiều đoạn văn bản khác nhau. Giá
trị càng cao thể hiện độ quan trọng cao và nó phụ thuộc vào số lần từ xuất hiện
trong văn bản. Tf - Idf chuyển đổi dạng biểu diễn văn bản thành dạng không

gian vectơ (VSM), hoặc thành những vectơ thưa thớt.
Công thức tổng quát của phương pháp Tf-Idf:
TF−IDF i , j=tf ( t ) . idf (t)

Trong đó:
- Tf (Term Frequency): Là tần suất xuất hiện của một từ trong một đoạn
văn bản. Với những đoạn văn bản có độ dài khác nhau, sẽ có những từ
xuất hiện nhiều ở đoạn văn bản dài thay vì đoạn văn bản ngắn. Vì thế,
tần suất này thường được chia cho độ dài của đoạn văn bản như một
phương thức chuẩn hóa (normalization). Tf được tính bởi cơng thức:

Tf(t) =

f (t , d)
T

Với:
 t là một từ trong đoạn văn bản
 f (t, d) là tần suất xuất hiện của t trong đoạn văn bản d
 T là tổng số từ trong đoạn văn bản đó
- Idf (Inverse Document Frequency): Tính tốn độ quan trọng của một
tà. Khi tính tốn tần số xuất hiện TF, mỗi từ đều quan trọng như nhau,
nhưng còn một số từ thường được sử dụng nhiều nhưng khơng quan
trọng như: “và”, “nhưng”, “vì thế”, “trong”, trên”, “đó”, … để thể hiện ý
nghĩa cho đoạn văn. Vì thế, chúng ta cần một phương thức bù trừ những
từ xuất hiện nhiều lần và tăng độ quan trọng của những từ ít xuất hiện
nhưng có ý nghĩa đặc biệt cho một số đoạn văn bản hơn bằng cách tính
Idf:

Idf(t) = log ¿ ¿)

Với:
 N: tổng số đoạn văn bản
21


 Tập | tϵ D :tϵd | là số văn bản chứa từ t, với điều kiện t xuất
hiện trong văn bản d

22


CHƯƠNG 2: CÁC PHƯƠNG PHÁP GỢI Ý
2.1. Hệ thống gợi ý dựa trên nội dung
Hệ thống gợi ý dựa trên nội dung (Content - Based Filtering) [9] [10] là
phương pháp đánh giá đặc tính của items được “recommend” dựa trên mối quan
hệ giữa nội dung các sản phẩm và thông tin người dùng. Như tên gọi của phương
pháp này, dĩ nhiên nó phụ thuộc vào thuộc tính của các sản phẩm, đặc biệt rất
mạnh đối với các sản phẩm giàu nội dung như các sản phẩm thuộc lĩnh vực
truyền thông, quảng cáo, y tế... Đặc biệt có thể gợi ý các item mới, thích hợp khi
danh sách sản phẩm được cập nhật liên tục và giải quyết tốt vấn đề “Item cold
start” sẽ được nói kĩ hơn trong phần sau của báo cáo.
Ví dụ: Cách tiếp cận này có thể sử dụng thông tin duyệt lịch sử, chẳng hạn
như blog mà người dùng đã đọc và đặc điểm của các blog đó. Nếu người dùng
thường đọc các bài báo về Linux hoặc có khả năng để lại bình luận trên các blog
về kỹ thuật phần mềm, Content - Based Filtering có thể sử dụng lịch sử này để
xác định và giới thiệu nội dung tương tự (bài viết trên Linux hoặc các blog khác
về kỹ thuật phần mềm). Nội dung này có thể được định nghĩa bằng tay hoặc tự
động chiết xuất dựa trên các phương pháp tương tự khác.

2.1.1. Mơ hình tổng quan

Như đã đề cập, thường có hai thực thể chính trong các hệ thống gợi ý là
users và items. Mỗi user sẽ có mức độ quan tâm tới từng item là khác nhau.
Mức độ quan tâm này nếu đã biết trước, được gán cho một giá trị ứng với mỗi
cặp user-item. Giả sử rằng mức độ quan tâm được đo bằng giá trị user đánh giá
cho item, ta tạm gọi giá trị này là các “rating”. Các giá trị rating đó thường gom
vào 1 tập (set), nhóm xác định, ví dụ: các user có thể đánh giá từ 1-5 sao cho 1
sản phẩm, dựa trên trải nghiệm người dùng, thơng tin mà sản phẩm đó cung cấp.
Tập hợp tất cả các ratings, bao gồm cả những giá trị chưa biết cần được dự đoán,
tạo nên một ma trận gọi là Utility matrix. Thông thường, các ma trận đó là các
ma trận sparse (thưa thớt), khi phần lớn khơng tồn tại các cặp user-item dựa
trên rating, hay ngồi trường hợp user cho sao với 1 sản phẩm từ 1-5, sẽ có rất

23


nhiều các sản phẩm khác khơng hề có các đánh giá từ phía người dùng hay
“unknown entity”:
u0

u1

u2

u3

u4

u5

u6


i0

5

5

2

0

1

?

?

i1

3

?

?

0

?

?


?

i2

?

4

1

?

?

1

2

i3

2

2

3

4

4


?

4

i4

2

0

4

?

?

?

5

Bảng 1: Unility Matrix biểu diễn các giá trị "rating" giữa người dùng và sản phẩm

Chú ý rằng, kích thước của ma trận thường rất lớn, ví dụ với 100.000 user
và 100.000 sản phẩm sẽ sản sinh ra 1 ma trận unility có kích thước (100.000 x
100.000), 1 số lượng phần tử “rating” tương đối lớn. Phần lớn các ô trong ma
trận đều bỏ trống, đồng nghĩa với việc người dùng chưa đánh giá sản phẩm đó.
Trong thực tế, ma trận user-item cịn thưa thớt hơn rất nhiều, khi mà số lượt
rating chỉ là 1 phần rất nhỏ trong tổng số sản phẩm thực tế.
Unitity matrix chính là ma trận trọng số thể hiện mối liên hệ giữa đối

tượng A và B. Với từng bài toán cụ thể, Unitily matrix là khác nhau và thành
phần tạo nên ma trận cũng khác nhau. Thông thường, Unitily matrix được tạo
thành từ 2 yếu tố là users và items. Trong trường hợp khác, Unitily matrix có
thể bao gồm 2 thành phần, ví dụ tập các văn bản và tập các từ. Trọng số của ma
trận thể hiện mức độ quan trọng của từng từ trong từng đoạn văn bản. Qua đó,
rất phù hợp với những bài tốn xử lí ngơn ngữ tự nhiên, ví dụ tìm kiếm sự tương
đồng giữa các đoạn văn bản hoặc rút ngắn văn bản nhưng vẫn giữ được nội dung
chính (Text Summarization), ...
Xây dựng Utility Matrix:
Xây dựng Utility Matrix là bước quan trọng nhất để gợi ý sản phẩm tới
người dùng. Tuy nhiên, dữ liệu đáp ứng đủ để xây dựng Utility Matrix thường
khá khó khăn.
Có 2 hướng tiếp cận chính để xác định các giá trị rating cho mỗi cặp user-item:
24


- Cách thứ 1: Có thể nhờ người dùng “rating” sản phẩm. Tuy nhiên, cách
này không thực sự hiểu quả với đa phần các hệ thống Recommend
System. Tuy nhiên, cách tiếp cận của các trang bán hàng trực tuyến rất
hạn chế, vì thường người dùng rất ít khi rate sản phẩm. Và nếu có,
thường đến từ các đánh giá của những người dùng sẵn sàng rate hoặc
đánh giá qua loa, đại khái.
Ví dụ: Một số trang thương mại điện tử khuyến khích người dùng đánh
giá sản phẩm sau khi họ mua hàng. Amazon luôn nhờ người dùng đánh
giá các sản phẩm của họ bằng cách gửi các email nhắc nhở nhiều lần.
Rất nhiều hệ thống khác cũng làm việc tương tự.
- Cách thứ 2: Là qua hành vi của người dùng. Một số các trang cung cấp
hay truyền tải nội dung như youtube, facebook, twitter, … thì có vẻ dễ
dàng hơn khi đưa ra các rating (like hoặc dislike) cho sản phẩm (các bài
post, video, tweet, ...).

Ví dụ: Nếu một người dùng mua một sản phẩm trên Amazon, xem một
clip trên Youtube (có thể là nhiều lần), hay đọc một bài báo, thì có thể
khẳng định rằng ngừời dùng đó thích sản phẩm đó. Facebook cũng dựa
trên việc chúng ta thích những nội dung nào để hiển thị newsfeed những
nội dung liên quan.
Thường thì với cách này, ta chỉ xây dựng được một ma trận với các
thành phần là “1” và “0”, với “1” thể hiện người dùng thích sản phẩm,
“0” thể hiện chưa có thơng tin. Trong trường hợp này, “0” khơng có
nghĩa là thấp hơn “1”, nó chỉ có nghĩa là người dùng chưa cung cấp
thơng tin. Chúng ta cũng có thể xây dựng ma trận với các giá trị cao hơn
“1” thông qua thời gian hoặc số lượt mà người dùng xem một sản phẩm
nào đó. Đơi khi, nút dislike cũng mang lại những lợi ích nhất định cho hệ
thống, lúc này có thể gán giá trị tương ứng bằng “-1” chẳng hạn.
Item Profiles
Trong các hệ thống Content-Based, tức dựa trên nội dung của mỗi item,
chúng ta cần xây dựng một bộ hồ sơ (profile) cho mỗi item. Profile này được

25


×