Tóm tắt nội dung luận văn Trong thực tế hằng ngày, chúng ta luôn được gợi ý những video liên quan khi xem một video trên Youtube, hay được Facebook gợi ý kết bạn, rồi đến những món hàng
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN TOÁN ỨNG DỤNG VÀ TIN HỌC
-
LÊ VĂN TUẤN
Trang 2TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
Giảng viên hướng dẫn: TS Lê Chí Ngọc
HÀ NỘI, 05/2020
Trang 3Lời cảm ơn
Lời đầu tiên, tôi xin chân thành cảm ơn tới TS Lê Chí Ngọc đã giúp đỡ tôi rất nhiều
trong quá trình tìm kiếm tài liệu cũng như hoàn thành luận văn này Sự chỉ bảo tận
tình của thầy trong suốt quá trình từ những ý tưởng ban đầu cho đến khi luận văn
được hoàn thành là trợ giúp lớn nhất đối với tôi
Tôi cũng xin cảm ơn các bạn học cùng lớp Cao học Toán Tin 2017, các anh chị, bạn
bè, đồng nghiệp của tôi đã có những đóng góp giúp tôi có thể hoàn chỉnh luận văn
này
Cuối cùng, tôi xin gửi lời cảm ơn gia đình tôi những người đã luôn ở bên cạnh động
viên, ủng hộ tôi rất nhiều trong quá trình học và hoàn thiện luận văn
Luận văn của tôi còn có nhiều thiếu sót, rất mong nhận được những ý kiến đóng góp
từ các thầy, cô, cũng như từ các bạn đồng nghiệp để có thể hoàn thiện kiến thức của
mình, cũng như tiếp tục hướng nghiên cứu này
Tôi xin chân thành cảm ơn!
Hà Nội, ngày tháng năm 2020
Học viên
Lê Văn Tuấn
Trang 4Tóm tắt nội dung luận văn
Trong thực tế hằng ngày, chúng ta luôn được gợi ý những video liên quan khi xem một video trên Youtube, hay được Facebook gợi ý kết bạn, rồi đến những món hàng được gợi ý trên Amazon… Điều đặc biệt là những thứ gợi ý đó nó rất phù hợp với người dùng, làm người dùng sử dụng ngày càng nhiều các sản phẩm của họ Vậy làm sao họ có thể làm được điều đấy, trong khi có tới hàng nghìn, hàng vạn món hàng Đó chính là nhờ công nghệ hệ thống gợi ý, một trong những nhánh nhỏ trong ngành máy học, nó giúp người dùng tiếp cận phù hợp với món hàng mong muốn trong vô số các món hàng khác Hiện nay hệ thống gợi ý có mặt hầu hết mọi nơi, mọi ngành trong sản xuất, buôn bán
Trong nội dung của đề tài, sử dụng các thuật toán học sâu kết hợp với phương pháp phân rã ma trận thành nhân tử để xây dựng mô hình hệ thống gợi ý vừa tăng được tốc độ tính toán, dễ dàng cập nhật mô hình cũng như cải thiện được độ chính xác so với các phương pháp thông thường Đề tài sử dụng dữ liệu người dùng và nhà hàng trên website foody.vn để xây dựng mô hình đưa ra các gợi ý nhà hàng phù hợp tới người dùng
HỌC VIÊN
Ký và ghi rõ họ tên
Trang 5CHƯƠNG 3 38
Trang 7MỤC LỤC HÌNH VẼ
Hình 1: Ví dụ minh họa lọc theo nội dung với các sản phẩm trên google play store 14 Hình 2: Ví dụ về ma trận tiện ích thể hiện đánh giá về phim 15 Hình 3: Ví dụ về lọc cộng tác gợi ý phim cho người lớn, trẻ em 18
Hình 11: Minh họa phương pháp phân rã ma trận thành nhân tử 39 Hình 12: Minh họa luồng ra vào dữ liệu của mô hình học sâu 44 Hình 13: Minh họa phân phối xác suất của đầu ra lớp softmax 45 Hình 14: Đầu ra lớp softmax sẽ được so sánh với thực tế để đưa giá trị lỗi 46
Hình 18: Đồ thị biểu diễn thay đổi hàm lỗi của dữ liệu học và dữ liệu kiểm tra 50 Hình 19: Đồ thị biểu diễn độ chính xác trong quá trình học mô hình 51 Hình 20: Đồ thị biểu diễn độ chính xác với phương pháp phân rã ma trận đơn thuần 51
MỤC LỤC BẢNG
Bảng 1: Một số kết quả so sánh giữa các mô hình gợi ý 52
Trang 8
MỞ ĐẦU
Hiện nay với sự phát triển mạnh mẽ của ngành công nghiệp, mạng xã hội, thông tin,
dữ liệu xuất hiện mọi lúc mọi nơi xung quanh chúng ta Sự gia tăng không ngừng của dữ liệu từ mức độ terabytes đến mức độ petabytes và hơn nhiều thế nữa Dữ liệu đến từ rất nhiều nguồn, từ các trang mạng xã hội như Facebook, Twitter, Instagram hay trong giao dịch thương mại, xã hội số, chứng khoán…
Cùng với đó là các yêu cầu đối với quá trình phân tích, chiết xuất dữ liệu ngày càng cao, không những phải đáp ứng được tính thời gian thực mà còn phải đưa ra được những thông tin hữu ích, quan trọng trong một đống khổng lồ dữ liệu thô, chưa được
xử lý… Tất cả các yếu tố đó làm cho các bài toán phân tích và xử lý dữ liệu truyền thống trở nên không hiệu quả Như vậy cần có những công cụ tiên tiến hơn, những phương pháp hiệu quả hơn để giải quyết vấn đề này Và kĩ thuật phát hiện tri thức, khai phá dữ liệu, máy học đã và đang được nghiên cứu, ứng dụng trong nhiều lĩnh vực khác nhau trên toàn thế giới Học máy đang ngày càng len lõi vào từng ngóc ngách trong cuộc sống hàng ngày của chúng ta Giúp cải thiện, nâng cao hiệu suất làm việc, cũng như công việc dễ dàng hơn
Trong thực tế hằng ngày, chúng ta luôn được gợi ý những video liên quan khi xem một video trên Youtube, hay được Facebook gợi ý kết bạn, rồi đến những món hàng được gợi ý trên Amazon… Điều đặc biệt là những thứ gợi ý đó nó rất phù hợp với người dùng, làm người dùng sử dụng ngày càng nhiều các sản phẩm của họ Vậy làm sao họ có thể làm được điều đấy, trong khi có tới hàng nghìn, hàng vạn món hàng Đó chính là nhờ công nghệ hệ thống gợi ý, một trong những nhánh nhỏ trong ngành máy học, nó giúp người dùng tiếp cận phù hợp với món hàng mong muốn trong vô số các món hàng khác Hiện nay hệ thống gợi ý có mặt hầu hết mọi nơi, mọi ngành trong sản xuất, buôn bán Ngày trước khi mà hệ thống gợi ý chỉ áp dụng
Trang 9với những tính toán ma trận đơn thuần thì tới nay, với sự bùng nổ của máy học, học tăng cường, học sâu, khi áp dụng vào hệ thống gợi ý cho ra các kết quả ngày càng được cải thiện về độ chính xác cũng như tốc độ xử lý
Một trong lĩnh vực mà hệ thống gợi ý cải thiện rõ rệt về năng suất, hiệu năng bán hàng đó là ngành kinh doanh nhà hàng Nhu cầu ăn uống là cần thiết với mỗi con người, vậy làm sao có thể gợi ý đúng nhu cầu của khách hàng tới nhà hàng đủ chất lượng và phù hợp với sở thích khách hàng trong số hàng ngàn các nhà hàng khác cũng là một vấn đề lớn Khi mà tập khách hàng càng lớn, số lượng khách hàng càng nhiều thì chúng ta phải kết hợp công nghệ xử lý dữ liệu lớn kết hợp với hệ thống gợi
ý để đưa ra những kết quả tốt nhất ví dụ như ở Việt Nam hiện nay, sự phát triển mạnh mẽ của Foody, Grab, Goviet, Now… những công ty, doanh nghiệp trong ngành thực phẩm, đồ ăn, giao hàng Với hàng triệu khách hàng giao dịch mỗi ngày, thì hệ thống phải hoạt động tốt, gợi ý sản phẩm hiệu quả Hệ thống gợi ý giúp người mua hàng giao dịch nhiều hơn, từ đó tăng doanh thu đáng kể
Trong bài luận văn này là tổng hợp các nghiên cứu, tìm hiểu của tôi về hệ thống gợi
ý, bên cạnh đó là áp dụng học sâu vào hệ thống Giúp khách hàng có thể tìm được những nhà hàng phù hợp theo nhu cầu, sở thích, từ đó gia tăng năng suất, doanh thu cho các nhà hàng
Cấu trúc luận văn gồm ba chương Chương 1, tôi sẽ giới thiệu về hệ thống gợi ý mà tôi nghiên cứu được trong thời gian qua Chương 2 là trình bày của tôi khi áp dụng học sâu vào hệ thống gợi ý và cuối cùng Chương 3 là một số kết quả đạt được với tập dữ liệu khách hàng và nhà hàng trên hệ thống Foody Phần kết luận tôi sẽ tổng kết lại các vấn đề trong luận văn
CHƯƠNG 1 GIỚI THIỆU BÀI TOÁN
Trang 10Công nghệ hệ thống gợi ý giúp đưa ra các gợi ý phù hợp tới người dùng cuối [1, 2, 3] Có đa dạng các gợi ý tới người dùng như: gợi ý sách cho người mua giống trên website amazon.com, gợi ý nhạc hay đến những tin tức liên quan trên các trang báo [2]… Tất cả các thứ với mục đích gợi ý cho người dùng trong hệ thống gợi ý được gọi chung là “sản phẩm” Khi mà số lượng sản phẩm quá lớn khiến những người dùng thiếu kinh nghiệm để có thể chọn đúng sản phẩm phù hợp, thì hệ thống gợi ý
sẽ giải quyết vấn đề này Hệ thống gợi ý sẽ cá nhân hóa từng người dùng, từ đó tập hợp được những sở thích, thói quen cụ thể của từng người để đưa ra gợi ý tốt nhất Còn đối với những người dùng mới, chưa được cá nhân hóa thì biện pháp hữu hiệu nhất thường là đưa ra những gợi theo xu hướng, những sản phẩm đang nổi trội ở thời điểm hiện tại [4]
Hệ thống gợi ý thu thập các thông tin từ người dùng qua các hành vi của họ, từ những lần đánh giá, bình luận đến cả những click (nhấn chuột), xem hay cho sản phẩm vào giỏ hàng đều được hệ thống xử lý, với mục đích có thật nhiều thông tin về khách hàng càng tốt, để hệ thống có thể cải thiện hiệu năng và đưa ra các kết quả chính xác hơn trong những lần tiếp theo của người dùng Bên cạnh những sản phẩm được ý theo sở thích của mỗi cá nhân, hệ thống còn gợi ý các sản phẩm khác của những người có nét tương đồng với họ Để các kết quả hiển thị ra được chuẩn xác và hài hòa nhất
Hệ thống gợi ý bắt đầu nổi dần lên từ giữa năm 1990 [5, 1, 6, 7], thời gian gần đây
hệ thống gợi ý phát triển mạnh mẽ, một số chủ đề đáng chú ý như:
Các trang web nổi tiếng lớn như youtube.com, amazon.com, netflix.com, walmart.com… luôn chú trọng phát triển hệ thống gợi ý của mình và là một trong những vai trò quan trọng của hệ thống [8] Họ luôn đầu tư, phát triển Ví dụ như Netflix trao thưởng tới một triệu $ cho những đội có thể cải thiện độ chính xác hệ thống gợi ý hơn 10% so với hiện tại [9]
Trang 11Nhiều sự kiện, hội nghị, hội thảo càng đề cao về hệ thống gợi ý Đặc biệt như ACM Recommender Systems (RecSys) được thành lập năm 2007 và bây giờ là sự kiện thường niên hàng đầu trong lĩnh vực nghiên cứu hệ thống gợi ý Một số hội nghị đáng kể đến khác như ACM SIGIR Special Interest Group on Information Retrieval (SIGIR), User Modeling Adaptation and Personalization (UMAP), và ACM’s Special Interest Group on Management Of Data (SIGMOD)
Hệ thống gợi ý dần được phổ biến trong ngành giáo dục khắp thế giới từ đại học tới sau đại học, các khóa học dành riêng cho hệ thống gợi ý Hay ngày càng nhiều sách viết về hệ thống gợi ý [4]
Nhiều bài báo về hệ thống gợi ý đã được công bố trên những tạp chí uy tín Một số bài báo nổi bật như: AI Communications (2008), IEEE Intelligent Systems (2007), International Journal of Electronic Commerce (2006), International Journal of Computer Science and Applications (2006), ACM Transactions on Computer-Human Interaction (2005), và ACM Transactions on Information Systems (2004)
1.1 Hệ gợi ý
Hệ thống gợi ý là một hệ thống mà có quá trình thu thập, xử lý đa dạng các loại dữ liệu để xây dựng mô hình đưa ra các gợi ý từ chúng Dữ liệu chủ yếu là thông tin về sản phẩm, các tương tác của người dùng sẽ nhận được các gợi ý từ chúng Nhưng vì nguồn thông tin và dữ liệu có sẵn cho hệ thống rất đa dạng và phức tạp thì việc có thể khai thác được từ chúng không lại phụ thuộc nhiều vào kỹ thuật, phương pháp,
mô hình gợi ý
Nhìn chung, các kỹ thuật trong hệ thống gợi ý đa số chỉ sử dụng các dữ liệu cơ bản như sự tương tác của người dùng tới các sản phẩm (đánh giá, bình luận ) Một số
kỹ thuật khác thì sử dụng đa dạng thông tin hơn như các bản mô tả về người dùng,
về sản phẩm hoặc các ràng buộc về các mối quan hệ giữa người dùng Trong bất kỳ trường hợp nào thì hệ thống gợi ý đều đề cập tới 3 đối tượng chính: người dùng (user), sản phẩm (item), tương tác giữa người dùng tới sản phẩm (transaction)
Trang 121.1.1 Sản phẩm
Sản phẩm là các đối tượng sẽ được hệ thống gợi ý đến người dùng Các sản phẩm
có thể đặc trưng bởi sự phức tạp và giá trị hay tiện ích của chúng Giá trị của sản phẩm sẽ là tích cực nếu nó hữu ích cho người dùng và tiêu cực nếu nó không phù hợp với người dùng Khi người dùng mua hàng, họ tìm kiếm mặt hàng mong muốn, khi đó họ cũng đã cung cấp thông tin hữu ích cho hệ thống và chúng ta có thể xem
đó là một phần giá trị mà họ mang lại
Các sản phẩm thường có mức độ phức tạp khác nhau Một số sản phẩm có độ phức tạp thấp như: sách, báo, phim ảnh, nhà hàng, món ăn… Một số sản phẩm có độ phức tạp và giá trị lớn hơn: điện thoại di động, camera kỹ thuật số… Và các sản phẩm được xem là có độ phức tạp nhất như: các chính sách bảo hiểm, đầu tư tài chính là những thông tin khó biểu diễn như lại giá trị cao [10]
Ngoài ra, các thuộc tính, tính năng đặc trưng của các sản phẩm sẽ đem lại những thông tin hữu ích hơn cho hệ thống, hệ thống sẽ biểu diễn được các sản phẩm rõ nét hơn dựa vào các đặc trưng của nó Ví dụ: khi sản phẩm là các quyển sách, chúng ta
có thể sử dụng các đặc điểm của quyển sách như giá, tác giả, năm xuất bản, thể loại…
1.1.2 Người dùng
Người dùng là đối tượng chính mà hệ thống nhắm đến, mục đích của hệ thống là đưa
ra các gợi ý tới người dùng Những người dùng trong hệ thống sẽ có mục đích khác nhau, các đặc điểm khác nhau Chính vì vậy mà một hệ thống gợi ý cần phải cá nhân hoá được từng người dùng Hệ thống cần phải khai thác được các tương tác của người dùng tới sản phẩm, sau đó cấu trúc lại, chọn thông tin nào cho phù hợp với
mô hình phụ thuộc vào kỹ thuật gợi ý
Ví dụ như hệ thống gợi ý sử dụng phương pháp lọc cộng tác, người dùng được mô hình hoá một cách đơn bằng danh sách các đánh giá được cung cấp bởi người dùng tới sản phẩm Hay trong phương pháp nhân khẩu học, các thuộc tính về người dùng
Trang 13như giới tính, tuổi tác, nghề nghiệp, tôn giáo… lại được sử dụng để mô hình hoá [11, 12] Nói chung, dữ liệu người dùng sẽ mô hình hoá người dùng, mô hình người dùng
sẽ đặc trưng cho người dùng đó, biểu diễn tính cách, sở thích, thói quen của người dùng
Sử dụng các mối quan hệ giữa các người dùng đang rất phổ biến hiện nay, khi mà thông tin của mỗi người dùng mang lại hạn chế với lượng sản phẩm rất lớn, thì việc tận dụng các mối quan hệ giữa người dùng sẽ cung cấp nhiều thông tin hơn, dựa vào các hành vi của các người dùng khác có cùng sở thích, thói quen Hệ thống có thể đưa ra các gợi ý phù hợp hơn Ví dụ: trong phương pháp lọc cộng tác sử dụng để gợi
ý phim cho người dùng, một người dùng A có độ tương tự gần giống người dùng B,
mà người dùng A vừa xem 1 bộ phim hành động, ta có thể gợi ý cho người dùng B
bộ phim đó
1.1.3 Sự tương tác
Sự tương tác được hiểu như là các tương tác của người dùng tới hệ thống gợi ý Các tương tác sẽ được lưu trữ, phân tích để cải tiến cho hệ thống, giúp hệ thống đưa ra các gợi ý chính xác hơn những lần sau Ví dụ: các tương tác sẽ được hiểu là khi người dùng lựa chọn những sản phẩm vào giỏ hàng, hay là các phản hồi đánh giá về sản phẩm như đánh giá, bình luận…
Trên thực tế thì các đánh giá là phổ biến nhất, nó thể hiện rõ sự quan tâm của người dùng tới sản phẩm, bên cạnh đó biểu diễn các đánh giá của người dùng cũng dễ dàng, giúp việc cải thiện và phát triển hệ thống nhanh và tốt hơn Theo như trong [13] có khá nhiều thể loại đánh giá:
● Các đánh giá bằng số, thường là từ 1 đến 5 hoặc từ 1 đến 10 Càng cao thể hiện
độ quan tâm của người dùng càng tốt Ví như trên các trang thương mại điện tử Tiki, Shopee
Trang 14● Một dạng để xác định mức quan tâm của người dùng đó là dùng những ý kiến,
câu hỏi được xác định trước Ví dụ: hài lòng, không hài lòng, quan tâm ở mức độ nào…
● Một kiểu đánh giá khác đó là đánh giá nhị phân, người dùng sẽ chọn một trong
hai lựa chọn: thích hoặc không thích
● Đánh giá chỉ ra từ người dùng đã quan sát, đã mua hoặc đánh giá sản phẩm tích
cực
Một hình thức thu thập các tương tác của người dùng nữa được gọi là thu thập ngầm
Cụ thể như chúng ta sẽ thu thập những lần người dùng gõ các từ ngữ tìm kiếm, hay
số lần xem các mặt hàng… những thông tin đó không chủ động từ người dùng và người dùng thường sẽ không biết được điều này Đây là một cách rất hữu hiệu đối với những người dùng ít đánh giá trực tiếp sản phẩm
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Để thực hiện vấn đề cốt lõi của hệ thống là xác định những sản phẩm hữu ích tới người dùng thì một hệ thống gợi ý phải dự đoán được sản phẩm đó đáng để gợi ý,
có nghĩa là nó phải mang ít nhất một ý nghĩa nào đó cho người dùng Để làm được điều này, hệ thống phải tìm được các giá trị phù hợp với người dùng trong các sản phẩm, hoặc ít nhất phải so sánh được các giá trị thực tế giữa các sản phẩm, sau đó quyết định sản phẩm nào là phù hợp nhất Đó chính là nhiệm vụ của mỗi thuật toán gợi ý trong hệ thống Có đa dạng các kỹ thuật, thuật toán, tuỳ vào từng hoàn cảnh, mục đích hay chính tình trạng dữ liệu hiện có để chọn những kỹ thuật phù hợp nhất
Trang 15Một ví dụ cho bước dự đoán của hệ thống gợi ý Chúng ta lấy một ví dụ đơn giản là gợi ý các bài hát đang phổ biến hiện thời tới người dùng Lý do căn bản để sử dụng phương pháp này là chúng ta không có dữ liệu người dùng, không biết sở thích của người dùng này là gì, vì vậy chúng ta chọn cách hữu hiệu nhất đó là gợi ý các bài hát được yêu thích hiện thời, việc chọn các bài đang được yêu thích theo số đông sẽ
là tốt hơn việc chọn ngẫu nhiên các bài hát
Một số kỹ thuật trong hệ thống gợi ý đang được quan tâm và sử dụng nhiều trong khoảng thời gian gần đây như: lọc dựa trên nội dung (content-based), lọc cộng tác (collaborative filtering), lọc theo nhân khẩu học (demographic), lọc dựa theo tri thức (knowledge-based), lọc theo cộng đồng (community-based), lọc kết hợp nhiều phương pháp (hybrid recommender system) [3]
Một số khái niệm liên quan đến ma trận tiện ích (Utility Matrix), hồ sơ sản phẩm (Item Profile), hồ sơ người dùng (User Profile), khoảng cách cosine, khoảng cách jaccard trong phần này có thể tham khảo thêm trong [8] Các khái niệm về stoschatastic gradient descent (SGD), k-láng ghiềng gần nhất có thể tham khảo thêm trong [14]
2.1 Các kỹ thuật trong hệ thống gợi ý
2.1.1 Lọc dựa trên nội dung
Lọc dựa trên nội dung tập trung vào các thuộc tính, đặc điểm, nội dung của sản phẩm
mà người dùng quan tâm Vì vậy, ý tưởng của kỹ thuật lọc dựa theo nội dung là tính toán độ tương tự, liên quan giữa các sản phẩm, lưu lại những đánh giá về sản phẩm của người dùng, sau đó gợi ý người dùng các sản phẩm gần giống nhất với những sản phẩm mà người dùng thích trong quá khứ
Lấy ví dụ minh họa, giả sử các sản phẩm trên google play store, hình minh họa ở dưới sẽ biểu diễn các cột thể hiện tính năng, đặc điểm của sản phẩm, các hàng đại diện cho các sản phẩm Các ô được đánh dấu là thuộc tính của sản phẩm
Trang 16Hình 1: Ví dụ minh họa lọc theo nội dung với các sản phẩm trên google play store
Để có thể đưa ra các gợi ý cho người dùng, hệ thống cần tính toán ma trận đo độ tương tự giữa các sản phẩm Khi đó giả sử sản phẩm ở dòng thứ 4 có độ tương tự lớn nhất với sản phẩm ở dòng thứ 3 Mà trước đó người dùng đã thích sản phẩm ở dòng thứ 3, khi đó hệ thống nên gợi ý sản phẩm ở dòng thứ 4 tới người dùng
Trang 17Hình 2: Ví dụ về ma trận tiện ích thể hiện đánh giá về phim
Mục đích của hệ thống là phải điền hết tất cả các ô còn thiếu trong ma trận tiện ích Vốn dĩ người dùng thường rất ít khi đánh giá trực tiếp các sản phẩm, dẫn đến ma trận tiện ích thường rất thưa Vì vậy hệ thống thường phải hỏi ý kiến đánh giá người dùng hoặc là thu thập các tương tác ngầm của người dùng
● Tập các diễn viên trong một bộ phim Một số người xem có thể thích xem các bộ
phim của những diễn viên mà họ yêu thích
● Đạo diễn của bộ phim Những người xem thường hay xem những bộ phim của
những đạo diễn mà họ yêu thích
● Năm sản xuất bộ phim
● Thể loại của bộ phim Đây là đặc điểm hay được sử dụng nhất để gợi ý người
dùng
Trang 18Chúng ta có thể dễ dàng nhận ra các đặc điểm trên trong một bộ phim: diễn viên, đạo diễn, năm sản xuất, thể loại… tất cả chúng sẽ cấu thành nên một hồ sơ của bộ phim, từ đó nhận dạng bộ phim đó
c) Hồ sơ người dùng
Bên cạnh việc xây dựng hồ sơ sản phẩm, chúng ta cũng cần phải tạo một bộ hồ sơ người dùng, vì bản chất của lọc dựa trên nội dung là cá nhân hoá thói quen người dùng và không bị ảnh hưởng bởi người dùng khác nên việc xây dựng một hồ sơ người dùng là một việc cần thiết
Chúng ta đã có một ma trận tiện ích thể hiện sự liên kết giữa người dùng và sản phẩm Từ đây chúng ta các thể xây dựng hồ sơ người dùng Các ô trong ma trận thể hiện mức độ quan tâm của người dùng tới sản phẩm Giá trị trong đó có thể là 0 (người dùng không thích), 1 (người dùng thích) hoặc là các giá trị thực từ 1 đến 5 được người dùng đánh giá sản phẩm Trên thực tế thì việc các ô này trống khá nhiều, việc phải hoàn thiện các ô trống này sẽ tuỳ vào từng hoàn cảnh, mục đích Ví dụ xét trong trường hợp người dùng thể hiện độ quan tâm của họ tới sản phẩm bằng việc đánh giá từ 1 đến 5, khi đó chúng ta có thể sử dụng phương pháp chuẩn hóa để có thể hoàn thiện các ô bị thiếu giá trị
d) Gợi ý sản phẩm tới người dùng
Khi đã có được hồ sơ sản phẩm và hồ sơ người, chúng ta có thể sử dụng phương pháp dùng độ đo khoảng cách Cosine Cụ thể là chúng ta sẽ lấy cosin giữa vector hồ
sơ sản phẩm và vector hồ sơ người dùng Từ giá trị đo được sẽ ước tính ra mức độ quan tâm của người dùng tới sản phẩm Phương pháp này cũng thường được áp dụng thêm kỹ thuật siêu phẳng ngẫu nhiên (random-hyperplane) và locality-sensititive-hashing (LSH) để tăng độ hiệu quả
Bên cạnh đó thì một phương pháp đang được sử dụng nhiều trong thời gian gần đây
đó là sử dụng các thuật toán phân lớp của khai phá dữ liệu Chúng ta có thể coi tập
Trang 19dữ liệu có sẵn từ việc xây dựng hồ sơ người dùng và hồ sơ sản phẩm làm dữ liệu đầu vào, sau đó sử dụng các thuật toán như cây quyết định, SVM, hồi quy tuyến tính để đưa ra các dự đoán về mức độ quan tâm của người dùng
2.1.2 Lọc cộng tác
Bây giờ chúng ta sẽ đưa ra một cách tiếp cận khác để đưa ra gợi ý cho người dùng Thay vì sử dụng các đặc điểm từ sản phẩm để tính toán độ tương tự giữa chúng, thì chúng ta sẽ tập trung vào độ tương tự giữa các người dùng [14] Những người dùng
sẽ có độ tương tự gần với nhau hơn nếu như khoảng cách cosine hay jaccard của họ lớn Quá trình xác định người dùng có độ tương tự phù hợp nhất và gợi ý các sản phẩm mà người dùng tương tự cũng thích đó được gọi là phương pháp lọc cộng tác
Trang 20Hình 3: Ví dụ về lọc cộng tác gợi ý phim cho người lớn, trẻ em
Xét ma trận tiện ích trên với các cột là người dùng Các hàng là các sản phẩm và các giá trị trong bảng là thể hiện mức độ quan tâm của người dùng tới sản phẩm
▪ Khoảng cách Jaccard
Định nghĩa: Cho 𝑈 là tập hữu hạn các đối tượng và 𝑋, 𝑌 ∈ 𝑈 Khi đó biểu thức
𝐷(𝑋, 𝑌) = 1 − |𝑋∩𝑌|
| 𝑋∪𝑌 | được gọi là khoảng cách jaccard giữa X và Y
Xét ví dụ về ma trận tiện ích trên hình 2 giữa 2 users: A, B
Ta thấy 𝐴 ∩ 𝐵 = {người dơi, titanic, 50 sắc thái} = 3, 𝐴 ∪ 𝐵 = {người dơi, người
sắt, avatar, titanic, 50 sắc thái} = 5 Khi đó 𝐷(𝐴, 𝐵) = 1 − 3
5 = 2
5 Như vậy dễ
Trang 21thấy A, B khá gần nhau Tính toán tương tự ta có 𝐷(𝐴, 𝐶) = 2
5 Ta nói B gần A ngang
C
Khoảng cách jaccard có hạn chế đó là nó không thể hiện được mức độ quan tâm giữa những người dùng, dẫn đến thiếu thông tin quan trọng khi ta xét chi tiết hơn Nó chỉ phù hợp khi ma trận tiện ích biểu diễn 0, 1 hay là người dùng thích hay không thích
▪ Khoảng cách Cosine
Định nghĩa: Là một thước đo đo sự tương tự giữa hai vector khác vector 0 Nó trả
về cosin của góc giữa hai vector trong một không gian đa chiều Góc càng nhỏ thì
độ tương tự càng cao
Đây là phương thức được sử dụng khá phổ biến khi tính khoảng cách
Gọi 𝑢1, 𝑢2 là các vector tương ứng Khi đó:
Trang 22Phương pháp này nó thể hiện rõ được mức độ quan tâm của người dùng tới sản phẩm, khắc phục được hạn chế của khoảng cách jaccard nên được áp dụng khá phổ biến Trong bài nghiên cứu này chúng ta sẽ áp dụng khoảng cách cosine
Tuy nhiên, ma trận tiện ích thường thiếu rất nhiều dữ liệu, do người dùng thường rất
ít khi đánh giá sản phẩm Mà để đo được độ tương tự giữa những người dùng, chúng
ta phải có một vector đầy đủ, chính vì thế chúng ta cần phải chuẩn hoá dữ liệu trước khi tính độ đo
Chúng ta có thể điền các giá trị bị thiếu bằng giá trị 0 Nhưng nếu điền 0, chúng ta lại gán cho người dùng không thích sản phẩm đó Chính vì thế, có một cách tối ưu hơn, đó là chúng ta sẽ gán những giá trị bị thiếu bằng giá trị trung bình các đánh giá của người dùng Tiếp theo chúng ta sẽ trừ đi giá trị mỗi ô bằng giá trị trung bình đánh giá Các giá trị âm khi đó thể hiện người dùng không thích sản phẩm, các giá trị dương thể hiện người dùng thích sản phẩm
b) Dự đoán
Một trong những phương pháp để gợi ý sản phẩm cho người dừng dựa trên những người dùng khác đó là k láng giềng gần nhất Phương pháp đơn giản, dễ hiểu, lại áp dụng khá hiệu quả đối với lượng dữ liệu lớn, chính vì thế được áp dụng khá phổ biến Ngày nay, với việc phát triển của học máy, các phương pháp học sâu cũng tỏ
ra khá hiệu quả khi áp dụng vào dự đoán sản phẩm cho người dùng Chúng ta sẽ trình bày ở chương sau Với mục đích là hiệu về cách dự đoán lọc cộng tác, tôi sẽ trình bày phương pháp k láng giềng gần nhất trong phần này
Công thức phổ biến được áp dụng dự đoán đánh giá của người dùng u cho sản phẩm 𝑖:
𝑦̂𝑖,𝑢 = ∑𝑢𝑗∈𝑁(𝑢,𝑖) 𝑦𝑖,𝑢𝑗𝑠𝑖𝑚(𝑢, 𝑢𝑗)
∑𝑢
𝑗 ∈𝑁(𝑢,𝑖) |𝑠𝑖𝑚(𝑢, 𝑢𝑗)|
Trang 23Trong đó 𝑁(𝑢, 𝑖) là tập hợp 𝑘 người dùng lân cận nhất của người dùng 𝑢 đã đánh giá sản phẩm 𝑖
có nhiều khả năng thích hơn
2.1.3 Lọc theo nhân khẩu học
Kỹ thuật gợi ý này dựa trên hồ sơ nhân khẩu học của người dùng Mỗi người dùng
sẽ có một hồ sơ nhân khẩu học, từ đó các gợi ý sẽ được đưa ra theo những nhóm khác nhau Ví dụ như đối với tập người dùng đa quốc gia, các gợi ý sẽ được đưa ra theo từng quốc gia, khu vực của họ Hay theo từng độ tuổi, đưa ra các sản phẩm phù hợp Cách tiếp cận này khá phổ biến trong tiếp thị nhưng đối với hệ thống gợi ý thì việc nghiên cứu vẫn còn đang rất hạn chế [15]
Trang 242.1.4 Lọc dựa trên tri thức
Kỹ thuật dựa trên tri thức để gợi ý sản phẩm là một loại riêng trong hệ thống gợi ý, được dựa trên các kiến thức rõ ràng về sản phẩm, được đưa ra bởi những yêu cầu cụ thể từ phía người dùng Ví dụ như sản phẩm nào thì nên được gợi ý trong ngữ cảnh nào [16, 17] Trong nhiều tình huống khác nhau, kỹ thuật này sẽ được thay thế cho phương pháp lọc cộng tác hay lọc dựa trên sản phẩm không thể sử dụng
2.1.5 Lọc dựa trên cộng đồng
Kỹ thuật này lại dựa trên mối quan hệ của người dùng Cụ thể là mỗi người dùng sẽ
có 1 mạng lưới các mối quan hệ riêng Và từ những sở thích của những người trong mạng lưới đó, hệ thống sẽ đưa ra các đề xuất tới người dùng Hạn chế của kỹ thuật này đó là khó có thể xác định được mạng lưới của người dùng và cần nhiều thông tin từ những người dùng trong mạng lưới đó [18]
2.1.7 Đánh giá
Đánh giá là một giai đoạn quan trọng sau khi khởi chạy hệ thống gợi ý Khi các kỹ thuật, thuật toán đưa ra các dự đoán để gợi ý cho người dùng nhưng chưa chắc là người dùng đã thích sản phẩm đó Vậy nên chúng ta cần đánh giá lại sau mỗi lần đưa
ra gợi ý để phù hợp hơn với người dùng
Có nhiều phương pháp để đánh giá một hệ thống gợi ý [10]: Độ đo đánh giá tính chính xác dự đoán (Measuring Ratings Prediction Accuracy), Độ lường dự đoán sử dụng (Measuring Usage Prediction), Độ đo xếp hạng (Ranking Measures ) Trong
Trang 25số đó phương pháp đánh giá tính chính xác dự đoán được sử dụng rộng rãi, phổ biến nhất với việc sử dụng trung bình bình phương sai số (Root Mean Squared Error) Phương pháp này vừa đơn giản mà độ hiệu quả lại cao
● 𝑟̂𝑢,𝑖 là đánh giá dự đoán của người dùng 𝑢 lên sản phẩm 𝑖
● 𝑟𝑢,𝑖 là giá trị đánh giá thực tế của người dùng 𝑢 lên sản phẩm 𝑖
2.2 Mạng nơ ron học sâu
Các hệ thống gợi ý ngày nay đang được sử dụng rộng rãi bởi các công ty thương mại điện tử, dịch vụ trên toàn thế giới để cung cấp các mặt hàng phù hợp nhất cho người dùng của họ Với sự phát triển mạnh mẽ của kỹ thuật học sâu trong nhận dạng ảnh,
xử lý ngôn ngữ tự nhiên Một phương pháp tiếp cận mới đó là áp dụng học sâu vào
hệ thống gợi ý, hứa hẹn nhiều thành tựu, tiến bộ hơn nữa trong hệ thống gợi ý
Đã có một số nghiên cứu hay các hệ thống thực tế về sử dụng học sâu trong việc gợi
ý sản phẩm cho thấy hiệu quá đáng ngờ Phương pháp học sâu cung cấp sự hiểu biết tốt hơn về người dùng, cũng như các đặc điểm của sản phẩm, các tương tác người dùng
Trang 26Perceptron nhận dữ liệu đầu vào là các tín hiệu nhị phân (0, 1) và đầu ra là một tín hiệu nhị phân duy nhất
Dưới đây là một hình mô tả đơn giản perceptron với các tín hiệu đầu vào:
Hình 4: Minh họa về perceptron
● 𝑦 là dữ liệu đầu ra được xác định qua một hàm chuyển đổi sign
Bài toán perceptron được phát biểu như sau: Cho hai lớp được gán nhãn, tìm một đường phẳng có thể chia tách hai lớp đó sang hai phía khác nhau của đường phẳng [20]
Trang 27Giả sử 𝑋 = [𝑥1, , 𝑥𝑁] ∈ 𝑅𝑑×𝑁 là một ma trận chứa các điểm dữ liệu 𝑥𝑖 trong không gian 𝑑 chiều, gọi 𝑦 = [𝑦1, , 𝑦𝑁] là các nhãn tương ứng với các điểm 𝑥𝑖, 𝑦𝑖 = 1 nếu 𝑥𝑖 thuộc lớp xanh, 𝑦𝑖 = −1 nếu 𝑥𝑖 thuộc lớp đỏ
Hình 5: Ví dụ về perceptron phân loại hai lớp
Giả sử ta có phương trình chia tách hai lớp trên như sau:
có công thức:
𝜎(𝑥) = 1
1 + 𝑒−𝑧
Trang 28Khi đó hàm sigmoid sẽ được gọi là một hàm kích hoạt Bên cạnh hàm sigmoid chúng
ta có thể sử dụng một số hàm tương tự khác như hàm tanh, ReLU Một cách tổng quát, chúng ta có thể biểu diễn lại hàm perceptron bởi một hàm kích hoạt 𝑓(𝑧):
𝜎 = 𝑓(𝑧) = 𝑓(𝑤𝑇𝑥)
Trang 29Một điểm cần lưu ý là các hàm kích hoạt buộc phải là hàm phi tuyến Vì nếu nó là tuyến tính thì khi kết hợp với phép toán tuyến tính 𝑤𝑇 ∗ 𝑥 thì kết quả thu được cũng
sẽ là một thao tác tuyến tính dẫn tới chuyện nó trở nên vô nghĩa [21]
2.2.3 Mạng nơ ron
Mạng nơ ron là một bước tiến mới trong học máy được phát triển dựa trên nền tảng thuật toán perceptron, là một mô hình toán học mô phỏng lại nơ ron trong hệ thống thần kinh của con người [22]
Một ví dụ về mô hình toán học của mạng nơ ron, hàm kích hoạt 𝑦 = 𝑠𝑖𝑔𝑛(𝑥) của perceptron được thay bằng một hàm kích hoạt phi tuyến 𝑓(𝑥) khác:
Hình 7: Ví dụ về mô hình toán học của mạng nơ ron
Các 𝑥1… 𝑥𝑁 là các dữ liệu đầu vào, 𝑤1 𝑤𝑁 là các trọng số, 𝑓(𝑥) là hàm kích hoạt
và 𝑦 là dữ liệu đầu ra