BÁO CÁO, THIẾT KẾ VÀ TỔ CHỨC, SẢN XUẤT ĐA PHƯƠNG TIỆN, XÂY DỰNG ỨNG DỤNG, NGHE NHẠC CHO GAME, LIÊN QUÂN MOBILE
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA ĐA PHƯƠNG TIỆN
-BÁO CÁO
THIẾT KẾ VÀ TỔ CHỨC SẢN XUẤT ĐA PHƯƠNG TIỆN
ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG NGHE NHẠC
CHO GAME LIÊN QUÂN MOBILE
Nguyễn Minh Trung Nguyễn Hồng Văn
Trang 23.THÔNG TIN PHẢN HỒI TỪ NGƯỜI DÙNG VÀ HAI DẠNG BÀI TOÁN CHÍNH TRONG RS 7
Trang 3DANH MỤC HÌNH ẢNH
Hình 1 Ma trận biểu diễn dữ liệu trong RS (user-item-rating matrix) 7
Hình 2 Các thành phần cơ bản của tiến trình gợi ý truyền thống 7
Hình 3 Kiến trúc tổng quan của hệ thống lọc cộng tác 9
Hình 4 Minh họa kỹ thuật phân rã ma trận 10
Hình 5 Gợi ý sản phẩm thường được mua cùng nhau 10
Hình 6 Biểu diễn dữ liệu trong MRMF 11
Hình 7 Mô hình ngữ cảnh 13
Hình 8 Cấu trúc phân cấp của ngữ cảnh trong hệ gợi ý 16
Hình 9 Cấu trúc OLAP 3 chiều User x Item x Time trong hệ gợi ý 17
Hình 10 Các cơ chế tích hợp thông tin ngữ cảnh vào hệ gợi ý 18
Hình 11 Bước hiệu chỉnh danh sách gợi ý trong lọc sau theo ngữ cảnh 18
Hình 12 Sử dụng phương pháp Pre-filtering 26
Hình 13 Minh họa kỹ thuật phân rã ma trận 27
Hình 14 Thiết kế tương tác ( chi tiết xem trong file hình ảnh đi kèm ) 31
Hình 15 Biểu đồ Use Case 33
Hình 16 Biểu đồ lớp 45
Hình 17 Biểu đồ tuần tự Hiển thị Playlist Nhân vật 46
Hình 18 Biểu đồ tuần tự hiển thị bảng XH nhạc 47
Hình 19 Biểu đồ tuần tự Hiển thị List nhạc đề cử 48
Hình 20 Biểu đồ tuần tự Thêm 1 bản nhạc 50
Hình 21 Biểu đồ tuần tự Xóa 1 bản nhạc 51
Hình 22 Biểu đồ tuần tự xem thông tin chi tiết 52
Hình 23 Biểu đồ tuần tự xem Playlist nhân vật tiếp theo 53
Hình 24 Biểu đồ trạng thái Người dùng khi cập nhật thông tin 54
Hình 25 Biểu đồ trạng thái List nhạc nhân vật khi hiển thị 55
Hình 26 Biểu đồ trạng thái List nhạc đề cử khi hiển thị 56
Hình 27 Trạng thái List nhạc XH khi hiển thị 57
Hình 28 Trạng thái List nhạc Nhân vật khi thêm bản nhạc 58
Hình 29 Trạng thái List nhạc NV khi xóa 1 bản nhạc 59
Hình 30 Trạng thái của Bản nhạc khi người dùng xem chi tiết 60
Hình 31 Kiến trúc nền tảng mã nguồn mở CARSKIT 61
Hình 32 Lược đồ CSDL 63
Hình 33 Giao diện chính 64
Hình 34 Giao diện thông tin cá nhân 65
Hình 35 Giao diện List nhạc NV 66
Hình 36 Giao diện List nhạc NV 67
Hình 37 Giao diện nhạc đề cử 68
Hình 38 Giao diện nhạc đề cử 69
Hình 39 Giao diện bảng Xếp hạng và xem thông tin chi tiết bản nhạc 70
Hình 40 Giao diện bảng Xếp hạng và xem thông tin chi tiết bản nhạc 71
DANH MỤC BẢNG Bảng 1 Bảng ma trận trọng số (đánh giá) của hệ gợi ý 9
Trang 4Bảng 2 Đặc trưng ngữ cảnh 15
Bảng 3 Bảng 2: Phân loại các chiều của ngữ cảnh 15
Bảng 4 Mô tả hoạt động hệ thống 25
Bảng 5 Mô tả hoạt động hệ thống 25
Bảng 6 Mô tả hoạt động hệ thống 26
Bảng 7 Mô tả hoạt động hệ thống 26
Bảng 8 Gợi ý dữ liệu 28
Bảng 9 Tập dữ liệu sau khi sử dụng Pre-filtering 28
Bảng 10 Kịch bản đăng nhập 35
Bảng 11 Kịch bản đăng ký 35
Bảng 12 Kich bản chỉnh sửa thông tin cá nhân 36
Bảng 13 Kịch bản chỉnh sửa Playlist 1 nv 36
Bảng 14 Kịch bản phát nhạc 37
Bảng 15 Kịch bản phát tất cả 37
Bảng 16 Kịch bản xem chi tiết 1 bản nhạc 37
Bảng 17 kịch bản Xóa 1 bản nhạc khỏi List nhạc Nhân vật 38
Bảng 18 Kịch bản Hiển thị nhạc đề cử 38
Bảng 19 kịch bản Gợi ý nhạc theo ngữ cảnh 39
Bảng 20 kịch bản nthêm bản nhạc 39
Bảng 21 Hiển thị bảng xếp hạng 40
Bảng 22 Xem Playlist nhạc của nhân vật tiếp theo 40
Bảng 23 lớp bản nhạc thuộc tính và phương thức 42
Bảng 24 Lớp Playlist 42
Bảng 25 Lớp List nhạc nhân vật 43
Bảng 26 Lớp List nhạc đề cử 44
Bảng 27 Lớp List nhạc xếp hạng 44
Bảng 28 Lớp Người dùng 45
Bảng 29 Lớp Nhân vật 45
Trang 5MỞ ĐẦU
Ứng dụng và dịch vụ di động đã và đang trở thành phương tiện giao tiếp thông tinchính giữa người dùng – người dùng, người dùng – nhà cung cấp dịch vụ Bàitoán làm thế nào để các ứng dụng dịch vụ di động ngày càng trở nên thông minhhơn, linh hoạt hơn, hiệu quả hơn trong việc trao đổi thông tin, đáp ứng các nhucầu và sở thích cá nhân của người dùng ngày càng trở nên cần thiết và khẩn cấp.Giải pháp cá nhân hóa các ứng dụng và dịch vụ di động theo hướng tiếp cận ngữcảnh người dùng dựa trên các thông tin được thu thập qua việc trao đổi dữ liệunhư vị trí, thời gian, thiết bị, thói quen, sở thích, … của người dùng đã được ápdụng để giải quyết bài toán này và sẽ trở thành xu hướng phát triển công nghệ tấtyếu nhằm mang lại cho người sử dụng các thiết bị di động các tiện ích tốt nhất,đáp ứng đầy đủ các nhu cầu cá nhân trong quá trình sử dụng thông tin thông quacác ứng dụng dịch vụ di động
Theo thống kê của IFL Science ,con người tại ra 2,5 triệu tỷ (quintillion) byte dữliệu mỗi ngày Với số lượng dữ liệu khổng lồ như trên nhưng thực tế mỗi ngườichỉ có thể tiếp cận tới 1 lượng dữ liệu rất nhỏ Ví dụ như trang web nghe nhạcZingmp3 có hàng trăm nghìn bản nhạc khác nhau , nhưng mỗi người chỉ ngheđược khoảng vài chục đến vài trăm bản nhạc Với việc người dùng chỉ tiếp cậnđược ít nhạc như vậy nên rất khó để người quản lí có thể đáp ứng được yêu cầunghe nhạc ngày càng cao của mỗi khách hàng bởi mỗi khách hàng đều có sở thích
và ngữ cảnh nghe nhạc riêng như đang tập thể dục, chơi game Đây là 1 tháchthức lớn với các dịch vụ nghe nhạc trực tuyến cần giải quyết để giúp khách hàngkhông cần tốn nhiều thời gian mà vẫn có thể tìm kiếm được những bản nhạc phùhợp nhất với bản thân
Với thực trạng nêu trên, báo cáo này hướng đến mục tiêu nghiên cứu xây dựnggiải pháp cá nhân hoá các ứng dụng và dịch vụ đi động theo mô hình hướng ngữcảnh hiện thời người dùng Đồng thời áp dụng kỹ thuật gợi ý dựa trên thông tinngữ cảnh trong việc xây dựng một ứng dụng nghe nhạc cho “game liên quânmobie” giúp hỗ trợ người chơi nhanh chóng lựa chọn được các bản nhạc phù hợp
để có thể vừa nghe vừa chơi game một cách thoải mái nhất
Trang 6A Tổng quan về Hệ thống gợi ý theo ngữ cảnh ( CARS – Context Aware
là một sản phẩm, bộ phim, video clip, music, sách, ) nhằm gợi ý các mục thông tin “cóthể quan tâm” bởi người dùng Hệ 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 từ người dùng Dữ liệu đó được chia làm 2 loại là tường minh(explicit) bằng cách yêu cầu người dùng phản hồi trực tiếp và tiềm ẩn (implicit) bằngcách tự động suy luận dựa trên những tương tác của người dùng với hệ thống như: vị tríthay đổi, số lần nhấp chuột, thời gian quan sát Trong hầu hết các trường hợp, bài toángợi ý được coi là bài toán dự đoán việc xếp hạng (rating) của các sản phẩm (phim, sảnphẩm tiêu dùng, sách, nhạc…) chưa được người dùng biết đến Việc dự đoán này thườngdự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
Hệ thống gợi ý đã chứng minh được ý nghĩa to lớn: giúp cho người sử dụng trực tuyếnđối phó với tình trạng quá tải thông tin Hệ thống gợi ý trở thành một trong những công
cụ mạnh mẽ và phổ biến trong thương mại điện tử Mục đích của hệ thống gợi ý là dựavào hành vi từ thói quen, nhu cầu trong quá khứ của người sử dụng để dự đoán sở thíchtrong tương lai của họ.RS sẽ đưa ra các gợi ý dựa trên phản hồi trong quá khứ của ngườidùng (như bình luận, đánh giá, ) trên sản phẩm, bài hát, bộ phim, điểm du lịch,
Các hệ thống gợi ý nổi tiếng hiện có như: gợi ý sản phẩm của Amazon/Ebay, gợi ý phim/video clip của NetFlix/Youtube, gợi ý bài đăng của Facebook, Zalo RS đã cho thấyđược ý nghĩa to lớn của nó trong việc giúp người dùng giải quyết tình trạng quá tải thôngtin ngày càng tăng hiện nay
Có hai loại mô hình RS được nghiên cứu và ứng dụng trong thực tiễn đó là: hệ thống gợi
ý 2 chiều (2D RS) và hệ thống gợi ý theo ngữ cảnh (đa chiều, thông thường là 3 chiều –3D RS)
2 Các thành phần cơ bản của 1 hệ thống gợi ý
Trong RS, thông thường người ta quan tâm đến ba thông tin chính là người dùng (user), mục tin (item, item có thể là sản phẩm, bộ phim, bài hát, bài báo, tùy hệ thống), và phản hồi (feedback) của người dùng trên mục tin đó (thư ờng là các xếp hạng/đánh giá – rating biểu diễn mức đ ộ thích/quan tâm của họ) Các thông tin này được biểu diễn thông
qua một ma trận Ở đó, mỗi dòng là một user, mỗi cột là một item, và mỗi ô là một giá trịphản hồi (ví dụ, xếp hạng) biểu diễn “mức độ thích” của user trên item tương ứng Các ô
có giá trị là những item mà các user đã xếp hạng trong quá khứ Những ô trống là nhữngitem chưa được xếp hạng (điều đáng lưu ý là mỗi user chỉ xếp hạng cho một vài itemtrong quá khứ, do vậy có rất nhiều ô trống trong ma trận này – còn gọi là ma trận thưa –sparse matrix)
Trang 7
Nhiệm vụ chính của RS là dựa vào các ô đã có giá trị trong ma trận trên (dữ liệu thuđược từ quá khứ), thông qua mô hình đã đư ợc xây dựng, RS dự đoán các ô còn trống(của user hiện hành), sau đó sắp xếp kết quả dự đoán (ví dụ, từ cao xuống thấp) và chọn
ra Top-N items theo thứ tự, từ đó gợi ý chúng cho người dùng
Một cách hình thức, gọi U là tập người dùng, I là tập các sản phẩm có thể được gợi ý.Tập sản phẩm I có thể lên đến hàng trăm, hàng nghìn thậm chí là hàng triệu sản phẩm.Tương tự như vậy, tập người dùng U cũng có thể rất lớn lên đến hàng triệu trường hợp
Để dự đoán xếp hạng (hay tính tiện ích) của sản phẩm i đối với người dùng u thì người tađưa ra hàm xếp hạng (rating) r: U x I-> R, trong đó R là tập các giá trị xếp hạng được thứ
tự toàn phần (ví dự số nguyên dương hoặc số thực trong tập xác định) Mô hình này cònđược gọi với tên gọi là mô hình dự đoán 2 chiều (two-dimensional recommendationframework)
Với mỗi người dùng u ∈ U, chúng ta có thể chọn được sản phẩm i ∈ I sao cho hàm xếphạng của người dùng u đối với item i là lớn nhất
dụ người dùng Alice đánh giá sản phẩm 3 có trọng số là 4 như trong bảng sau
Hình 1 Ma trận biểu diễn dữ liệu trong RS (user-item-rating matrix)
Hình 2 Các thành phần cơ bản của tiến trình gợi ý truyền thống
Trang 8Item1 Item2 Item3 Item4 Item5
Bảng 1 Bảng ma trận trọng số (đánh giá) của hệ gợi ý
3.Thông tin phản hồi từ người dùng và hai dạng bài toán chính trong RS
Trong RS, giá trị phản hồi (feedback) r ui của mỗi người dùng trên mục tin sẽ được ghinhận lại để làm cơ sở cho việc dự đoán các giá trị kế tiếp Tùy theo hệ thống mà giá trịnày sẽ có ý nghĩa khác nhau, ví dụ nó có thể dùng để đo độ “phù hợp” hay “mức độthích” (thường là các đánh giá trên các s ản phẩm) trong các hệ thống thương mại điện tửhay “năng lực/kết quả thực hiện” của người dùng trong các hệ thống e-learning
Giá trị r ui có thể được xác đ ịnh một cách tường minh (explicit feedbacks) như thông qua
việc đánh giá/xếp hạng (ví dụ, rating từ đến ; hay like (1) và dislike (0),…) mà u đã bình chọn cho i; hoặc r ui có thể được xác định một cách không tường minh (implicit
feedbacks) thông qua số lần click chuột, thời gian mà u đã duyệt/xem i,…
Có 2 dạng bài toán chính trong RS là dự đoán xếp hạng (rating prediction) của các hệ thống có phản hồi tường minh và dự đoán mục thông tin (item prediction/
recommendation) là việc xác định xác suất mà người dùng thích mục tin tương ứng
• Nhóm giải thuật lọc trên nội dung (Content-based Filtering): Gợi ý các item dựavào hồ sơ (profiles) của người dùng hoặc dựa vào nội dung/thuộc tính(attributes) của những item tương tự như item mà người dùng đã chọn trong quákhứ
• Nhóm lai ghép: Kết hợp cả 2 cách trên
• Nhóm kỹ thuật không cá nhân hóa (non-personalization)
Một trong những khuyết điểm của phương pháp lọc theo nội dung là khó khăn trong việcthu thập thông tin, trong khi phần lớn các mô hình dựa trên lọc cộng tác chỉ cần 3 thôngtin (user id, item id, feedback) là có thể hoạ t đ ộng tốt Do vậy khuynh hướng hiện nay
đa phần các nhà nghiên cứu thiên về nhóm lọc cộng tác Phương pháp này dựa trên
Trang 9những hành vi quá khứ của người dùng, ví dụ như: lịch sử giao dịch, đánh giá sản phẩm,xem một bộ phim, nghe một bài hát, và đặc biệt là nó không cần thiết phải tạo ra các
hồ sơ tường minh (explicit feedback) cho người dùng Để gợi ý các sản phẩm cho ngườidùng, hệ thống lọc cộng tác cần so sánh các đối tượng cơ bản khác nhau như các sảnphẩm và người dùng Một hệ thống lọc cộng tác truyền thống thường có kiến trúc nhưsau:
Hình 3 Kiến trúc tổng quan của hệ thống lọc cộng tác
Do độ dài của tài liệu nên nhóm chỉ tóm tắt các kỹ thuật thông dụng và nổi trội ofthe-art) trong hệ thống gợi ý :
Có hai cách tiếp cận của lọc cộng tác theo mô hình K láng giềng là dựa trên người dùng(User_kNN) – dự đoán dựa trên sự tương tự giữa các người dùng và dựa trên mục tin(Item_kNN) – dự đoán dựa trên sự tương tự giữa các mục tin
Kỹ thuật k láng giềng dựa trên người dùng (User_kNN) xác định độ tương tự giữa haingười dùng thông qua việc so sánh các đánh giá của họ trên cùng sản phẩm, sau đó dựđoán xếp hạng trên sản phẩm i bởi người dùn
4.2.Kỹ thuật Phân rã ma trận (Matrix factorization - MF)
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 (Koren et al., 2009), nghĩa là X ~ WH T
Trang 10Hình 4 Minh họa kỹ thuật phân rã ma trận
Trong nhóm kỹ thuật này, do chúng khá đơn gi ản, dễ cài đ ặt nên nên thường được cácwebsite/hệ thống tích hợp vào, gồm cả các website thương mại, website tin tức, hay giảitrí Chẳng hạn như trong các hệ thống bán hàng trực tuyến, người ta thường gợi ý các sảnphẩm được xem/mua/bình luận/ nhiều nhất; gợi ý các sản phẩm mới nhất; gợi ý các sảnphẩm cùng loại/ cùng nhà sản xuất/ ; gợi ý các sản phẩm được mua/chọn cùng nhau Một
ví dụ khá điển hình là thông qua luật kết hợp (như Apriori), Amazon đã áp dụng kháthành công để tìm ra các sản phẩm hay được mua cùng nhau như minh họa trong Hình 4.Tuy vậy, bất lợi của các phương pháp này là không cá nhân hóa cho từng người dùng,nghĩa là tất cả các user đều được gợi ý giống nhau khi chọn cùng sản phẩm
Hình 5 Gợi ý sản phẩm thường được mua cùng nhau
Trang 114.4 Kỹ thuật Phân rã ma trận thiên vị (Biased matrix factorization - BMF)
Kỹ thuật Phân rã ma trận thiên vị BMF là một biến thể của kỹ thuật Matrix Factorization(MF) cộng thêm các giá trị thiên vị/lệch (biases)
Thực nghiệm đã cho th ấy, trong khá nhiều trường hợp, BMF cho kết quả tốt hơn hẵn sovới kỹ thuật MF (Koren et.al., 2009; Huỳnh Lý Thanh Nhàn và Nguyễn Thái Nghe,2013; Thai-Nghe et.al., 2011a, 2012)
4.5 Kỹ thuật phân rã ma trận đa quan h ệ (Multirelational Matrix Factorization MRMF)
-Kỹ thuật phân rã ma trận đa quan h ệ (Multi-relational Matrix Factorization – MRMF) là
kỹ thuật mở rộng từ kỹ thuật MF với ý tưởng là tận dụng tất cả các mối quan hệ có thể cótrong cơ sở dữ liệu của hệ thống
Nếu như trong MF, ta chỉ sử dụng 1 ma trận (tương ứng với 1 quan hệ trong sơ đồ ERD,
ví dụ như “Entity1-Relation1-Entity2” trong Hình 5 thì trong MRMF ta sẽ sử dụng tất cảcác ma trận tương ứng với các thực thể và các quan hệ có thể có, như minh họa :
Hình 6 Biểu diễn dữ liệu trong MRMF
5.Đánh giá hệ gợi ý
Các tiêu chí định lượng:
- Đánh giá độ chính xác của hàm dự đoán xếp hạng (rating prediction): sai số
bình phương trung bình (Mean square error – MSE), căn của sai số bìnhphương trung bình (Root mean square error – RMSE), sai số trung bình tuyệtđối (Mean absolute error – MAE)
- Đánh giá độ chính xác của hàm gợi ý (item recommendation):
Tiêu chí định tính:
- Tính mới của các gợi ý
- Tính đa dạng (Diversity) của các gợi ý
- Độ bao phủ của các gợi ý
- Sự hài lòng của người dùng
Trang 126.Các thách thức của hệ gợi ý truyền thống
Những thách thức từ khi hệ gợi ý được quan tâm phát triển đến nay có thể kế đến như dữliệu thưa, khả năng mở rộng phạm vi, biến thể từ (nhóm từ đồng nghĩa), nhập nhằngnghĩa, quyền riêng tư… Đặc tính những thách thức này cụ thể như sau:
Dữ liệu thưa (sparsity) Trường hợp thường thấy khi tập sản phẩm item thường lớn và
ngày càng được mở rộng thêm, lượng người dùng mới cũng tăng theo thời gian, cộngthêm người dùng chỉ xem một phần rất nhỏ trong danh sách sản phẩm đó, dẫn đến matrận user – item cực kỳ thưa Người dùng đặc biệt là người dùng tại Việt Nam cũngkhông có thói quen đưa ra đánh giá hay nhận xét cho sản phẩm họ xem hoặc mua, rất khó
để nhận định họ thích hay không Một khởi đầu khó cho nhóm người dùng mới và sảnphẩm mới, hay còn được biết đến là vấn đề cold start
Khả năng mở rộng phạm vi Khi số người dùng và sản phẩm ngày càng mở rộng, phạm vi
xử lý sẽ trở thành một vấn đề lớn
Sản phẩm mới, người dùng mới (cold-start) Những đối tượng này rất khó gợi ý nếu chưa
hề hoặc rất ít thông tin lịch sử trước đó Không chỉ những sản phẩm mới ngay cả nhữngsản phẩm mô tả cụ thể, chung chung sẽ gây nhầm Với người dùng mới hệ thống cần học
để hiểu về sở thích của họ, có một vài phương pháp đã được đề xuất để giải quyết vấn đềnày, là theo hướng lai, kết hợp các phương pháp, có thể là lọc cộng tác và nội dung, ngoài
ra còn có một kỹ thuật để xác định những sản phẩm tốt nhất cho người dùng mới được đềcập trong [17], đây là những kỹ thuật áp dụng cho chiến lược lọc cộng tác
Gian lận là khi những nhà cung cấp sản phẩm, hay dịch vụ có những thủ thuật giả thông
tin khách hàng, giúp họ tăng lợi ích
Dễ bị tấn công là vấn đề thưởng xảy ra như kiểu tấn công dịch vụ, làm trì trệ khả năng
cung cấp dịch vụ tới người dùng thực
Bảo mật riêng tư: xu hướng cá nhân hóa là khi hệ gợi ý cần hiểu rõ về từng người dùng Một số thách thức về môi trường như: Lượng bán lẻ, người dùng và sản phẩm có thể rất
lớn (lên tới hàng triệu); các ứng dụng thường yêu cầu kết quả trả về trong thời gian thực(không quá nửa giây) trong khi vẫn phải đáp ứng gợi ý chất lượng tốt; người dùng cũ córất nhiều thông tin thừa, người dùng mới lại thiếu thông tin và dữ liệu người dùng thì dễ
bị trôi mất
Ngoài ra còn rất nhiều vấn đề khác cần quan tâm như: sự đa dạng và chính xác, dễ dàng
bị tấn công, giá trị thời gian, đánh giá độ hiệu quả, giao diện người dùng,…
II Hệ thống gợi ý theo ngữ cảnh.
Các thông tin ngữ cảnh người dùng sẽ được mô hình hóa và tích hợp vào các hệ gợi ý,khi đó một hệ gợi ý dựa trên nhận thức ngữ cảnh (Context-awareness RecommenderSystem – CARS) [18] sẽ tính toán xếp hạng và gợi ý cho người dùng không chỉ dựa trênthông tin người dùng và sản phẩm như hệ gợi ý truyền thống mà còn sử dụng cả thông tinngữ cảnh liên quan Nếu gọi Contexts là tập ngữ cảnh thì hàm gợi ý khi đó được viết lạinhư sau:
r: Users x Items x Contexts -> Ratings
1.Ngữ cảnh là gì ?
1.1.Khái niệm ngữ cảnh
Theo từ điển của Webster (Noah Webster - Mỹ), ngữ cảnh là "toàn bộ tình huống, nền
tảng hay môi trường có liên quan tới một vài sự kiện xảy ra hoặc cá nhân nào đó" Định
Trang 13nghĩa này rất là chung khi sử dụng trong tính toán nhận biết ngữ cảnh.
Ngữ cảnh là một vấn đề chính trong trong tương tác giữa người và máy tính, miêu tả cácnhân tố xung quanh với ngữ nghĩa biểu đạt [1] Trong lĩnh vực nghiên cứu tính toán diđộng, tham số vị trí thường được dùng nhất để chỉ ngữ cảnh và cài đặt các ứng dụng nhậnbiết ngữ cảnh
Ngữ cảnh và nhận biết ngữ cảnh đã bắt đầu được nghiên cứu trong tính toán phân tán vớisức mạnh của các thành phần tính toán di động từ những năm 90 Những nghiên cứu từrất sớm này đã nhận biết vị trí của người dùng và sử dụng vị trí như là trung tâm của tínhtoán nhận biết ngữ cảnh
Cũng theo các định nghĩa trên chúng ta có thể thấy rằng các khía cạnh quan trọng nhấtcủa ngữ cảnh là: người dùng đang ở đâu, người dùng đang ở cùng ai và các tài nguyêngần đó Và ngữ cảnh này là cố định với những thay đổi của môi trường thực thi Môitrường ở đây gồm ba yếu tố:
- Môi trường tính toán: bộ xử lý có sẵn, các thiết bị truy cập cho người dùng với đầuvào và hiển thị, khả năng mạng, các kết nối, chi phí tính toán
- Môi trường người dùng: vị trí, tập những người gần kề, tình huống xã hội
- Môi trường vật lý: ánh sáng, mức độ ồn, mức độ nhiễu, …
Hình 7 Mô hình ngữ cảnh
1.2 Các đặc trưng của ngữ cảnh
Đặc trưng ngữ cảnh phụ thuộc vào hai yếu tố như: kiểu nhận biết ngữ cảnh, nguồn thu
thập Điều đó ảnh hưởng tới giá trị thuộc tính của ngữ cảnh Ví dụ nếu kiểu nhận biết ngữ
cảnh là các cảm biến thì khả năng tồn tại của thông tin ngữ cảnh là không cao, chất lượngthông tin có thể chưa tốt tại một thời điểm nhất định khi gặp các sự cố như: thiết bị có lỗi,mất mạng,…
Trang 14Do người dùng đặc tảtrực tiếp hoặc giántiếp qua chương trình)
Mãi mãi
Có thể không chắc chắn
Lỗi con người
Bảng 2 Đặc trưng ngữ cảnh
Ngoài ra khi nghiên cứu về các đặc trưng ngữ cảnh, còn một số vấn đề sau:
- Chưa xác định khi không có thông tin nào về vật chất là sẵn có
- Mơ hồ (tối nghĩa) khi có một số báo cáo khác nhau về vật chất, ví dụ 2 vị trí cùng
được đọc cho một người được lấy từ các thiết bị định vị riêng
- Không chính xác: khi trạng thái được báo cáo không đúng với trạng thái đúng, ví dụ
khi vị trí của 1 người được biết trong miền giới hạn, nhưng vị trí trong miền nàykhông được chốt cho mức độ yêu cầu chuẩn xác
- Sai: khi có lỗi giữa trạng thái được báo cáo và trạng thái thực của vật chất
dùng Vị trí, nhiệm vụ hiện thời hoặc có liên quan tới người hay đối tượng khác
Ngữ cảnh môi trường Thời tiết, tiếng ồn, thời gian
Trong RS hai chiều như đã trình bày, người ta thường biểu diễn dữ liệu vào ma trận
user-item do vậy chỉ quan tâm đến người dùng và mục tin là chính chứ không quan tâm đến các thông tin ngữ cảnh (context) bên ngoài có tác động đến quyết định của người dùng
hay không “Thông tin ngữ cảnh là những thông tin có thể mô tả được hoàn cảnh của
một thực thể” (Gediminas et.al., 2011) Ví dụ: thời gian, nơi chốn, thời tiết, tâm trạng…
là những thông tin ngữ cảnh, chúng có thể ảnh hưởng đến đánh giá của người dùng đốivới các item, từ đó dẫn đến sự ảnh hưởng của những gợi ý trong RS
Với hệ thống gợi ý theo ngữ cảnh (đa chiều), hàm dự đoán được bổ sung thêm thông tinngữ cảnh (Context) và trở thành:
Trang 15: U × I × C → R (C là thông tin ngữ cảnh)
Ví dụ, trong hệ thống gợi ý du l ịch, user là khách du lịch, item là những đ ịa điểm du
lịch, và ngữ cảnh có thể là thời gian (buổi sáng/tối, cuối tuần, mùa, lễ, tết, ), bạn đ ồng
hành (đi một mình, đi v ới bạn trai/bạn gái, đi v ới gia đình, tr ẻ nhỏ…)… Những đánh
giá cho m ột đi ểm du lịch bởi một người dùng có thể sẽ phụ thuộc và những ngữ cảnh
đó Ví dụ vào buổi tối mùa xuân đi cùng gia đình thì địa điểm ABC là hấp dẫn nhất,nhưng khi đi cùng bạn gái thì có thể địa điểm đó không phù hợp nữa
Trang 162.2 Cấu trúc thông tin ngữ cảnh trong hệ gợi ý
2.2.1 Cấu trúc dữ liệu phân cấp
Thông tin ngữ cảnh được định nghĩa bởi một tập K các chiều ngữ cảnh, mỗi chiều ngữcảnh K trong tập K được định nghĩa bởi một tập q thuộc tính K = (K1, , Kq), K có cấutrúc phân cấp và thể hiện cho một loại ngữ cảnh cụ thể Ngữ cảnh được xác định bởithuộc tính Kq sẽ có mức định nghĩa thấp hơn so với ngữ cảnh được xác định bởi thuộctính K1
Hình 8 Cấu trúc phân cấp của ngữ cảnh trong hệ gợi ý
2 2.3.Cấu trúc dữ liệu đa chiều
Nếu xem ngữ cảnh như một chiều dữ liệu trong hệ gợi ý bên cạnh các chiều User, vàItem, khi đó có thể biểu diễn dữ liệu của hệ gợi ý dựa trên ngữ cảnh dưới cấu trúc dữ liệu
đa chiều OLAP Cụ thể, gọi D1, D2, , Dn là các chiều dữ liệu, khi đó hai chiều dữ liệuđầu tiên sẽ là User, Item, các chiều dữ liệu còn lại sẽ là ngữ cảnh Di sẽ là tập con của tậptích Đề các (Cartesian) bao gồm cácthuộc tính Aij, (j=1, ,ki)
Khi đó gọi S là không gian gợi ý, S được xác định bởi tích đề các của các thuộc tính D1,D2, , Dn, đồng thời hàm xếp hạng R cũng sẽ được xác định như sau:
: 1 × 2 × … × −>
Như trong hình 8, với User có Id là 101, Item với id là 7, thì đánh giá xếp hạng rating sẽ
là 6 trong suốt tuần, R(101,7,1) = 6
Trang 17Hình 9 Cấu trúc OLAP 3 chiều User x Item x Time trong hệ gợi ý
2.3 Cơ chế tích hợp ngữ cảnh vào hệ gợi ý
Gợi ý dựa trên tìm kiếm và truy vấn hướng ngữ cảnh (context-driven querying and search):
Hướng tiếp cận này được ứng dụng rộng rãi trong các hệ gợi ý di động và du lịch[20,21,22] Các hệ thống theo cách tiếp cận này sử dụng thông tin ngữ cảnh thu thậpđược (từ người dùng, từ thiết bị di động, ) để thực hiện truy vấn và tìm kiếm các tập sảnphẩm và cung cấp cho người dùng sản phẩm phù hợp nhất
Gợi ý dựa trên suy luận và tối ưu tham chiếu ngữ cảnh (contextual preference eliction and estimation):
Một hướng tiếp cận khác trong việc ứng dụng thông tin ngữ cảnh vào trong hệ gợi ý làgợi ý dựa trên suy luận và tối ưu tham chiếu ngữ cảnh Các kỹ thuật thuộc hướng tiếp cậnnày sẽ cố gắng mô hình hóa và học các sở thích của người dùng bằng cách theo dõi tươngtác của người dùng cần xem xét và các người dùng khác đối với hệ thống, hoặc bằng cáchthu thập thông tin phản hồi của người dùng đối với các sản phẩm đã được hệ thống gợi ýtrước đây
Các tiến trình gợi ý dựa trên suy luận và tối ưu tham chiếu ngữ cảnh người dùng có thểtriển khai dựa trên 1 trong 3 cơ chế sau (hình 9):
- Lọc trước theo ngữ cảnh (Contextual Pre-Filtering, hay còn gọi là ngữ cảnh hóa
dữ liệu đầu vào)
- Lọc sau theo ngữ cảnh (Contextual Post-Filtering, hay còn gọi là ngữ cảnh hóa
dữ liệu đầu ra)
- Mô hình hóa hướng ngữ cảnh (Contextual Modeling, hay còn gọi là mô hình hóa
theo ngữ cảnh hàm gợi ý)
Trang 18Hình 10 Các cơ chế tích hợp thông tin ngữ cảnh vào hệ gợi ý
2.2.1 Lọc trước theo ngữ cảnh (Contextual Pre-Filtering)
Hàm dự đoán xếp hạng 3 chiều với ngữ cảnh là thời gian (Time) có thể được định nghĩa
bởi công thức: R D User x Item x Time: U x I x T -> Rating, trong đó D là tập dữ liệu
chứa các bảng ghi (user, item, time, rating) chứa thông tin xếp hạng của người dùng
2.2.2 Lọc sau theo ngữ cảnh (Contextual Pos-Filtering)
Danh sách gợi ý tinh chỉnh có thể thu được theo các bước:
Lọc bỏ các gợi ý không liên quan với ngữ cảnh áp dụng
Hiệu chỉnh thứ tự xếp hạng các gợi ý trong danh sách
Hình 11 Bước hiệu chỉnh danh sách gợi ý trong lọc sau theo ngữ cảnh
2.2.3 Mô hình hóa hướng ngữ cảnh (Contextual Modeling)
Trang 19Dựa trên kinh nghiệm: ý tưởng của hướng tiếp cận này là mở rộng mô hình 2 chiều
truyền thống có kết hợp thông tin ngữ cảnh như các chiều dữ liệu thêm vào bên cạnhUser và Item Khi đó, hệ thống sẽ thực hiện xây dựng hàm tính đơn vị khoảng cánh n-chiều thay vì chỉ sử dụng các độ đo tương quan truyền thống là user-user, item-item
Trang 20B Áp dụng kỹ thuật gợi ý dựa trên thông tin ngữ cảnh trong việc xây dựng một ứng dụng nghe nhạc cho “game liên quân mobie”
I Tổng quan về ứng dụng và xây dựng mô hình hệ thống gợi ý trong ứng dụng
1 Tổng quan
1.1 Giới thiệu đề tài
Âm nhạc là một trong những yếu tố quan trọng để tạo nên sự thành công của một tròchơi Chính vì vậy các nhà phát triển game luôn cố gắng chau chút, lựa chọn các bảnnhạc phù hợp nhất với tựa game của mình Tuy nhiên có một số game có nội dung vàcách chơi quá đa dạng , nhà phát triển rất khó để có thể lựa chọn được bản nhạc phù hợptrong cả trò chơi Điển hình như các dòng game Moba như LOL , Dota, Liên quân nơingười chơi có thể vào vai hàng trăm nhân vật với lối chơi khác nhau Nhà phát triểnkhông thể tạo ra được nhạc game thống nhất để thỏa mãn được lượng người chơi khổng
lồ đến từ nhiều quốc gia với ngôn ngữ , nền văn hóa khác nhau
Điều này dẫn đến việc người chơi tự tìm các bản nhạc bên ngoài phù hợp để có thể vừachơi game vừa thỏa mãn sở thích âm nhạc của mình Tuy nhiên việc tìm một bản nhạcphù hợp với sở thích cũng như game không phải là một điều dễ dàng chút nào Các hệthống nghe nhạc online hiện nay như mp3, nhaccuatui tuy đều có hệ thống gợi ý nhưngđều là gợi ý liên quan đến cùng tác giả , nội dung mà không thể gợi ý liên quan đến cácngữ cảnh như chơi game Vì vậy người dùng thường mất rất nhiều thời gian để có thểtìm kiếm, lựa chọn
Từ nhu cầu đó , cần có các nền tảng hỗ trợ người dùng trong công việc này Với mục tiêutrên , nhóm em quyết định xây dựng một ứng dụng nghe nhạc cho game liên quân mobiegiúp hỗ trợ người chơi trong game nhanh chóng lựa chọn được các bản nhạc phù hợp để
có thể vừa nghe vừa chơi game một cách thoải mái nhất
1.2.Đặt bài toán
Ứng dụng nghe nhạc cho game Liên quân cho phép người dùng có thể tìm kiếm bảnnhạc, bài hát phù hợp bằng cách hiển thị các bản nhạc theo đúng nhu cầu người dùngquan tâm cũng như phù hợp với ngữ cảnh Hệ thống có các chức năng cho người dùngthêm hoặc xóa các bản nhạc không cần thiết trong 1 danh sách qua đó tự động thu thậpcác dữ liệu người dùng để đưa ra các gợi ý bản nhạc phù hợp hơn
Người dùng muốn thực hiện các chức năng thì phải đăng ký thành viên và đăng nhập vào
hệ thống Các thông tin đăng kí sẽ được lưu trữ lại để trở thành các thông tin người dùng.Sau khi người dùng đăng nhập vào hệ thống Hệ thống sẽ thu thập các dữ liệu về hành vingười dùng như nghe bản nhạc nào, xóa bản nhạc nào đồng thời kết hợp với các thông tinđăng kí để đưa ra các gợi ý phù hợp với người dùng
1.3 Phương pháp triển khai :
Input : Các bản nhạc dưới dạng mp3 được phân chia thành các chủ đề, nội dung phù hợp.Yêu cầu của các bản nhạc này là có nội dung và âm điệu phù hợp với game
Output : Các bản nhạc gợi ý cho người dùng sao cho phù hợp với sở thích của ngườidùng cũng như ngữ cảnh mà người dùng lựa chọn
Trang 21Phương pháp luận :
Để có thể xây dựng nên hệ thống gợi ý tốt nhất , cần xác định các yếu tố :
- Thông tin người dùng : Qua tên tuổi , giới tính , sở thích ,
- Dữ liệu hành vi người dùng : Các đánh giá nghe nhạc, lịch sử tương tác ứng dụng
- Các ngữ cảnh người dùng khi chơi game : Thời gian, nhân vật đang chơi, chơicùng ai …
Phương pháp xử lí :
- Nghiên cứu các thể loại nhạc , tác động của âm nhạc đến cảm xúc và việc chơigame
- Nghiên cứu xu hướng nghe nhạc , sở thích người nghe theo độ tuổi , giới tính …
- Lưu trữ các dữ liệu về người dùng
- Sử dụng CARS để đề xuất nhạc cho mỗi người dùng theo ngữ cảnh
Phương pháp lập trình : Hướng đối tượng
Mô tả các tính năng cơ bản : Người dùng cần đăng nhập để sử dụng hệ thống Với mỗinhân vật và ngữ cảnh người dùng lựa chọn , hệ thống sẽ gợi ý ra danh sách các bản nhạcphù hợp nhất Người dùng có thể nghe thử hoặc thêm bản nhạc vào 1 Playlist lưu trữ
2.Hệ thống gợi ý nhạc trong ứng dụng
2.1.Đặc tả hệ thống
Các đối tượng chính của hệ thống
Với 1 hệ thống gợi ý theo ngữ cảnh luôn có các đối tượng chính như user, item, ngữ cảnh
và đánh giá Qua phân tích hệ thống chúng ta xác định các hệ thống như sau :
User : Người dùng ứng dụng Từ nội dung của ứng dụng có thể xác định được ngườidùng mà chúng ta hướng đến là game thủ và thích nghe nhạc Ngoài ra để xây dựng hệthống gợi ý chính xác, chúng ta cần các thông tin liên quan đến xử lí bài toán Vì vậyvới đối tượng người dùng chúng ta cần xác định các thông tin :
- Thông tin đăng nhập : Tên , tài khoản đăng nhập , mật khẩu
- Thông tin cá nhân : Độ tuổi, giới tính, thể loại nhạc yêu thích , nhân vật hay chơi Item : Các bản nhạc Để có thể đưa ra các gợi ý cần phân loại cản bản nhạc theo nộidung riêng biệt Các thông tin cần có của 1 bản nhạc :
- Thông tin thường : Tên , tác giả , file nhạc
- Thông tin cần thiết để đề cử : Nội dung , thể loại , âm điệu
Ngữ cảnh : Từ các chương trước, chúng ta đã biết có rất nhiều loại ngữ cảnh khác nhau
có thể ảnh hưởng đến hệ thống gợi ý như ngữ cảnh thiết bị , ngữ cảnh người dùng ( hoạtđộng .) , ngữ cảnh vật lí ( thời tiết …) Chúng ta cần xác định các ngữ cảnh liên quan vàphù hợp với hệ thống
Đầu tiên xét đến ngữ cảnh thiết bị như khả năng CPU, bộ nhớ, mạng Đây là các ngữcảnh không liên quan trực tiếp với hệ thống của nhóm nên sẽ không đề cập đến
Ngữ cảnh người dùng : Vị trí, nhiệm vụ hiện thời liên quan đến người dùng hoặc đối
Trang 22tượng khác Xem xét hoạt động của người dùng khi sử dụng hệ thống gợi ý : Ngườidùng đang sử dụng điện thoại để chơi game liên quân và nghe nhạc Các ngữ cảnh ngườidùng có thể xảy ra :
- Đang chơi nhân vật nào : Điều này ảnh hưởng trực tiếp đến tâm lí và quá trình xử líthông tin của người dùng Ví dụ chơi 1 nhân vật có lối chơi nhanh thì tâm lí ngườidùng đang rất năng động , vội vã Trong khi 1 nhân vật lối chơi vui vẻ, nhẹ nhàng thìtâm lí người dùng rất thoải mái , dễ chịu , không vội vàng Các tâm lí khác nhau nàycũng sẽ ảnh hưởng trực tiếp tới loại nhạc mà người dùng muốn nghe Vì vậy đây là
Vì vậy để đơn giản và tương tác tốt hơn với người dùng ứng dụng không có tính năngđánh giá 1 -5 sao Để có thể lưu trữ các đánh giá của người dùng , hệ thống sử dụng listnhạc yêu thích Theo đó nếu người dùng nghe và thêm bản nhạc vào list nhạc , bản nhạc
đó sẽ được đánh giá max điểm là 5 Ngoài ra hệ thống cũng tự động ghi nhận các thôngtin phản hồi tiềm ẩn từ người dùng Cụ thể, thay vì người dùng phải xếp hạng hay đánhgiá trên mỗi bài hát, ở đây hệ thống sẽ ghi nhận lại thời lượng mà họ đã nghe bài hát đó(thời gian càng lâu đồng nghĩa với người dùng càng thích, dĩ nhiên cũng có ngoại lệnhưng không đáng kể) và do vậy xem thời gian nghe là thông tin phản hồi từ người dùng
Do mỗi bài hát có thời lượng ngắn/dài khác nhau nên chúng tôi chuyển đổi thời lượng
mà người dùng đã nghe thành dạng tỷ lệ thời lượng Đây cũng chính là thông tin phảnhồi từ người dùng u cho bài hát i:
r ui=Thời lượngngười dùng u nghe bài hát i
Theo đó nếu người dùng nghe hết cả bản nhạc những vẫn không quyết định cho vào listnhạc thì điểm đánh giá người dùng với bản nhạc đó sẽ là 4 Nếu người dùng chỉ nghemột ít mà chuyển ngay sang bài khác thì điểm đánh giá sẽ càng thấp
Tổng kết : các đối tượng hệ thống :
Trang 23Người dùng : các thông tin : Tên , tài khoản đăng nhập , mật khẩu , Độ tuổi, giới tính, thểloại nhạc yêu thích , nhân vật hay chơi
Bản nhạc : Tên, tác giả, file nhạc, nội dung, thể loại, âm điệu
Ngữ cảnh : Nhân vật đang chơi , chơi một mình hay cùng bạn , tâm trạng đang chơi , thờigian chơi
Đánh giá:
r ui=Thời lượngngười dùng u nghe bài hát i
Nếu u thêm i vào playlist yêu thích , r ui = 5
2.2 Mô tả hoạt động của hệ thống gợi ý trong ứng dụng
2.1 Hoạt động của hệ thống trong giai đoạn đầu
Khi ứng dụng mới đi vào hoạt động sẽ chưa có nhiều dữ liệu về người dùng khác nhaucũng chưa có các dữ liệu đánh giá bản nhạc của người dùng Vì vậy rất khó để tìm các
dữ liệu người dùng tương thích nhau để đối chiếu
Vì vậy cơ chế hoạt động của hệ thống gợi ý trong giai đoạn đầu như sau
Gợi ý dựa trên tìm kiếm và truy vấn hướng ngữ cảnh (context-driven querying andsearch):
Hướng tiếp cận này sử dụng thông tin ngữ cảnh thu thập được (từ người dùng, từ thiết bị
di động, ) để thực hiện truy vấn và tìm kiếm các tập sản phẩm và cung cấp cho ngườidùng sản phẩm phù hợp nhất mà không cần đối chiếu với người dùng khác Ví dụ, trongmột hệ gợi ý về nhạc, dựa trên thông tin sở thích của người dùng (thu thập theo thông tin
hồ sơ ban đầu của người dùng), và ngữ cảnh ( do người dùng chọn ) , hệ thống sẽ truyxuất dữ liệu và tạo ra list các bản nhạc sắp xếp theo mức độ phù hợp
Thể loại
Nhạc Hip -hopNhạc POPNhạc JazzNhạc thính phòngNhạc đồng quêNhạc điện tử
Nội dung
Nội dung liên quan đến “ a”
Nội dung liên quan đến “ b”
Nội dung liên quan đến “ c”
Nội dung liên quan đến “ d”
Nội dung liên quan đến “ e”
Nội dung liên quan đến “ f”
Trang 24Nội dung liên quan đến “ h”
Âm điệu
NhanhChậmVui vẻSôi độngBuồnNhí nhảnh
Thoải mái Nhạc đồng quê, nhạc điển tử, thính phòng +1 Âm điệu
chậm +1Đang
chơi Một mìnhCùng bạn Nhạc điện tử+1 Âm điệu sôi động +1Nhạc thính phòng +1 Âm điệu nhí nhảnh +1
Thời gian
chơi
Sáng Nhạc điện tử+1 Âm điệu sôi động +1
Trưa Nhạc điện tử+1 Âm điệu sôi động +1
Chiều Nhạc điện tử+1 Âm điệu nhanh +1
Tối Nhạc điện tử+1 Âm điệu sôi động +1
Đêm Nhạc điện tử+1 Âm điệu chậm +1
Nhân vật
chơi NV 1NV 2 Nội dung liên quan đến “ a”Nội dung liên quan đến “ a”
NV3 Nội dung liên quan đến “ b”
NV4 Nội dung liên quan đến “ b”
NV5 Nội dung liên quan đến “ c”
NV6 Nội dung liên quan đến “ c”
NV 7 Nội dung liên quan đến “ d”
NV8 Nội dung liên quan đến “ d”
NV9 Nội dung liên quan đến “ e”
Trang 2512 -16 pop, điện tử +1 Âm điệu nhí nhảnh, vui vẻ, sôi động +1
16-25 pop, điện tử +1 vui vẻ, sôi động +1
>25 Nhạc đồng quê, nhạc điển tử, thính phòng +1 Âm điệu
chậm +1Giới tính Nam Nhạc điện tử+1 Âm điệu sôi động +1
NV 1 Nhạc điện tử+1 Âm điệu sôi động +1
NV 2 pop, điện tử +1 Âm điệu buồn +1
NV3 pop, điện tử +1 Âm điệu nhí nhảnh +1
NV4 pop, điện tử +1 Âm điệu, vui vẻ +1
NV5 …… pop, điện tử +1 Âm điệu sôi động +1
Bảng 6 Mô tả hoạt động hệ thống
Dựa theo việc đối chiếu các thuộc tính phù hợp của thông tin đầu vào và thuộc tính củacác bản nhạc sẽ tạo nên danh sách các bản nhạc với mức độ phù hợp cao xuống thấp( mỗithuộc tính phù hợp sẽ cộng 1 điểm cho bản nhạc Bản nhạc nào có điểm càng cao sẽ cóxếp hạng càng cao )
Ví dụ với Người dùng A , độ tuổi >25 , giới tính nam, nhạc yêu thích POP , Nhân vật yêuthích NV1 cùng với ngữ cảnh đang vui, chơi một mình, ban đêm , nhân vật chơi là 2 Như vậy từ các bảng thuộc tính phù hợp ta có được yêu cầu bản nhạc phù hợp :
Thể loại nhạc : Nhạc điện tử +5 , nhạc Pop +2 , nhạc Jazz +1
Nội dung : Nội dung b +1
Âm điệu : Nhanh +2 , vui vẻ +2 , sôi động +1
Đối chiếu với dữ liệu bản nhạc sẽ có được điểm của bản nhạc
Ví dụ bản nhạc bn1 là nhạc điện tử, nội dung b, âm điệu sôi động sẽ có 5+1+1 =7 điểm Xếp hạng các bản nhạc từ điểm cao nhất xuống thấp nhất để có bảng đề cử
Bảng 7 Mô tả hoạt động hệ thống
2.2 Hoạt động của hệ thống trong các giai đoạn sau
Các bảng đánh giá mức độ phù hợp ở phía trên mang tính chủ quan từ người thiết kế ứngdụng , vì vậy độ chính xác sẽ không được cao Vì vậy phương pháp trên chỉ được sửdụng hiệu quả lúc đầu , khi đã có đủ thông tin tham chiếu người dùng chúng ta cần sử
Trang 26dụng hướng tiếp cận khác hiệu quả hơn :
Gợi ý dựa trên suy luận và tối ưu tham chiếu ngữ cảnh (contextual preference eliction andestimation): Một hướng tiếp cận khác trong việc ứng dụng thông tin ngữ cảnh vào trong
hệ gợi ý là gợi ý dựa trên suy luận và tối ưu tham chiếu ngữ cảnh Đây cũng là xu hướngtiếp cận mới nhất trong việc nghiên cứu các hệ gợi ý dựa trên ngữ cảnh] Khác với hướngtiếp cận gợi ý dựa trên truy vấn và tìm kiếm hướng ngữ cảnh, chủ yếu dựa trên các thôngtin ngữ cảnh hiện tại của người dùng, các kỹ thuật thuộc hướng tiếp cận này sẽ cố gắng
mô hình hóa và học các sở thích của người dùng bằng cách theo dõi tương tác của ngườidùng cần xem xét và các người dùng khác đối với hệ thống, hoặc bằng cách thu thậpthông tin phản hồi của người dùng đối với các sản phẩm đã được hệ thống gợi ý trướcđây
Như vậy điểm quan trọng nhất trong hướng tiếp cận này là đánh giá của người dùng vớibản nhạc Như đã nói ở trên , việc đánh giá của người dùng với bản nhạc dựa trên 2 nộidung : Việc người dùng thêm bản nhạc vào list nhạc NV ( yêu thích ) và thời gian nghebản nhạc trước khi chuyển sang bài khác
Điểm đánh giá là 5 nếu người dùng thêm vào list nhạc
Còn lại , điểm đánh giá của người dùng u sau khi nghe bài hát I :
r ui=Thời lượngngười dùng u nghe bài hát i
Phương pháp đề xuất : xử lí thông tin ngữ cảnh đầu vào
Ví dụ Giả sử Qua thời gian vận hành ứng dụng và thu thập dữ liệu người dùng , chúng ta
sẽ có tập dữ liệu gợi ý bản nhạc sau :
Hình 12 Sử dụng phương pháp Pre-filtering
Trang 27Bảng 9 Tập dữ liệu sau khi sử dụng Pre-filtering
Như vậy sau khi xử lý xong ta sẽ được một tập dữ liệu hai chiều Lúc này, ta có thể
áp dụng các thuật toán trong hệ thống gợi ý truyền thống để dự đoán xếp hạng và gợi
ý cho người dùng ,
Một trong những phương pháp hay được sử dụng hiện nay là phương pháp lọc cộngtác dựa trên mô hình đó là kỹ thuật phân rã ma trận (Matrix Factorization - MF) trêntập dữ liệu đã được xử lý ngữ cảnh đầu vào
2.Ứng dụng phương pháp phân rã ma trận MF
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à X ~ WHT, như minh họa trong hình sau
Trang 28Trong đó, 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 véc-tơ bao gồm K nhân tố tiềm ẩn mô tả cho item i Gọi w uk và h ik 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:
Như vậy vấn đề ở đây là cần xác định các tham số của ma trân W và H Các tham số nàyđược xác định bằng phương pháp tối ưu hóa hàm mục tiêu ( objective funtion ) Một sốhàm mục tiêu thông dụng có thể kể đến như Root Mean Squared Error ( RMSE )
Tuy nhiên Trong hệ thống gợi ý bài hát, vì dữ liệu phản hồi từ người dùng là tiềm ẩn vàthuộc về vấn đề gợi ý mục tin (item recommendation) nên việc sử dụng giải thuật BPR-
MF phù hợp hơn do tính ưu việt của nó đối với loại tính chất của dữ liệu này Theo đóthay vì sử dụng RMSE , thuật toán sẽ sử dụng Hàm mục tiêu của BPR-MF như sau:
r uij=¿¿r ui¿ −r uj¿ ¿ là giá trị dự đoán của u tới ij
θ đại điện cho các tham số W và H
γθ ∥θ∥2 là thành phần chuẩn hóa để ngăn vấn đề học vẹt ( overfitting)
Sử dụng stochastic gradient descent (Bottou, 2004) để triển khai chi tiết giải thuật họctrong (Rendle et al., 2009), ta được giải thuật như bên dưới:
1: procedure LearnBPR-MF (D S, λw , λH , λH , α )
2: W N (0, σ2 ) // khởi tạo giá trị cho tham số
3: H N (0, σ 2 ) // khởi tạo giá trị cho tham số
Hình 13 Minh họa kỹ thuật phân rã ma trận
Trang 294: repeat // cập nhật lại giá trị tham số đến khi tối ưu
5: draw randomly (u, i, j) from Ds (j I \ I )
wuk wuk α(v(hik hjk ) λwwuk )
hik hik α(vwuk λH hik )
sẽ gửi lại danh sách này theo thứ tự xếp hạng từ cao tới thấp
Với người dùng mới u k , hệ thống sẽ kiểm tra dữ liệu để tìm kiếm người dùng cũ u m cócác thông tin cá nhân giống với u k Kết quả gợi ý cho người dùng u k sẽ được đối chiếu từngười dùng u m
II.Phân tích thiết kế
1.Xác định yêu cầu
1.1.Các tác nhân
chỉnh sửa playlist … Mỗi người dùng sẽ có các thông tin và dữ liệu lưu trữ riêng
lưu trữ trong CSDL
lưu trữ , đề cử hoặc xếp hạng
theo yêu cầu
1.2.Bảng thuật ngữ
Game liên quân mobie : Là 1 game mobie thể loại MOBA Người chơi lựa chọn 1 nhân
vật trong game cùng người chơi khác chia thành 2 đội ( 3v3 hoặc 5v5 ) Khi chơi, gamethủ sẽ điểu khiển nhân vật trong 1 bản đồ lớn , sử dụng các kĩ năng để tấn công quái vàngười chơi khác Trò chơi kết thúc khi 1 đội phá hủy được nhà chính bên kia
Nhân vật : Nhân vật trong game liên quân mobie Trong game người chơi có thể vào vai
1 trong hàng chục nhân vật khác nhau Mỗi nhân vật có hình ảnh, đặc điểm và lối chơikhác nhau
Trang 30Ngữ cảnh : Là toàn bộ tình huống, nền tảng hay môi trường có liên quan tới một vài sự
kiện xảy ra hoặc cá nhân nào đó
Lối chơi của nhân vật : Mỗi nhân vật sẽ có tiểu sử, hình ảnh, cách chơi riêng biệt tạo
nên lối chơi khác nhau Vì vậy mỗi nhân vật sẽ yêu cầu các thể loại nhạc phù hợp khácnhau
Thời gian chơi game : Hoàn cảnh chơi game của nhân vật bao gồm các vấn đề liên quan đến thời gian ( sáng , trưa , tối ) và nhân vật đang chơi ( lối chơi )
Thể loại nhạc : Dùng để phần biệt các dòng nhạc lớn hiện nay như jazz, hiphop , pop ,
rock, nhạc đồng quê, nhạc thính phòng
Nội dung bản nhạc : Nội dung lời bản nhạc như nói về hòa bình, tình yêu, chiến tranh
…
Âm điệu bản nhạc : Âm điệu sôi động, nhanh, chậm …
Playlist nhân vật : Các bản nhạc liên quan đến nhân vật được phân chia thành các nội
dung khác nhau để quản lí Mỗi nhân vật sẽ có 3 list nhạc sau :
List nhạc Nhân vật : List nhạc lưu trữ các bản nhạc phù hợp với nhân vật Sử
dụng list nhạc mặc định của hệ thống trong lần dùng đầu tiên Người dùng có thểthay đổi bằng cách thêm, xóa các bản nhạc trong List nhạc Dữ liệu sẽ được lưu lại vàhiện thị trong các lần dùng tiếp theo
List nhạc đề cử : List nhạc được xây dựng dựa hệ thống gợi ý
List nhạc xếp hạng : List nhạc được xây dựng qua dữ liệu bảng xếp hạng
Thông tin người dùng : Các thông tin liên quan đến sở thích, tuổi, thông tin cá nhân…
do người dùng điền Ngoài ra ứng dụng cũng thu thập các thông tin về hành vi sử dụngứng dụng liên quan đến sở thích nhạc người dùng
Hệ thống gợi ý : Là hệ thống sử dụng 1 thuật toán cho phép xây dựng nên 1 list nhạc phù
hợp với các yêu cầu người dùng
Thuật toán đề cử : Thuật toán sử dụng CARS với các thông tin đầu vào là thông tin
người dùng và ngữ cảnh chơi game để lọc ra các bản nhạc
Trang 311.3.Danh sách các ca
Hình 14 Thiết kế tương tác ( chi tiết xem trong file hình ảnh đi kèm )
Liệt kê các ca trong ứng dụng :
U1 Đăng nhập : Sử dụng tài khoản, mật khẩu đã đăng kí để vào ứng dụng
U2 Đăng kí : Đăng kí tài khoản bằng cách điền các thông tin mà ứng dụng yêu cầu U3 Thay đổi thông tin cá nhân : Người dùng chọn hình avatar để vào xem và chỉnh sửa
thông tin cá nhân
U4 Đăng xuất : Chọn biểu tượng đăng xuất để quay lại giao diện Đăng nhập
U5 Hiển thị Playlist của 1 NV : Người dùng chọn một nhân vật trên màn hình chính để
xem play list về nhân vật đó
U6 Phát – dừng nhạc : Người dùng chọn button bên cạnh bản nhạc phát nhạc để phát
nhạc Chọn phát tất cả để phát tất cả bản nhạc trong list nhạc hiện tại Ân lại buttondừng để dừng phát nhạc
U7 Xem chi tiết bản nhạc : Người dùng chọn một bản nhạc để xem các thông tin về bản
Trang 32U10 Chỉnh sửa thông tin ngữ cảnh cần gợi ý : Tại Tab đề cử chọn chỉnh sửa.
U11 Thêm bản nhạc vào play list nhân vật hiện tại : Tại danh sách nhạc đề cử hoặc xếp
hạng người dùng chọn “ thêm vào play list nhân vật
U12 Hiện thị bảng xếp hạng : Người dùng chọn Tab Xếp hạng
U13 Xem play list nhân vật tiếp theo : Nhân mũi tên bên cạnh tên nhân vật để chuyển
sang play list nhân vật tiếp theo
U14 Chọn lại play list nhân vật khác : Người dùng ấn quay lại để trở về giao diện chính.
1.4.Khảo sát các ca sử dụng :
Khi người dùng vào ứng dụng , hệ thống yêu cầu người dùng đăng nhập để sử dụng hệthống ( U1) Nếu chưa có tài khoản , người dùng có thể chọn đăng kí để đăng kí tài khoản( U2 )
Sau khi đăng nhập thành công, giao diện chính hiển thị bao gồm các hình ảnh đại diệncho các nhân vật game mà ứng dụng hỗ trợ , hình avatar mặc định người dùng và buttonđăng xuất Người dùng có thể xem và chỉnh sửa lại thông tin người dùng bằng cách chọnavatar (U3) hoặc quay lại giao diện đăng nhập để đăng xuất bằng cách chọn button ĐăngXuất ( U4)
Tại giao diện chính , Người dùng chọn 1 nhân vật để hiện thị giao diện xem Playlist củanhân vật (U5) Tại giao diện này chứa List nhạc của nhân vật List nhạc lúc đầu là listnhạc mặc định của hệ thống, người dùng có thể thay đổi bằng cách thêm, xóa các bảnnhạc Người dùng có thể phát nhạc bằng cách chọn button phát nhạc bên cạnh bản nhạcmuốn nghe hoặc button phát tất cả để phát tất cả nhạc trong list nhạc hiện tại (U6) Đểxem thông tin chi tiết bản nhạc , người dùng chỉ cần chọn tên bản nhạc muốn xem Khi
đó ứng dụng sẽ hiển thị giao diện thông tin chi tiết bản nhạc(U7) Ngoài ra , người dùng
có thể chỉnh sửa lại List nhạc thông qua việc chọn button xóa bên cạnh các bản nhạcmuốn xóa (U8) Ứng dụng sẽ yêu cầu người dùng xác nhận lại nếu muốn xóa
Trong giao diện này còn có 2 Tab là nhạc đề cử và nhạc xếp hạng Lựa chọn Tab nhạc đề
cử nếu muốn tìm kiếm các bản nhạc phù hợp (U9) Muốn lựa chọn các thông tin gợi ý,
ấn button chỉnh sửa tại giao diện tab đề cử Khi đó sẽ hiển thị giao diện yêu cầu ngườidùng lựa chọn các thông tin, ngữ cảnh hiện tại và xác nhận Khi đó giao diện đề cử sẽđược cập nhập lại theo thông tin nhận được (U10)
Ngoài ra nếu muốn thêm 1 bản nhạc nào đó trong danh sách đề cử vào list nhạc NV, cóthể lựa chọn button Thêm bên cạnh bản nhạc đó (U11)
Tương tự với Tab Nhạc xếp hạng (U12) Người dùng chọn Tab bảng xếp hạng để hiệnthị list nhạc xếp hạng
Để xem Playlist của các nhân vật khác, người dùng lựa chọn các button sang trái phải bêncạnh tên nhân vật (U13) hoặc nhấn nút quay lại để trở về giao diện chính (U14)
1.5.Biểu đồ các ca sử dụng -usecase.
Trang 33Hình 15 Biểu đồ Use Case
1.6 Kịch bản
Tác nhân chính Người dùng
Người chịu trách nhiệm Thông tin người dùng
Tiền điều kiện Đã hiển thị giao diện đăng nhập
Đảm bảo tối thiểu Người dùng có thể thoát ứng dụng
Đảm bảo thành công Đăng nhập thành công
Chuỗi sự kiện chính
1.Người dùng mở ứng dụng
2.Hệ thống hiện thị popup yêu cầu điền thông tin đăng nhập 3.Người dùng điền thông tin và nhấn đăng nhập
4.Hệ thốn kiểm tra thông tin đăng nhập
5.Hệ thống đăng nhập thành công và hiển thị giao diện chính
Ngoại lệ
5.1 Hệ thống thông báo sai mật khẩu
5.1.1 Hệ thống yêu cầu người dùng nhập lại hoặc đăng kí 5.1.2 Người dùng điền lại mật khẩu cho đến khi chính xác
Trang 34Bảng 10 Kịch bản đăng nhập
Tác nhân chính Người dùng
Người chịu trách nhiệm Thông tin người dùng
Tiền điều kiện Đã hiển thị đăng nhập, đăng kí
Đảm bảo tối thiểu Nhấn quay lại để trở về giao diện đăng nhập
Đảm bảo thành công Đăng kí tài khoản mới thành công
Chuỗi sự kiện chính
1.Người dùng chọn Đăng kí tại giao diện đăng nhập
2.Hệ thống hiện thị popup điền các thông tin để đăng kí
3.Người dùng điền các thông tin và xác nhận
4.Hệ thống kiểm tra thông tin đăng kí và lưu trữ
5.Hệ thống thông báo đăng kí thành công
Ngoại lệ
3.1 Người dùng điền lỗi thông tin
3.1.1.Hệ thống yêu cầu người dùng nhập lại thông tin
3.1.2 Người dùng điền thông tin chính xác và xác nhận
5.1 Hệ thống thông báo đăng kí lỗi do trùng tên
5.1.1.Hệ thống yêu cầu điền lại thông tin
5.1.2.Người dùng điền lại thông tin chính xác và xác nhận
Bảng 11 Kịch bản đăng ký
Tên Use Case U3 : Chỉnh sửa thông tin cá nhân
Tác nhân chính Người dùng
Người chịu trách nhiệm Thông tin người dùng
Tiền điều kiện Đã đăng nhập thành công
Đảm bảo tối thiểu Nhấn hủy bỏ để quay về trạng thái ban đầu
Đảm bảo thành công Cập nhật thông tin người dùng thành công
Kích hoạt Button sửa thông tin trên giao diện thông tin cá nhân
Chuỗi sự kiện chính
1 Tại Giao diện chính , người dùng chọn Avatar người dùng
2.Hệ thống hiện thị giao diện thông tin chi tiết về người dùng
3.Người dùng chọn button Thay đổi thông tin trên giao diện
4 Hệ thống hiển thị popup điền thông tin và yêu cầu người dùng điền lại
5.Người dùng điền thông tin và xác nhận
6.Hệ thống kiểm tra , lưu trữ
7.Hiển thị thông báo thay đổi thành công
8.Cập nhập lại giao diện
Trang 35Ngoại lệ
5.1.Người dùng điền lỗi thông tin
5.1.1 Hệ thống yêu cầu người dùng điền lại thông tin
5.1.2 Người dùng điền lại thông tin chính xác và xác nhận
Bảng 12 Kich bản chỉnh sửa thông tin cá nhân
Tên Use Case U5 : Hiển thị Playlist 1 Nhân vật
Tác nhân chính Người dùng
Người chịu trách nhiệm Hệ thống quản lí nhạc
Tiền điều kiện Đã hiển thị giao diện chính thành công
Đảm bảo tối thiểu Nhấn quay lại để trở về giao diện chính
Đảm bảo thành công Hiển thị List nhạc của Nhân vật thành công
Kích hoạt Button Hình hiển thị các nhân vật trong game “ Liên quân
3.Người dùng lựa chọn 1 nhân vật muốn sử dụng trong danh sách đó
4.Hệ thống hiển thị List nhạc play list của nhân vật này
Ngoại lệ :
4.1 Lỗi lấy dữ liệu playlist của nhân vật
4.1.1 Thông báo popup lỗi và cho phép người dùng trở về giao diện chính
Bảng 13 Kịch bản chỉnh sửa Playlist 1 nv
Tên Use Case U6.1 : Phát nhạc
Tác nhân chính Người dùng
Người chịu trách nhiệm Hệ thống quản lí nhạc
Tiền điều kiện Giao diện có list nhạc
Đảm bảo tối thiểu Nhấn quay lại để trở về giao diện cũ
Đảm bảo thành công Bắt đầu phát nhạc
Kích hoạt Button phát nhạc bên cạnh bản nhạc muốn phát
2.1 Không thể tìm kiếm thông tin bản nhạc
2.1.1 Thông báo popup lỗi và cho phép người dùng trở về giao diện cũ
2.2 Lỗi thiết bị không thể phát nhạc
2.2.1 Thông báo popup lỗi và yêu cầu người dùng kiểm tra lại thiết bị
Trang 36Bảng 14 Kịch bản phát nhạc
Tên Use Case U6.2 : Phát tất cả
Tác nhân chính Người dùng
Người chịu trách nhiệm Hệ thống quản lí nhạc
Tiền điều kiện Giao diện có list nhạc
Đảm bảo tối thiểu Nhấn quay lại để trở về giao diện cũ
Đảm bảo thành công Bắt đầu phát nhạc
Kích hoạt Button phát tất cả trên giao diện
Chuỗi sự kiện chính
1.Tại list nhạc trong giao diện, người dùng chọn 1 button phát tất cả
2.Hệ thống kiểm tra thông tin các bản nhạc và bắt đầu phát tất cả bản nhạc trong danhsách
3.Hiển thị popup nhỏ cho thấy bản nhạc đang phát
Ngoại lệ :
2.1 Không thể tìm kiếm thông tin bản nhạc nào đó trong danh sách
2.1.1 Thông báo popup lỗi bản nhạc đó và vẫn cho phép phát các bản nhạc còn lại 3.1 Trong quá trình phát nhạc người dùng xóa hoặc thêm 1 bản nhạc trong list nhạc sẽcập nhập lại danh sách phát
Bảng 15 Kịch bản phát tất cả
Tên Use Case U7.Xem chi tiết 1 bản nhạc
Tác nhân chính Người dùng
Người chịu trách nhiệm Hệ thống quản lí nhạc
Tiền điều kiện Giao diện có list nhạc
Đảm bảo tối thiểu Nhấn quay lại để trở về giao diện cũ
Đảm bảo thành công Hiển thị giao diện thông tin chi tiết bản nhạc
Kích hoạt Ấn vào tên bản nhạc muốn xem trên list nhạc
Chuỗi sự kiện chính
1.Người dùng ấn vào tên bản nhạc trên list nhạc
2.Hệ thống kiểm tra và gửi về thông tin bản nhạc
3.Hiển thị giao diện thông tin chi tiết bản nhạc
Ngoại lệ :
4.1 Lỗi lấy dữ liệu về bản nhạc
4.1.1 Thông báo popup lỗi và cho phép người dùng trở về giao diện cũ
Bảng 16 Kịch bản xem chi tiết 1 bản nhạc