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đề sử dụng mô hình ẩn là Probabilistic Latent Sematic AnalysispLSA và LatentDirichl
Trang 1TRƯỜ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
huyenthubka@gmail.com
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 _
HÀ NỘI – 07/2022
Trang 2TRƯỜ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
Chuyên 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
Trang 3NHẬ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)
Trang 4Mụ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 toá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
Trang 53.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
Trang 6Lờ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ămthanh xuân tuổi trẻ, vậy mà trong khoảng thời gian ngắn ngủi đấy, vừa phải họctậ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ầmcảm xúc Nhưng cũng trong những năm tháng thanh xuân ấy tôi có Bách Khoa ởbên, có Toán Tin là nhà Nếu như nói cuộc đời là một chuyến tàu thì Bách Khoachí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ắpkhép lại chặng đường bốn năm mang tên Bách Khoa Đi qua những năm thángBá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 Toá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ửilờ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ể hoà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
Trang 7đề 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ếtngà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
đề sử dụng mô hình ẩn là Probabilistic Latent Sematic Analysis(pLSA) và LatentDirichlet Allocation (LDA)
Trong đồ án này, em xin lựa chon đề tài:” Xây dựng hệ thống gợi bằngphươ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ượngngười đọc
7
Trang 8Danh 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
Trang 9Danh mục bản
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ự đoá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 toá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
Trang 10CHƯƠ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ốnglọc thông tin, nó được sử dụng để dự đoá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ênquá 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áctrườ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ácsả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 ứngdụ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 dungliên quan, giữ người dùng ở lại trên trang web lâu hơn, tăng được số lượngkhá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 toándự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
Trang 11giữ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ácthuật toán Học máy (Machine Learning), đưa ra các dự đoán tốt nhất về sảnphẩ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, đượcnghiê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áttriể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 chuyên gia tư vấn,
dự đoá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ụngmạ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ảngcá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ềuhơ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, baogồm:
Khả năng đưa ra các dịch vụ cá nhân hóa, hướng tới từng đối tượngkhá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
Trang 12Gợ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ộtchuyên gia thông minh hỗ trợ khách hàng trong quá trình tìm và chọn mua sảnphẩm Amazon được coi là một trong những hệ thống gợi ý tiên phong, đặc biệttrong 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 ý chongười dùng được hiển thị trên trang chủ của Amazon, ngay khi người dùng truycập vào trang web Trong nhiều trường hợp, những items được gợi ý cũng đượcgiả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ảnphẩm mà user đã mua trước đó Ngoài ra, một số trang thương mại điện tử khácnhư Shopee, Lazada, Tiki, … cũng đã ứng dựng rất tốt hệ thống gợi ý để đưa ranhữ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ự doá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ốngnà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áctrong quá khứ để dự đoán sở thích của người dùng trên các bộ phim mà họ chưaxem
Gợi ý kết bạn
12
Trang 13Facebook 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ằngcá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ạnnhằ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ủangườ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 YorkTimes, cùng với nhiều cổng thông tin khác đã thu hút được sự chú ý ngàycà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ụngcá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ĩatiềm ẩn, là một trong những kĩ thuật nền tảng được sử dụng trong mô hình hóachủ đề Có thể hiểu, phân tích ngữ nghĩa là đưa rả cách “hiểu” văn bản qua mốiliê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áckinh 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 đếnbá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ântá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
Trang 14Hì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 = {d1, d2, …, d n} chứatập từ W = { w1, w2, …, 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
Trang 15Hì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ố
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 sinhxá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
Trang 16biể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ủacá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 hierarchicalBayes 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ấtchủ đề
1 https://www.youtube.com/watch?v=DWJYZq_fQ2A
2 https://www.youtube.com/watch?v=DWJYZq_fQ2A
16
Trang 17Hì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ểudiễn bởi D = {d1, d2, …, dm}, trong đó, mỗi tài liệu m trong corpus bao gồmnxm, 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ácmục từ t trong tập từ vựng LDA cung cấp một mô hình sinh đầy đủ chỉ ra kếtquả 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 vuông biểu diễn quá 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ìnhlựa chọn từ Các tham số được khởi tạo tiến trình ban đầu là α và β Từ
đó tính toá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 https://medium0.com/m/the-complete-guide-for-topics-extraction-in-python-a6aaa6cedbbc
17
Trang 18- 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ớimỗi văn bản
β: là tham số của phân phối tiên nghiệm Dirichlet của topic đối vớimỗ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
- LDA sinh ra một tập các từ wm, n cho các văn bản ⃗d m bằng cách:
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
Với mỗi topic index zm, n dựa vào phân phối ⃗φ k ,wm, n được sinh ra
⃗φ 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ânphối xác định Trong đó quan trọng nhất là một phân phối tiên nghiệmDirichlet được sử dụng để mô hình hóa các cặp topic - word Phân phốicủa một topic qua các từ thường có skew lớn (phân phối dạng nhọn, đuôimỏng) để xác xuất tập trung vào một nhóm nhỏ các từ
- Ta cũng có thể coi rằng θ⃗m và ⃗φ k tương tự như những ma trận được tạo ra
từ phép phân tích suy biến từ ma trận document – word ở thuật toánLSA
1.3 Cơ sở lý thuyết
1.3.1 Cosine similarity
18
Trang 19Cosine similarity [1] là một cách đo độ tương tự giữa 2 vectơ khác khôngcủa một không gian tích vô hướng Độ đo tương tự này được định nghĩa bằnggiá trị cosine của góc giữa hai vectơ, và cũng là tích vô hướng của cùng cácvectơ đơn vị.
Cosine của hai vectơ khác không được suy ra bằng cách sử dụng côngthứ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à
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 hoàn toàn, với giá trị 1nghĩ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ônggiống nhau ở mức trung gian
Trang 20¿U ⋅ Σ Σ T ⋅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ố σ12, σ22, … chính là các trị riêng của A A T Ma trận A A T luôn là matrậ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 haicủa các trị riêng của A A T còn được gọi là singular value của A Theo đó phươngphá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 A T Ta gọi mỗi cột này là left singular vectơ của A Tương tự như thế, A T 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ảmdầ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 ATA tương ứng với cáctrị 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ướidạng các vectơ cột của ma trận VRNxN
Bước 4: Ma trận chéo RMxN chứa p = min{m, n} trị riêng trên đườngchéo chính, khi đó i √λ i
Bước 5: Tính các vectơ cột đầu tiên của ma trận URMxM theo công thứcsau:
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ápxếp hạng khác nhau, nhưng Tf - Idf (term frequency - inverse documentfrequency) là một phương pháp phổ biến để đánh giá và xếp hạng một từ trongmột tài liệu TF - IDF [3] là một kĩ thuật sử dụng trong khai phá dữ liệu vănbản, một phương thức thống kê được biết đến rộng rãi để xác định độ quan trọngcủ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á
20
Trang 21trị càng cao thể hiện độ quan trọng cao và nó phụ thuộc vào số lần từ xuất hiệntrong văn bản Tf - Idf chuyển đổi dạng biểu diễn văn bản thành dạng khônggian 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ộtphươ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 toán độ quan trọng của một
tà Khi tính toá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 quantrọ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ệnnhưng có ý nghĩa đặc biệt cho một số đoạn văn bản hơn bằng cách tínhIdf:
Trang 22CHƯƠ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ươngphá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ấtmạ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ựctruyề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 khidanh 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 coldstart” 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ạnnhư blog mà người dùng đã đọc và đặc điểm của các blog đó Nếu người dùngthườ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 1sả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 ngoài trường hợp user cho sao với 1 sản phẩm từ 1-5, sẽ có rấtnhiề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”:
22
Trang 23Bả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 x100.000), 1 số lượng phần tử “rating” tương đối lớn Phần lớn các ô trong matrậ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 matrậ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 toá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 dungchí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ớingười dùng Tuy nhiên, dữ liệu đáp ứng đủ để xây dựng Utility Matrix thườngkhá 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:
- 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
23
Trang 24System 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 đánhgiá sản phẩm sau khi họ mua hàng Amazon luôn nhờ người dùng đánhgiá 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àipost, video, tweet, )
Ví dụ: Nếu một người dùng mua một sản phẩm trên Amazon, xem mộtclip 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ựatrên việc chúng ta thích những nội dung nào để hiển thị newsfeed nhữngnộ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ácthà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ấpthô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ẩmnà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 biểu diễn dưới dạng toán học là một feature vector (vectơ hóa) Trong những trường hợp đơn giản, feature vector được trực tiếp trích xuất từ item
24
Trang 25Một số phương pháp thường được sử dụng để xây dựng feature vector là:
Thể loại: là yếu tố rất quan trọng, nhiều người dùng thích đọc các cuốn
sách về văn học, 1 số các lại thích đọc sách về trinh thám nhiều hơn,
Bảng 2: Feature vector
Bảng 3: Thông tin của users quan tâm tương ứng
25
Trang 26Theo như bảng bên trên, chúng ta sẽ đơn giản hóa bằng việc xây dựng 1
feature vector 2 chiều cho mỗi bài hát: mức độ thiếu nhi và mức độ kỹ năng.
Cơ sở toán học
Giả sử rằng số user là N, số items là M Ta quy định ma trận R là ma trậnbiểu diễn user đã rate item đó hay chưa (0 nếu chưa rate, 1 nếu đã rate)
Ma trận Y là ma trận utility matrix, phần tử tại ô (m, n) biểu diễn mức độ
quan tâm của user n với item m ( giá trị rating lâý khoảng từ 1 đến 5) và đượcbiểu thị bằng dấu “?” nếu chưa được rating Bài toán đặt ra rằng: với lượng data
đã cung cấp ở trên, cùng với các giá trị đã cho trong các ma trận R, Y, từ đó cốgắng xác định giá trị y ij bị trống (user chưa rate) và xây dựng mô hình kèm theo
Trong ví dụ trên, đơn giản hóa bài toán bằng việc xây dựng 1 feature vectơ 2 chiều cho mỗi cuốn sách: mức độ Thiếu Nhi và mức độ Kỹ năng của mỗi cuốn sách Đặt các feature vector cho mỗi cuốn sách là x i với i = {1, ,5}
Ở đây, đơn giản sẽ sử dụng mô hình tuyến tính để áp dụng lên bài toánregression này Giả sử mỗi user j nào đó sẽ tồn tại 1 vectơ gọi là vectơ trọng số
w i, từ đó có thể dự đoán việc user j sẽ rating cho item i với số sao là bao nhiêubằng 1 công thức đơn giản:
y ij=(w j)T x i = stars
Ví dụ:
Bảng 4: Mức độ quan tâm của user
26
Trang 27Books x1
(Thiếu nhi)
x2
(Kỹ năng)
Bảng 5: Feature Vector (Thiếu nhi, Kỹ năng)
Giả sử ta có 1 vectơ trọng số w1 của người dùng thứ nhất là Liên:
Y ij=x i∗w j+b j Hay có thể viết lại dưới dạng:
Y ij=W ∗X
với W=(w0=b n , w1, w2, w n)
và X=(x0=1, x1, x2 , x m)(Chú ý rằng ở đây để đơn giản, ta quy định lại X m là 1 vector hàng, w n là 1 vectơcột)
2.1.2 Cách thức hoạt động
Các bước chính trong 1 mô hình Content-based Recommend System:
- Biểu diễn mỗi sản phẩm dưới dạng một vectơ thuộc tính (hay vectơ hóa
thông tin sản phẩm)
- Recommend các sản phẩm tương tự nhau, dựa trên thông tin của các sản
phẩm, hoặc các hành vi của người dùng trong quá khứ, thông qua các
27
Trang 28phương pháp đánh giá độ tương tự của 2 vector, ví dụ: cosine similarity hoặc Pearson similarity, …
- Hoặc có thể xây dựng profile người dùng theo các thuộc tính sản phẩm
và gợi ý sản phẩm có thuộc tính phù hợp với profile người dùng
2.1.3 Ưu điểm
Content-based Recommendation Systems là phương pháp đơn giản
nhất trong các hệ thống gợi ý Đặc điểm của phương pháp này là việc xây dựng
mô hình cho mỗi user không phụ thuộc vào các users khác Việc làm này có lợi
thế là tiết kiệm bộ nhớ và thời gian tính toán Đồng thời, hệ thống có khả năngtận dụng các thông tin đặc trưng của mỗi item như được mô tả trong bản mô tả(description) của mỗi item Bản mô tả này có thể được xây dựng bởi nhà cungcấp hoặc được thu thập bằng cách yêu cầu users gắn tags cho items Việc xây
dựng feature vector cho mỗi item thường bao gồm các kỹ thuật Xử lý ngôn ngữ tự nhiên (Natural Language Processing - NLP).
Việc xây dựng mô hình cho mỗi users có thể được coi như bài toán
Regression hoặc Classsification với training data là cặp dữ liệu (item profile,
rating) mà user đó đã rated Item profile không phụ thuộc vào user, nó thườngphụ thuộc vào các đặc điểm mô tả của item hoặc cũng có thể được xác định bằngcách yêu cầu người dùng gắn tag
2.1.4 Nhược điểm
Thứ nhất: Khi xây dựng mô hình cho một user, các hệ thống
Content-Based không tận dụng được thông tin từ các users khác Những thông tin này
thường rất hữu ích vì hành vi mua hàng của các users thường được nhóm thànhmột vài nhóm đơn giản; nếu biết hành vi mua hàng của một vài users trongnhóm, hệ thống nên suy luận ra hành vi của những users còn lại
Ví dụ đơn giản với trường hợp 2 user có những đặc điểm giống nhau khilựa chọn các sản phẩm; Use r1 lựa chọn các sản phẩm A, B, C, D; User2lựa chọncác sản phẩm A, B, C, E; vậy liệu hệ thống có đủ khả năng nhận biết được mốitương đồng giữa 2 user, từ đó dẫn tới việc recommend sản phẩm D cho User2
hoặc ngược lại
28