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

Nghiên cứu và ứng dụng kỹ thuật SVD vào hệ thống gợi ý

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 (670.58 KB, 26 trang )

ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
-----  -----

PHẠM HOÀNG TRƯƠNG

NGHIÊN CỨU VÀ ỨNG DỤNG
KỸ THUẬT SVD VÀO HỆ THỐNG GỢI Ý

Chuyên ngành: KHOA HỌC MÁY TÍNH
Mã số: 60.48.01.01

TÓM TẮT LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

Đà Nẵng - Năm 2018


Công trình được hoàn thành tại
TRƯỜNG ĐẠI HỌC BÁCH KHOA

Người hướng dẫn khoa học: TS.NGUYỄN VĂN HIỆU

Phản biện 1: PGS.TS. VÕ TRUNG HÙNG
Phản biện 2: TS. PHẠM VĂN VIỆT

Luận văn sẽ được bảo vệ trước Hội đồng chấm Luận văn tốt
nghiệp thạc sĩ KHOA HỌC MÁY TÍNH họp tại Trường Đại học Bách
khoa vào ngày 16 tháng 06 năm 2018

Có thể tìm hiểu luận văn tại:
 Trung tâm Học liệu, Đại học Đà Nẵng tại Trường Đại học


Bách khoa
 Thư viện Khoa Công nghệ thông tin, Trường Đại học Bách
khoa - ĐHĐN


1
MỞ ĐẦU
1. Lý do chọn đề tài
Du lịch từ lâu đã được ghi nhận như một sở thích, một hoạt
động nghỉ ngơi tích cực của con người. Ngày nay, du lịch đã trở
thành một hiện tượng kinh tế - xã hội phổ biến trên toàn thế giới, nó
được xem như là một nhu cầu không thể thiếu của con người và được
coi là một tiêu chuẩn để đánh giá chất lượng cuộc sống. Nhận thức
được xu thế trên, ngành du lịch Quảng Ngãi với nhiều cố gắng và
thành quả góp phần đáng kể vào sự nghiệp phát triển du lịch chung
của quốc gia. Đến với Quảng Ngãi, chúng ta sẽ cảm nhận cái nắng
gió của vùng đất miền Trung với những bờ biển dài tuyệt đẹp và một
chiều dài lịch sử với các di tích lịch sử khá nổi tiếng. Hình ảnh ấy đã
thu hút không ít du khách trong và ngoài nước phải một lần đặt chân
đến mảnh đất này. Vì vậy, để tìm cho mình một điểm du lịch phù hợp
du khách cần lời khuyên trong trường hợp này.
May thay, hệ thống gợi ý (Recommender system - RS) có thể
chỉ ra các thông tin phù hợp trong số thông tin khổng lồ chưa có trật
tự, nó sử dụng các kỹ thuật lọc để chọn ra những loại thông tin đặc
trưng nhằm hiển thị các phần tử phù hợp với sở thích người dùng, hệ
thống có tích hợp tính năng gợi ý sẽ thu hút được người dùng cả về
sự hài lòng và tin cậy. Một số hệ thống gợi ý như Amazon, Netflix,
IDMb, Youtube, Last.fm, MovieLens,… đã tăng được số lượng
khách truy cập nhờ vào tính năng hỗ trợ quyết định này của hệ thống.
Các kĩ thuật lọc trong RS thường được phân thành các nhóm:

lọc dựa trên nội dung (content - based filtering, dựa trên user profile),
lọc cộng tác (collaborative filtering – CF, dựa trên dữ liệu đánh giá
trong quá khứ của user), lai ghép (hybrid, kết hợp của hai phương
pháp trên) và lọc không cá nhân hóa (non-personalization). Trong đó,
nổi bật và được sử dụng nhiều nhất là kỹ thuật lọc cộng tác bởi sự


2
đơn giản trong việc thu thập thông tin (user, item và feedback) của
nó. Ưu điểm của lọc cộng tác là nó có thể hoạt động tốt trong trường
hợp thiếu hụt thông tin của đối tượng, có thể đưa ra gợi ý mà không
cần thông tin hồ sơ người dùng (user profile). Chất lượng của hệ
thống gợi ý cộng tác phụ thuộc vào độ đo tương tự và việc lựa chọn
tập láng giềng. Tuy nhiên hạn chế chính của CF là vấn đề dữ liệu
thưa, khả năng mở rộng và thiếu dữ liệu đánh giá, vì vậy hệ thống
chưa đưa ra được gợi ý tốt nhất.
Để hệ thống gợi ý có thể đưa ra những dự đoán chính xác hơn
người ta sử dụng phương pháp phân tích giá trị đơn SVD (Singular
Value Decomposition) vào hệ thống gợi ý. Giải thuật SVD được
Golub và Kahan giới thiệu năm 1965, đó là một công cụ phân rã ma
trận hiệu quả được sử dụng để giảm hạng (hay số chiều) của ma trận.
Kỹ thuật này được áp dụng vào nhiều bài toán xử lý văn bản khác
nhau như tóm tắt văn bản, phát hiện sao chép, lập chỉ mục và truy
vấn. SVD cho phép phân tích một ma trận phức tạp thành ba ma trận
thành phần. Mục đích nhằm đưa việc giải quyết bài toán liên quan
đến ma trận lớn, phức tạp về những bài toán nhỏ hơn. Vì vậy, ta áp
dụng kỹ thuật SVD vào hệ thống gợi ý để hệ thống gợi ý có thể dự
đoán chính xác, phục vụ tốt một số bài toán gợi ý thực tế, giúp người
dùng đưa ra quyết định chính xác hơn.
Với những lý do đó, tôi đã quyết định lựa chọn luận văn tốt

nghiệp với đề tài “Nghiên cứu và ứng dụng kỹ thuật SVD vào hệ
thống gợi ý” để hệ thống gợi ý có thể hỗ trợ người dùng dễ dàng tìm
thấy những địa điểm du lịch phù hợp với họ, giúp người dùng đưa ra
quyết định chính xác hơn.
2. Mục tiêu và nhiệm vụ của đề tài
2.1. Mục tiêu
- Xây dựng mô hình gợi ý mới sử dụng phương pháp SVD.
- Ứng dụng mô hình đề xuất để xây dựng hệ thống gợi ý.


3
2.2. Nhiệm vụ
Để hệ thống đạt được mục tiêu đề ra, đề tài tiến hành giải
quyết các nhiệm vụ sau:
- Tìm hiểu về hệ thống du lịch Quảng Ngãi.
- Nghiên cứu, tìm hiểu kỹ thuật SVD.
- Đề xuất mô hình gợi ý sử dụng kỹ thuật SVD.
- Phân tích và thiết kế hệ thống gợi ý địa điểm du lịch sử
dụng kỹ thuật SVD.
- Xây dựng và đánh giá hệ thống gợi ý.
3. Đối tượng và phạm vi nghiên cứu
3.1. Đối tượng nghiên cứu
- Kỹ thuật SVD (Singular Value Decomposition).
- Hệ thống gợi ý (Recommender system - RS).
- Hệ thống Du lịch Quảng Ngãi
3.2. Phạm vi nghiên cứu
- Tập trung vào phương pháp SVD và các hướng cải tiến chúng.
- Ứng dụng cho hệ thống gợi ý tra cứu các địa điểm du lịch
trong phạm vi tỉnh Quảng Ngãi và được đưa lên Internet.
4. Phương pháp nghiên cứu

Trong luận văn đã sử dụng các phương pháp sau:
- Tìm hiểu thực tế, tổng hợp thống kê dữ liệu về du lịch
Quảng Ngãi.
- Kỹ thuật phân rã ma trận (matrix factorization – MF).
- Kỹ thuật SVD (Singular Value Decomposition).
- Phương pháp đánh giá.
5. Ý nghĩa khoa học và thực tiễn của đề tài
- Ý nghĩa khoa học:
 Đề xuất được mô hình gợi ý mới sử dụng kỹ thuật SVD.
 Đề tài nghiên cứu trường hợp riêng của kỹ thuật SVD.


4
 Góp phần vào công cuộc nghiên cứu và phát triển ứng
dụng thông minh.
- Ý nghĩa thực tiễn:
 Ứng dụng triển khai tới người dùng, giúp tiết kiệm thời
gian, chi phí và tạo sự tiện dụng tối đa cho người dùng.
6. Bố cục luận văn
Ngoài phần mở đầu và kết luận, nội dung đề tài được chia thành
03 chương:
Chương 1 – Tổng quan du lịch Quảng Ngãi và hệ thống gợi ý
Chương 2 – Các kỹ thuật phân rã
Chương 3 – Xây dựng hệ thống gợi ý và đánh giá
Chương 1 - TỔNG QUAN DU LỊCH QUẢNG NGÃI VÀ HỆ
THỐNG GỢI Ý
Trong chương này, trình bày các lý thuyết về du lịch, điểm du
lịch, giới thiệu về du lịch Quảng Ngãi, khái niệm về hệ thống gợi ý,
nêu bật tầm quan trọng của điểm du lịch và giá trị của cơ sở dữ liệu
đối với hệ thống gợi ý, đồng thời phân tích một số website có chức

năng tương tự. Chương này là cơ sở lý luận cho các chương tiếp theo.
1.1 TỔNG QUAN VỀ DU LỊCH QUẢNG NGÃI
Du lịch là hành động rời khỏi nơi cư trú để đi đến một nơi
khác, một môi trường khác trong một thời gian ngắn nhằm mục đích
tìm hiểu, khám phá, vui chơi, giải trí, nghỉ dưỡng. Điểm du lịch là
một phạm vi cụ thể chứa đựng một nguồn lực tự nhiên hay nhân tạo
với mục đích thu hút và thỏa mãn một hoặc nhiều nhu cầu như nghỉ
ngơi, vui chơi, tham quan … của khách du lịch.
Tỉnh Quảng Ngãi có đường bờ biển kéo dài từ An Tân đến Sa
Huỳnh nên có nhiều bãi tắm đẹp như Mỹ Khê, Sa Huỳnh Khe Hai,
Lệ Thủy, Minh Tân. Quảng Ngãi với 23 di tích lịch sử văn hóa và 2
di tích danh nhân quốc gia hiện có Quảng Ngãi còn có hơn 100 di


5
tích cấp tỉnh và đang từng bước lập hồ sơ đề nghị Bộ Văn hóa thông
tin công nhận nhằm bảo tồn và phát huy giá trị.
Hệ thống thông tin Quảng Ngãi đã có các trang Website hỗ
trợ đạt tour, các hệ thống tra cứu trực tuyến. Các hệ thống này đã
góp phần quảng bá, cung cấp thông tin đến với du khách gần xa. Tuy
nhiên các hệ thống này thiếu hỗ trợ, cung cấp đánh giá và giới thiệu
quảng bá còn nhiều hạn chế.
Hiện nay, ở Việt Nam, có rất nhiều website cung cấp thông tin
về du lịch. Tuy nhiên, hầu hết các website đều thuộc vào hai dạng
chính dưới đây:
Các trang bán tour trực tuyến:
Các website này cung cấp các thông tin về giá tour, giá vé, giá
khách sạn, hành trình tour…, có thiết kế giao diện đẹp mắt, thuận tiện
cho người dùng, nội dung về các tour du lịch khá đầy đủ, chi tiết,
phạm vi các điểm du lịch rộng lớn cả trong và ngoài nước.

Tuy nhiên, thông tin về các điểm du lịch còn sơ sài, chỉ thấy
được tour giá rẻ mà không thấy được tour được ưa chuộng, không
thấy được thái độ của khách đối với các điểm du lịch trong mỗi tour.
Cẩm nang du lịch:
So với các trang bán tour trực tuyến thì những website này tập
trung trình bày nhiều hơn về điểm đến và điểm du lịch, nó cung cấp
những thông tin về chùm điểm du lịch, ẩm thực, văn hóa…
Như vậy, các website du lịch ở Việt Nam hiện nay chủ yếu
tập trung hỗ trợ công việc đặt tour, bán tour cho các đơn vị lữ hành.
Phạm vi điểm đến và điểm du lịch được giới thiệu tại các website du
lịch hiện nay quá rộng lớn, cả trong nước, ngoài nước và ở các châu
lục khác nhau, đây là thế mạnh trong du lịch tuy nhiên nó cũng tạo
ra một nhược điểm lớn: dữ liệu, thông tin cho mỗi điểm đến hay
điểm du lịch thường ít được đầy đủ và hoàn thiện. Do đó, luận văn
đã đề xuất phạm vi nội dung tập trung vào một khu vực cụ thể đó là


6
Quảng Ngãi, vùng đất du lịch tiềm năng chưa được khai thác hiệu
quả. Từ đây, việc xây dựng một website nhằm thu thập thông tin
đánh giá về một số địa điểm du lịch ở Quảng Ngãi làm CSDL cho hệ
thống gợi ý địa điểm du lịch là vô cùng cần thiết.
1.2. CÁC PHƯƠNG PHÁP GỢI Ý
Có rất nhiều cách để gợi ý, ước lượng hạng/điểm cho các sản
phẩm như sử dụng học máy, lý thuyết xấp xỉ, các thuật toán dựa trên
kinh nghiệm… các hệ thống gợi ý thường được phân ba loại dựa trên
cách nó dùng để ước lượng hạng của sản phẩm:
- Dựa trên nội dung (content-based): người dùng được gợi ý
những sản phẩm tương tự như các sản phẩm từng được họ đánh giá cao.
- Cộng tác (collaborative): người dùng được gợi ý những sản

phẩm mà những người cùng sở thích với họ đánh giá cao.
- Lai ghép (hybrid): kết hợp cả phương pháp dựa trên.
1.2.1. Phương pháp gợi ý dựa trên nội dung
Phương pháp gợi ý dựa vào nội có một điểm mạnh sau:
phương pháp không yêu cầu số lượng người dùng lớn; dự vào thông
tin có sẵn để thực hiện gợi ý các sản phẩm mới. Tuy nhiên, phương
pháp này còn chứa một dãy nhược điểm sau: quá tập trung chuyên
ngành; vấn đề trích chọn đặc trưng
1.2.2. Phương pháp gợi ý dựa trên lọc cộng tác
Hệ tư vấn dựa trên lọc cộng tác được phân chia thành hai
nhóm:
- Nhóm dựa trên bộ nhớ.
- Nhóm dựa trên mô hình.
Phương pháp gợi ý dựa vào lọc cộng tác có ưu điểm: việc tính
toán tương đối đơn giản, nhanh chóng và hiệu quả trong quá trình gợi
ý. Tuy nhiên, phương pháp này tồn tại các nhược điểm sau: Vấn đề
người dùng mới (New User Problem); vấn đề sản phẩm mới (New
Item Problem); vấn đề dữ liệu thưa (Sparsity Data Problem)


7
1.2.3. Phương pháp gợi ý lai
Một hệ thống lai là sự kết hợp kỹ thuật lọc nội dung và lọc
cộng tác cố gắng sử dụng ưu điểm của mỗi kỹ thuật. Với hai (hoặc
hơn) kỹ thuật gợi ý cơ bản, một số cách đã được đề xuất cho việc kết
hợp chúng để tạo ra một hệ thống lai mới.
1.3 HỆ THỐNG GỢI Ý
1.3.1. Giới thiệu
Hệ thống gợi ý là hệ thống hỗ trợ ra quyết định nhằm gợi ý các
thông tin liên quan đến người dùng một cách dễ dàng và nhanh

chóng, phù hợp với từng người dùng. Hệ thống bao gồm các kỹ thuật
và công cụ phần mềm nhằm đưa ra những gợi ý cho người dùng, đáp
ứng nhu cầu của họ về một sản phẩm, dịch vụ nào đó trên Internet.
Những gợi ý được cung cấp nhằm hỗ trợ người dùng đưa ra quyết
định lựa chọn những sản phẩm, dịch vụ phù hợp với nhu cầu và thị
hiếu của mình, chẳng hạn như: mua sản phẩm nào, nghe thể loại nhạc
gì hay tin tức trực tuyến nào nên đọc, ...
Hệ thống gợi ý thông thường sẽ tập trung vào một mục tin hay
sản phẩm (item) cụ thể nào đó (CD, tin tức) theo thiết kế và giao diện
đồ họa người dùng kết hợp với kỹ thuật, thuật toán gợi ý nhằm sinh
ra các gợi ý tuỳ chỉnh, cung cấp những gợi ý có ích và hiệu quả cho
sản phẩm đó. Hệ thống gợi ý nhằm hướng dẫn những người dùng
thiếu kinh nghiệm hoặc chưa đủ thẩm quyền để đánh giá số lượng áp
đảo các item thay thế.
Tuy vậy, du lịch Quảng Ngãi vẫn chưa thấy xuất hiện các
nghiên cứu về RS. Trong luận văn này, tôi giới thiệu sơ lược về hệ
thống gợi ý, các phương pháp cơ bản được sử dụng phổ biến nhất
trong RS, sau đó đi sâu vào tìm hiểu chi tiết phương pháp, kỹ thuật
nổi trội nhất hiện nay trong RS là kỹ thật SVD (Singular Value
Decomposition), kỹ thuật phân rã ma trận (matrix factorization –


8
MF), kỹ thuật NN-MF (Nonnegative Matrix Factorization) và để xây
dựng hệ thống gợi ý địa điểm du lịch tại Quảng Ngãi.
1.3.2 . Bài toán tổng quát của hệ thống gợi ý
Bài toán tư vấn được coi là bài ước lượng trước hạng (rating)
của các sản phẩm chưa được người dùng xem xét. Việc ước lượng
này thường được dựa trên những đánh giá đã có của chính người
dùng đó hoặc những người dùng khác. Những sản phẩm có hạng cao

nhất sẽ được dùng để tư vấn. Một cách hình thức, bài toán tư vấn
được mô tả như sau:

i1
i2
in

u1

r1,1

r1,2



r1,n

u2

r2,1

r2, 2



r2,n










um

rm ,1

rm , 2




rm,n

Hình 1.2. Ma trận đánh giá của người dùng
Gọi U là tập hợp tất cả người dùng, I là tập hợp tất cả các sản
phẩm có thể tư vấn. Tập I có giá trị trong khoảng {1,n}, tập U có giá
trị trong khoảng {1,m}. Hàm f(u,i) đo độ phù hợp (hay hạng) của sản
phẩm I với người dùng u : f : U x I → R với R là tập được sắp thứ tự.
Với mỗi người dùng u  U , cần tìm sản phẩm i ,  I sao cho hàm
f(i’,u) đạt giá trị lớn nhất:

u U , iu'  arg max f (u, i)
Vấn đề chính của hệ tư vấn là hàm f(u,i) không được xác định
trên toàn không gian U x I mà chỉ trên một miền nhỏ của không gian đó.
Điều này dẫn tới việc hàm f(u,i) phải được ngoại suy trong không gian U
x I. Các hệ thống tư vấn thường được phân thành nhiều loại dựa trên
cách nó sử dụng các thuật toán để ước lượng hạng hoặc điểm của các

sản phẩm.


9
1.3.3 . Chức năng hệ thống gợi ý
Dưới đây là một số chức năng của hệ thống gợi ý.
Đối với nhà cung cấp:
- Tăng số lượng các sản phẩm bán ra cho các hệ thống thương
mại điện tử.
- Bán các sản phẩm đa dạng hơn trên các hệ thống thương mại
điện tử.
- Tăng sự hài lòng người dùng.
- Tăng độ tin cậy, độ trung thực của người dùng.
- Hiểu rõ những gì người dùng muốn.
Đối với người dùng:
- Tìm ra một số sản phẩm tốt nhất.
- Tìm ra tất cả sản phẩm tốt.
- Gợi ý liên tục.
- Gợi ý một nhóm sản phẩm.
- Chỉ duyệt tìm.
- Tìm kiếm các gợi ý tin tưởng.
- Cải thiện hồ sơ cá nhân người dùng.
- Bày tỏ ý kiến của mình.dùng khác.
1.3.4
Dữ liệu và các nguồn tri thức
Hệ thống gợi ý là hệ thống xử lý thông tin thu thập từ các loại
dữ liệu khác nhau để xây dựng các gợi ý. Dữ liệu chủ yếu là về các
sản phẩm cần gợi ý và người dùng sẽ nhận được các gợi ý này. Tuy
nhiên, dữ liệu và các nguồn tri thức sẵn có cho các hệ thống gợi ý có
thể rất đa dạng. Trong bất kỳ trường hợp nào, dữ liệu được sử dụng

bởi hệ thống gợi ý thuộc ba loại: sản phẩm (Item), người dùng (User)
và các giao dịch (Transactions), đó chính là quan hệ giữa người dùng
và sản phẩm.
1.3.4.1. Sản phẩm
1.3.4.2. Người dùng


10
1.3.4.3. Giao dịch
KẾT LUẬN CHƯƠNG 1
Trong chương 1, luận văn đã trình bày tổng quan về du lịch
Quảng Ngãi, những điểm đạt được và những hạn chế của du lịch
Quảng Ngãi; một số website du lịch Việt Nam, những đặc điểm của
chúng; các phương pháp gợi ý. Ngoài ra, trong chương đã giới thiệu
về hệ thống gợi ý, nêu chức năng, phát biểu bài toán tổng quát của hệ
thống gợi ý, cơ sở dữ liệu và các nguồn tri thức để có thể ứng dụng
các kỹ thuật vào hệ thống gợi ý.
Chương 2 – CÁC KỸ THUẬT PHÂN RÃ
Hệ thống gợi ý đóng vai trò rất lớn trong hệ thống tư vấn, hệ
thống gợi ý, đã có ứng dụng đem lại lợi ích về kinh tế, chính trị...
Một mảng kỹ thuật được nhiều nhà nghiên cứu quan tâm đó đó là Kỷ
thuật Phân rã. Đặc biệt trong hệ thống gợi ý chú trọng đến phương
pháp SVD, phương pháp phân rã ma trận MF và phương pháp phân
rã ma trận không âm NN-MF. Nội dung cụ thể sẽ được trình bày
trong chương này.
2.1 KỸ THUẬT SVD
2.1.1.
Giới thiệu
Kỹ thuật SVD được G. Golub và W. Kahan giới thiệu vào năm
1965. Đây là một kỹ thuật phân tích dùng để tính toán các giá trị đơn,

nghịch đảo và hạng ma trận. Kỹ thuật này phân tích một ma trận
thành ba ma trận mới dựa vào các giá trị đơn được phân tích. Kể từ
khi được giới thiệu SVD đã trở thành một kỹ thuật phân tích ma trận
tiêu chuẩn trong đại số tuyến tính.
Trong thực tiễn, người ta muốn xấp xỉ ma trận lớn ban đầu với
một ma trận có kích thước nhỏ hơn mà vẫn giữ lại được những đặc
trưng gần giống như ban đầu. Sớm nhận ra rằng trong việc rút gọn số
chiều, SVD làm những đặc trưng giống nhau thì càng tương quan
nhau hơn, nếu chúng khác nhau thì càng cách xa nhau hơn. Vấn đề


11
này có thể giải thích khi quan sát những vectơ trong U và V bên trên.
Những vectơ bao gồm việc cấu thành từ sự biến đổi nhỏ nhất từ dữ
liệu trực giao.
Trong hệ thống gợi ý các địa điểm du lịch, sau khi hoàn thành
bước mô hình hoá dữ liệu, một ma trận thưa được tạo ra. Do giải
thuật SVD là ý tưởng giảm số chiều của ma trận ban đầu, rút gọn về
số chiều nhỏ hơn rất nhiều, làm nổi trội các giá trị đặc trưng và loại
bỏ được các đặc trưng nhiễu. Vì thế, SVD được áp dụng rộng rãi vào
bài toán gợi ý.
2.1.2. Phát biểu bài toán
Các hệ thống gợi ý có thể áp dụng cho nhiều lĩnh vực khác
nhau. Tuy nhiên, bài toán có thể được phát biểu dưới dạng toán học
như sau:
U là tập người dùng trong hệ thống.
I là tập các sản phẩm của hệ thống đó.
ri,j là đánh giá của người dùng i (

) cho sản phẩm j (


).
Bằng các mô hình của hệ gợi ý, ta cần đưa ra các dự đoán cho
đánh giá của một người dùng bất kì trong hệ thống cho một sản phẩm
bất kì mà người dùng đó chưa đánh giá. Và trong thực tế, các sản
phẩm được hệ gợi ý dự đoán người dùng đó sẽ đánh giá cao, sẽ được
đưa lên để gợi ý cho người dùng đó trải nghiệm.
2.1.3. Ý tưởng thực hiện
SVD là phương pháp giúp phân rã bất cứ ma trận nào thành
tích của 3 ma trận với tính chất đặc biệt.

M nm  U V T
Trong đó:
U là ma trận n x m vec-tơ riêng phải và là U ma trận trực giao.


12
∑ là ma trận đường chéo n x m chứa các giá trị riêng của ma
trận M.
V là ma trận n x m vec-tơ riêng trái và V cũng là ma trận trực
giao.
2.1.4. Hướng tiếp cận Truncated SVD
Để giải quyết bài toán đặt ra thì chúng ta ứng dụng phương
pháp SGD để triển khai SVD nhằm mục đích phân rã ma trận X và
tìm kiếm được ma trận Y≈ X.
Ta có một ma trận Am x n luôn có thể khai triển thành:
Am x n = U ∑ VT
(1)
Ta thấy :
Vì tính chất của ma trận đường chéo nên ta có thể khai triển

Am x n :
Am x n = U √∑ √∑ VT
Đặt:
X= U √∑
YT =√∑ VT
Từ đó ta có thể viết lại biểu thức (1) : Am x n = XYT
Ta có hàm mất mát của ma trận Am x n :
L( A, X , Y ,W ,  )   im1  nj1 i , j l ( Aij , xi y Tj )    im1 xi xiT    nj1 y j y Tj

Tối ưu hóa hàm mất mát trên , ta được:

xi  (1   ) xi   j  ( Ai , j  xi y Tj ) y j
yi  (1   ) yi   j  ( Ai , j  xi y Tj ) x j
Trong đó :
𝜂 - tốc độ học
𝜆 - hàm chính tắc
Bằng tính chất của ma trận U, ∑ , V ta có thể viêt lại biểu
thức (1) dưới dạng tổng của các ma trận rank 1:


13
𝐴 = 𝜎1 𝑢1 𝑣1𝑇 + 𝜎2 𝑢2 𝑣2𝑇 + ⋯ + 𝜎𝑟 𝑢𝑟 𝑣𝑟𝑇
với chú ý rằng mỗi 𝑢𝑖 , 𝑣𝑖𝑇 , 1 ≤ 𝑖 ≤ 𝑟 là một ma trận có rank
bằng 1. Và 𝑟 là số các giá trị khác 0 trên đường chéo của ma trận Σ.
Chú ý rằng trong ma trận Σ, các giá trị trên đường chéo là
không âm và giảm dần 𝜎1 ≥ 𝜎2 ≥ ⋯ ≥ 𝜎𝑘 ≈ 0. . ≥≈ 0. Thông
thường, chỉ một lượng nhỏ các 𝜎𝑖 mang giá trị lớn, các giá trị còn lại
thường nhỏ và gần 0. Khi đó ta có thể xấp xỉ ma trận A bằng tổng
của k𝐴 ≈ 𝐴𝑘 = 𝜎1 𝑢1 𝑣1𝑇 + 𝜎2 𝑢2 𝑣2𝑇 + ⋯ + 𝜎𝑘 𝑢𝑘 𝑣𝑘𝑇

Dưới đây là một định lý thú vị. Định lý này nói rằng sai số do
cách xấp xỉ trên chính là căn bậc hai của tổng bình phương của các
singular values mà ta đã bỏ qua ở phần cuối của Σ. Ở đây sai số được
định nghĩa là Frobineous norm của hiệu hai ma trận:

Việc xấp xỉ ma trận A bằng tổng của kđược gọi là Truncated SVD. Bằng cách này ta chỉ tạo ngẫu nhiên và
cập nhập trên từng hàng của ma trận X và Y.
2.1.5. Thuật toán SVD
Dữ liệu vào: Là ma trận Amxn chứa giá trị và có những điểm
chưa được đánh giá.
Dữ liệu ra: Là các ma trận U, ∑, VT và ma trận Rmxn là tích
của 3 ma trận U, ∑, VT chứa các điểm đã được đánh giá.
Các siêu tham số : maxOrder số chiều tối đa của 2 ma trận X
và Y; initValue giá trị dùng trong việc khởi tạo cho các phân tử của
X và Y, initLearningRate giá trị khởi gán của mức độ học tập,
annealingRate tốc độ tôi luyện, maxEpochs số lần lặp tối đa,
regularization hàm chính tắc, minImprovement là điều kiện để hội tụ.


14
Thuật Toán: Thuật toán được trình bày mả giả trong thủ tục
Single_Value_ Decompsiton:
Procedure Single_Value_ Decompsiton(maxOrder, initValue, M,
initLearningRate, annealingRate, maxEpochs,
regularization,minImprovement )
Begin
for (i,j thuộc M[i][j])) cache[i][j] = 0;end for
for (k = 0; k < maxOrder; ++k)
rmseLast = infinity;

// Khởi tạo giá trị ngẫu nhiên theo phân phối Gauss.
for (i < m) U'[i][k] = random.nextGaussian()*initValue; end for
// Khởi tạo giá trị ngẫu nhiên theo phân phối Gauss.
for (j < n) V'[j] [k] = random.nextGaussian()*initValue; end for
for (epoch = 0; epoch < maxEpochs && chưa hội tu; ++epoch)
learningRate[epoch] = initialLearningRate / (1 +
epoch/annealingRate)
sumOfSquareErrors = 0;
for (i,j thuộc M[i][j])
error = M[i][j] – (cache[i][j] + U'[i][k] * V'[j][k] )
// tính toán sai số
sumOfSquareErrors += error * error;
uTemp = U'[i][k]
vTemp = V'[j][k]
//Cập nhập giá trị cho U'[i][k]
U'[i][k]+=learningRate[epoch]*(error*vTempregularization*uTemp)
//Cập nhập giá trị cho V'[j][k]
V'[j][k]+=learningRate[epoch]*(error*uTempregularization*vTemp)
End for


15
sumOfSquareErrors
m×n

Rmse = √

Break nếu đã hội tụ;
rmseLast =Rmse ;
End for

for (i,j thuộc M[i][j])) cache[i][j] = cache[i][j] + U'k[i] *
V'k[j] ;end for
End for
Gán U’ và V’ bằng chuyển vị của chúng
Từ U’ , V’ tối ưu hóa để được U , , V
Return {U , , V}
End procedure;
2.2 . KỸ THUẬT PHÂN RÃ MA TRẬN-MF
2.2.1 . Giới thiệu
Kỹ thuật phân rã ma trận được xem là kỹ thuật tiến bộ nhất
trong số các kỹ thuật dùng trong phương pháp CF vì nó cho phép
ta khám phá ra những đặc tính tiềm ẩn nằm bên dưới các tương
tác giữa người dùng và hạng mục. Một trong những thành công
nhất của mô hình thuộc tính ẩn (Latent Factor Model) là dựa trên
phân tích ma trận. Trong hình thức cơ bản, ma trận thừa số được
đặc trưng bởi các sản phẩm và người dùng bằng các vectơ của
các yếu tố được suy ra từ mô hình đánh giá sản phẩm. Phương
pháp này ngày càng trở nên phổ biến bằng cách kết hợp khả
năng mở rộng tốt và độ chính xác cao.
2.2.2. Ý tưởng thực hiện
Mục đích của kỹ thuật phân rã ma trận là việc chia một ma trận
lớn X thành hai ma trận có kích thước nhỏ hơn W và H, sao cho ta có
thể xây dựng lại X từ hai ma trận nhỏ hơn này càng chính xác càng
tốt, nghĩa là:
T

X ~ WH


16

Trong đó, W ∈ |U|×K là một ma trận mà mỗi dòng u là một
véc-tơ bao gồm K nhân tố tiềm ẩn (latent factors) mô tả người dùng
u, và H ∈|I|×K là một ma trận mà mỗi dòng i là một vectơ bao gồm K
nhân tố tiềm ẩn mô tả cho item i.
Gọi wuk và hik là các phần tử tương ứng của hai ma trận W và
H, khi đó xếp hạng của người dùng u trên mục tin i được dự đoán bởi
công thức:
k

rˆui   w ik hik = w.hT

(2.1)

k 1

eui  rui  rˆui

∀ u,i ∈ X

eui làˆsai số huấn luyện trên xếp hạng thứ (u,i).
Như vậy, vấn đề then chốt của kỹ thuật phân rã ma trận là làm
thế nào để tìm được giá trị của hai tham số W và H. Hai tham số này
có được bằng cách tối ưu hóa hàm mục tiêu (objective function).
Trong hệ thống gợi ý, hàm mục tiêu của phân rã ma trận hay được sử
dụng như sau :

O MF 

e


u ,iX

ui

2



 (r

u ,iX

2

ˆ
ui  rui ) 

k

 (r   w h

u ,iX

ui

k 1

ui ui

)2


(2.2)

Một trong những kỹ thuật có thể dùng để tối ưu hóa hàm mục
tiêu là giảm gradient ngẫu nhiên (Stochastic Gradient Descent).
Để tối ưu hóa hàm mục tiêu (2.2), trước tiên ta khởi tạo các giá
trị ngẫu nhiên cho W và H, sau đó từng bước cập nhật giá trị của
chúng cho đến khi hàm mục tiêu hội tụ về giá trị nhỏ nhất
(convergence). Để làm được điều đó, ta cần phải xác định là nên tăng
hay nên giảm các giá trị của W và H qua mỗi lần cập nhật, do vậy
cần phải tìm đạo hàm từng phần của chúng:


17


w uk

OMF =

2(rui  rˆui )hik


hik

OMF=

2(rui  rˆui ) wuk

Sau khi tìm đạo hàm, chúng ta cần giảm thiểu tối đa độ lỗi này

và cập nhập lại cho wuk và hik được lặp đi lặp lại (tối ưu hoá bằng kỹ
thuật Stochastic Gradient Descent- kỹ thuật giảm gradient ngẫu
nhiên). Các phần tử của W và H sẽ được cập nhập ngược hướng với
giá trị của đạo hàm, qua công thức :
new
old
w uk
 w uk


hiknew  hikold  


old
O MF  w uk
 2 (rui  rˆui )hik
w uk

 MF
O  hikold  2 (rui  rˆui )w uk
hik

 : tốc độ học (learning rate)
Quá trình cập nhập sẽ thực hiện đến khi nào hàm mục tiêu đạt
giá trị nhỏ nhất hoặc đến số lần lặp được xác định trước. Sau quá
trình tối ưu, ta có được giá trị W và H.
Chính tắc hóa (Regularization): Để ngăn ngừa sự quá khớp
hay còn gọi là học vẹt (overfitting – xảy ra khi mô hình dự đoán cho
kết quả tốt trên dữ liệu huấn luyện, nhưng cho kết quả kém trên dữ
liệu thử nghiệm) người ta thay đổi hàm mục tiêu (2.2) bằng cách

thêm vào một đại lượng gọi là chính tắc hóa (regularization) để điều
khiển độ lớn của các giá trị trong W và H. Quá trình cập nhập giá trị
của W và H được lặp lại cho đến khi đạt độ lỗi chấp nhận hoặc lặp
lại đến số lần quy định trước.
2.2.3 Thuật toán MF
Đầu vào: Một bộ dữ liệu huấn luyện X, giá trị khởi tạo bạn đầu
W0 và H0


18
Đầu ra: Hai ma trận W và H
procedure MF (DTrain,K, β, λ, stopping condition)
// W[|U|][K] và H[|I|][K] là 2 tham số cần tìm
W := N(0,σ2) //khởi tạo giá trị theo phân phối chuẩn
H := N(0, σ2) //khởi tạo giá trị theo phân phối chuẩn
while() do
Draw randomly (u,i,x) from D Train
rˆ := 0
for (k:=1; k<=K; k++)
rˆ := rˆ + W[u][k] * H[i][k]
end for
e = r – rˆ
for (k:=1; k<=K; k++)
W[u][k] := W[u][k] + β * (eui * H[i][k] - λ * W[u][k])
H[i][k] := H[i][k] + β * (eui * W[u][k] - λ* H[i][k])
end for
end while
return{W,H}
end procedure
2.3 . KỸ THUẬT NN-MF

2.3.1 . Giới thiệu
Khi dữ liệu chưa được chuẩn hoá, chúng đều mang các giá trị
không âm. Nếu dải giá trị của ratings có chứa giá trị âm, ta chỉ cần
cộng thêm vào Utility Matrix một giá trị hợp lý để có được
các ratings là các số không âm. Khi đó, một phương pháp Matrix
Factorization khác cũng được sử dụng rất nhiều và mang lại hiệu quả
cao trong Recommendation Systems là Nonnegative Matrix
Factorization, tức phân tích ma trận thành tích các ma trận có các
phần tử không âm.
2.3.2 .Thuật toán về NN-MF


19
Đầu vào: Một bộ dữ liệu huấn luyện X, giá trị khởi tạo bạn
đầu W0 và H0
Đầu ra: Hai ma trận W và H
Train

procedure NNMF (D ,K, stepMax, minImprovement)
// W[|U|][K] và H[|I|][K] là 2 tham số cần tìm
W := N(0,σ2) //khởi tạo giá trị theo phân phối chuẩn
H := N(0, σ2) //khởi tạo giá trị theo phân phối chuẩn
𝜀 ∶= 1𝑒 − 9 // khởi tạo epsilon
while(stepNum <= stepMax or W and H aren’t stable) do
//Cập nhập cho H
WtV = WT * V
WtWH = WT * W * H
for (i:=1; i<=K; i++)
for (j:=1; j<=m; j++)
H[i][j] := H[i][j] * (WtV[i][j] / (WtWH[i][j] + 𝜀 ))

end for
end for
//Cập nhập cho W
VtH = V * HT
WHtH = W * H * HT
for (i:=1; i<=n; i++)
for (j:=1; j<=k; j++)
W[i][j] := W[i][j] * (VtH [i][j] / (WHtH[i][j] + 𝜀 ))
end for
end for
if ( normF(V – W*H ) < minImprovement ) break;
end while
return{W,H}
end procedure


20
KẾT LUẬN CHƯƠNG 2
Trong chương 2 đã tập trung giới thiệu về các kỹ thuật phân rã
bao gồm kỹ thuật SVD, kỹ thuật phân rã ma trận MF và kỹ thuật
phân rã ma trận không âm NN-MF. Sau khi tìm hiểu các phương
pháp, trong chương tiếp theo tôi sẽ trình bày về ứng dụng của các kỹ
thuật này vào bài toán cụ thể để xây dựng hệ thống gợi ý và đánh giá,
đó là việc tra cứu địa điểm du lịch.
Chương 3 - XÂY DỰNG HỆ THỐNG GỢI Ý VÀ ĐÁNH GIÁ
3.1 . MÔ TẢ HỆ THỐNG
Hệ thống gợi ý địa điểm du lịch được xây dựng dưới dạng một
trang web cung cấp các thông tin về địa điểm du lịch: Tên địa điểm
du lịch, địa chỉ, hình ảnh đại diện, nội dung và chủ đề của địa điểm
du lịch. Hệ thống website được xây dựng với mục đích tìm hiểu,

nghiên cứu hoạt động của hệ thống gợi ý Recommemder Systems.
Khi có người truy cập vào website thì có thể tìm kiếm, tham khảo
thông tin địa điểm du lịch, bình chọn và đánh giá địa điểm mình yêu
thích.
Hệ thống cho phép người dùng đăng ký thành viên và đăng
nhập vào hệ thống để tìm kiếm thông tin các địa điểm du lịch cũng
như đánh giá cho các địa điểm du lịch đó. Sau khi đăng ký và đăng
nhập thành công, hệ thống cho phép người dùng bình chọn và đánh
giá những địa điểm du lịch mà mình yêu thích với điểm số từ 1 – 5
tương ứng với mức độ hài lòng của mỗi cá nhân.
Từ những thông tin cần thiết liên quan đến bình chọn, đánh giá
và nhận xét của người dùng, hệ thống sẽ lưu lại thông tin đó trong cơ
sở dữ liệu dùng để thực hiện chức năng gợi ý cho những lược người
dùng truy cập sau.
Các đối tượng chính trong hệ thống:
- Thành viên.
- Địa điểm du lịch.


21
- Thông tin ngữ cảnh.
- Thông tin đánh giá và các thông tin bình luận như: địa điểm
được bình luận, nội dung bình luận, ngày đăng.
Hệ thống được phân quyền cho 2 nhóm người dùng chính là
thành viên và quản trị. Trong đó nhóm người quản trị có đầy đủ
quyền trên hệ thống như: cập nhật địa điểm du lịch, thống kê số lượt
truy cập và trung bình đánh giá của từng địa điểm du lịch, thống kê
số lượt đánh giá và liệt kê các đánh giá của từng thành viên,… và còn
nhóm thành viên thì sẽ có một số quyền trên hệ thống như: xem
thông tin địa điểm du lịch muốn đi, đánh giá xếp hạng và bình luận,

xem tin tức/sự kiện, được hệ thống gợi ý và chỉ đường.
3.2 . PHÂN TÍCH, THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG
Để hạn chế những sơ đồ không cần thiết, trong luận văn chỉ
tập trung xây dựng các sơ đồ cho chức năng chính là gợi ý địa
điểm du lịch.
3.2.1 . Sơ đồ ca sử dụng
- Sơ đồ ca sử dụng tổng quát
- Sơ đồ ca sử dụng phụ
Sơ đồ ca sử dụng khách hàng
Sơ đồ ca sử dụng người quản trị
3.2.2 . Sơ đồ hoạt động và sơ đồ tuần tự
- Sơ đồ hoạt động chức năng gợi ý địa điểm du lịch
- Sơ đồ tuần tự chức năng gợi ý địa điểm du lịch
- Sơ đồ hoạt động chức năng cập nhật nội dung
- Sơ đồ tuần tự chức năng cập nhật nội dung
- Sơ đồ hoạt động chức năng đánh giá
- Sơ đồ tuần tự chức năng đánh giá
3.2.3 . Cơ sở dữ liệu
3.2.4 . Một số giao diện minh họa của hệ thống
- Giao diện chính hệ thống


22
- Giao diện gợi ý địa điểm ưu thích.
- Giao diện thu thập thông tin đánh giá người dùng
- Giao diện tiện ích
3.3. ĐÁNH GIÁ KẾT QUẢ THỬ NGHIỆM
Tập dữ liệu thử
Tập dữ liệu thử bao gồm 5 file input có giá trị và kích thước
như sau (Các file dữ liệu test được đính kèm theo)

Bảng 3.12. Tập dữ liệu thử nghiệm
Tên file
Số lượng user Số lượng item
ratings
Kịch bản 1
10
10
100
Kịch bản 2
20
50
1000
Kịch bản 3
25
80
2000
Kịch bản 4
50
100
5000
Kịch bản 5
100
200
20000
3.3.1. Phương pháp Truncated SVD
3.3.2. Phương pháp MF
3.3.3. Phương pháp NN-MF
Bảng kết quả thử nghiệm tổng quát 3 phương pháp SVD, MF,
NN-MF trên độ đo RMSE
Bảng 3.13. Kết quả thử nghiệm tổng quát trên độ đo RMSE

DL/ RMSE

SVD

MF

NN-MF

Kịch bản 1

0.597

0.531

0.37

Kịch bản 2

0.502

0.544

0.64

Kịch bản 3

0.481

0.501


0.729

Kịch bản 4

0.42

0.41

0.695

Kịch bản 5

0.424

0.401

0.745

Từ dữ liệu 5 kịch bản, tiến hành thực nghiệm 3 phương pháp
SVD , MF và NNMF đã nghiên cứu trong chương 2 cho kết quả bảng


23
3.3.5. Để làm rõ độ đo RMSE với 5 kịch bản . Tôi tiến hành vẽ 2
loại biểu đồ đường và cột ứng với 3 phương pháp SVD, MF, NNMF:
- Biểu đồ đường so sánh 3 nghiên cứu với 5 kịch bản thử nghiệm
- Biểu đồ cột so sánh 3 phương pháp với 5 kịch bản thử nghiệm
Từ 2 biểu đồ cho thấy khi tập dữ liệu nhỏ thì NNMF hiệu quả
hơn 2 phương pháp SVD và MF. Tuy nhiên, tập dữ liệu càng lớn thì
SVD và MF có khuynh hướng hiệu quả vượt trội.

KẾT LUẬN CHƯƠNG 3
Trong chương 3 luận văn tập trung phân tích, cài đặt chương
trình thử nghiệm và đánh giá kết quả đạt được của ba phương pháp
trình bày ở chương 2 gồm phương pháp SVD (Singular Value
Decomposition), phương pháp phân rã ma trận MF (matrix
factorization), phương pháp phân rã ma trận không âm NN-MF
(Nonnegative Matrix Factorization). Một số các kết quả chạy mô
phỏng với mục đích cho chúng ta thấy được ưu điểm của phương
pháp phân rã. Hệ thống gợi ý địa điểm du lịch đã bước đầu được thực
nghiệm và sẽ hoàn thiện đưa ra sử dụng trong thời gian tới.
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
1. Kết luận
Hiện nay, sự quan tâm đối với hệ thống gợi ý đang rất cao vì
sự cần thiết của những ứng dụng có thể giúp khách du lịch nắm bắt
tốt thông tin và đưa ra những nội dung hoặc lời khuyên phù hợp cho
từng cá nhân. Đề tài luận văn hướng đến việc thu thập dữ liệu đánh
giá của người dùng cung cấp cho hệ thống gợi ý thống qua một số
thử nghiệm, tích hợp kỹ thuật phân rã bao gồm kỹ thuật SVD, kỹ
thuật phân rã ma trận MF và kỹ thuật phân rã ma trận không âm NNMF để gợi ý sản phẩm cho người dùng và thực nghiệm từ phản hồi
của người dùng có thể đưa ra những lời gợi ý khá phù hợp. Các gợi ý
có được dựa trên những đánh giá của nhiều người dùng trước đó. Qua


×