Youtube cũng tự gợi ý những clip mà có thể bạn sẽ thích.Khi bạn mua một món hàng trên Amazon, hệ thống sẽ tự động gợi ý “Frequently bought together”, hoặc nó biết bạn có thể thích món hà
Trang 3GIỚI GIỚI THIỆUTHIỆU
Ma trận được ra đời cách đây hơn 200 năm Ngay từ khi ra đời ma trận đã trở thành một công cụ rất mạnh trong Đại số Tuy với những tính chất riêng của ma trận khiến ta gặp nhiều khó khăn trong quá trình biến đổi và tính toán đối với ma trận Với mục đích làm dễ dàng các bước tính toán cũng như lưu trữ ma trận người ta đã đưa ra phương pháp phân rã ma trận ( MATRIX FACTORIZATION) Phương pháp này đưa các ma trận thành tích các ma trận con có những tính chất đặc biệt để tính toán và lưu trữ dễ dàng hơn.
Trong 7 chương đầu của Đại Số Tuyến Tính chúng ta đã được học qua một Phép phân rã ma trận là: Chéo Hóa Ma Trận ( Eigen Decomposition ) : phân tách một ma trận A:
����= P*D*P-1 Tuy nhiên phép phân tách này có các nhược điểm : ma trận A phải là một ma trận vuông và tổng bội hình học của A = n thì mới phân tách được.
-Vậy đối với một ma trận bất kì thì ta có thể phân tách được không?
Để giải quyết vấn đề này sau đây chúng tôi xin giới thiệu phép phân rã ma trận SVD (Singuler Value Decomposition ) Trong đề tài này chúng tôi sẽ trình bày lý thuyết về SVD và ứng dụng của SVD trong Recommend System.
1.1 PhátPhátPhát bibiểubiểu SVDểuSVDSVD :::::
Với mọi ma trận AAAAA ∈ ��×�ta đều phân tách được dưới dạng
Trang 4+Ta xét : AAT= (U�VT)(U�V ) = UT T ��TUT= UDUT
-Dễ dàng chứng minh ma trận AA :T
+Là một ma trận đối xứng ( bằng quy nạp )
+Là một ma trận nửa xác định dương ( bằng BĐT Cauchy và quy nạp ) Do đó AA luôn chéo hóa trực giao được và trị riêng của AA không âmTT
Suy ra ta luôn tìm được : U bằng phép chéo hóa trực giao AAT
�à � vì dii≥ 0 ∀� , �� = ��� ( cái tên Singuler Value xuất phát từ đây ) -Chứng minh tương tự với trường hợp xét A A = VT �T�VT=> tồn tại V và �
Trang 51.4 PhưPhưPhươngơngơng pháppháppháp tìmtìm ppppphântìm hânhân tíchtíchtích SSSSSVDVD
*****CácCác bưbưbướcớc tìmớctìmtìm phânphânphân tttttíchíchích SVDSVDSVD của củacủa mamama trtrtrtrtrậnận��×�((((( NếuNếu mNếum> �)))))
B1 ::::: Ta chéo hóa trực giao AA để tìm ma trậnT ��×�và ��×� B2
B2 ::::: Ta tìm�1, �2bằng căn bậc 2 các trị riêng của AA và sắp xếp theo thứ tự giảm dần trênT
đường chéo của ��×�
Thử lại ta tìm lại A :AAAAA ==== UUUUU�VVVVVTTTTT= −� �−� � � � ((((( KhôngKhôngKhông đúngđúngđúng vvvvvớiớiới mama trậnmatrậntrận AAAAA đđđđđềềềềề cccccho)ho)
Trang 6*Giải bbbbbàiài toánàitoántoán bằngbằngbằng matmatmathlabhlabhlab vấnvấn đềvấnđề nnnnnàyđề àyày trởtrởtrở nênnênnên dễdễdễ dàngdàngdàng hơnhơnhơn vớivớivới lllllệnhệnhệnh svdsvd
Viết lại biểu thức (*) dưới dạng tổng của các ma trận rank 1:
AAAAA ==== ������++ �������++ … …… +++ � rrrrruuuuurrrrr�� Với chú ý rằng mỗi ����, 1≤ � ≤ �là một ma trận rank A bằng 1
Rõ ràng trong cách biểu diễn này, ma trận A chỉ phụ thuộc vào r cột đầu tiên của U ,V và r giá trị khác 0 trên đường chéo của ma trận � Vì vậy, ta có một cách phân tích gọn hơn và gọi là compact SVD :
AAAAA ==== UUUUUrrrrr�(V(Vrrrrr)))))TTTTT
Với U , V lần lượt là ma trận được tạo bởi r cột đầu tiên của U và V.rr �rlà ma trận con được tạo bởi r hàng đầu tiên và r cột đầu tiên của � Nếu ma trận A có rank nhỏ hơn rất nhiều so với số hàng và số cột r ≪ m, n, ta sẽ được lợi nhiều về việc lưu trữ và đánh giá.
Trang 72.1 MMMởởởởở ĐầuĐầuĐầu :::::
-Các bạn có lẽ đã gặp những hiện tượng này nhiều lần:
Youtube tự động chuyển các clip liên quan đến clip bạn đang xem Youtube cũng tự gợi ý những clip mà có thể bạn sẽ thích.
Khi bạn mua một món hàng trên Amazon, hệ thống sẽ tự động gợi ý “Frequently bought together”, hoặc nó biết bạn có thể thích món hàng nào dựa trên lịch sử mua hàng của bạn.
Facebook hiển thị quảng cáo những sản phẩm có liên quan đến từ khoá bạn vừa tìm kiếm.Facebook gợi ý kết bạn.
Netflix tự động gợi ý phim cho người dùng.
-Và rất nhiều ví dụ khác mà hệ thống có khả năng tự động gợi ý cho ngừời dùng những sản phẩm họcó thể thích Bằng cáchquảng cáo hướng đúng đội tượngnhư thế này, hiệu quả của việc marketing cũng sẽ tăng lên Những thuật toán đằng sau những ứng dụng này là những thuật toán Machine Learning có tên gọi chung làRecommender
SystemshoặcRecommendation Systems, tứcHệ thống gợi ý 2.2.
2.2 HaiHaiHai nhómnhómnhóm ccccchínhhínhhính củacủacủa RecRecRecommendationommendationommendation SystemsSystems
-Các Recommendation Systems thường được chia thành hai nhóm lớn:
Content-based sssssystemsystems: đánh giá đặc tính củaitemsđượcrecommended Ví dụ: mộtuserxem rất nhiều các bộ phim về cảnh sát hình sự, vậy thì gơi ý một bộ phim trong cơ sở dữ liệu có chung đặc tínhhình sựtớiusernày, ví dụ phimNgười phán xử Cách tiếp cận này yêu cầu việc sắp xếp cácitemsvào từng nhóm hoặc đi tìm các đặc trưng của từngitem Tuy nhiên, có nhữngitemskhông có nhóm cụ thể và việc xác định nhóm hoặc đặc trưng của từngitemđôi khi là bất khả thi.
Collaborative fffffilteringiltering: hệ thống gợi ýitemsdựa trên sự tương quan (similarity) giữa cácusersvà/hoặcitems Có thể hiểu rằng ở nhóm này
mộtitemđượcrecommendedtới mộtuserdựa trên nhữnguserscóhành vitương tự Ví dụ:users A, B, Cđều thích các bài hát của Noo Phước Thịnh Ngoài ra, hệ thống biết rằngusers B, Ccũng thích các bài hát của Bích Phương nhưng chưa có thông tin về việc liệuuser Acó thích Bích Phương hay không Dựa trên thông tin của nhữnguserstương tự làB và C, hệ thống có thể dự đoán rằngAcũng thích Bích Phương và gợi ý các bài hát của ca sĩ này tớiA.
Trang 82.3BàiBài toántoántoán tổngtổngtổng quátquátquát củacủacủa hệhệhệ thốngthốngthống gợigợi ý:gợiý:
iiiii11111 iiiii22222 … iiiiinnnnn
uuuuu11111 rrrrr1,1 rrrrr1,2 … rrrrr1,n
uuuuu22222 rrrrr2,1 rrrrr2,2 … rrrrr2,n
uuuuunnnnn RRRRRm,1 rrrrrm,2 … RRRRRm,n
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ự.Tập hợp những rating r của người dùng ( bao gồm những giá trị chưa biết) tạo thành ma trận goi là utility matrix
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: uuuuuU,U, iiiiiuuuuuargarg maxmaxfffff(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 Yêu
Yêu cầcầuuuuu bàicầ bàibài tttttoán:oán:oán: 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.4
2.4 GiảiGiảiGiải quququyếtyếtyết vấnvấnvấn đđđđđề:ề: 2.4.1
2.4.1 PhươngPhươngPhương ááááánnnnn 11111::::: Ở phương pháp 1 chúng tôi đưa ra phương án gợi ý sản phẩm cho người dùng dựa trên nhómContent-based systems( đánh giá những đặc tính tương quan của các
Trang 9Ta thấy : Vì tính chất của ma trận đường chéo nên ta có thể khai triển ��×�:
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à bằng 0Khi đó ta có thể xấp xỉ ma trận A bằng tổng của k r ma trận có rank 1, từ đó:<
AAAAA ≈ AkAkAk === ������++ �������++ … …… +++ � kkkkkuuuuukkkkk��
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 qua 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à Frobineus 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 r ma trận có rank 1 còn được gọi là Truncaded SVD.< Bằng cách này ta chỉ tạo ngẫu nhiên và cập nhật trên từng hàng của ma trận X và Y.
Trang 10= ∑��=�+1�2�( Biểu thức trong trace là số vô hướng )
Như vậy, ta chỉ chọn ra top t trị riêng có giá trị lớn nhất nhất vì khi đó sai số của hai ma trận sẽ là nhỏ nhất vì bằng tổng bình phương của các trị riêng còn lại.
Suy ra : sai số do xấp xỉ càng nhỏ nếu phần trị riêng bị truncated có giá trị càng nhỏ so với phần trị riêng được giữ lại Đây là một định lý quan trọng giúp xác định việc xấp xỉ ma trận dựa trên lượng thông tin muốn giữ lại.
Hệ quả : Phương pháp truncated SVD còn cho ta biết được tỉ lệ phần trăm lượng thông tin lưu trữ trong ma trận xấp xỉ thông qua công thức :
Trang 112.4.2 PhươngPhươngPhương ááááánnnnn 22222:::::Ở phương pháp 2 này chúng tôi sẽ đưa ra hướng gợi ý dựa vào Nhóm Collaborative filtering ( hệ thống gợi ý các items dựa trên sự tương quan ( similarity) giữa
Với: ví dụ trên là sự đánh giá của 4 người dùng với 6 bộ phim trên nền tảng hệ thống Mức đánh giá sự yêu thích sẽ là từ 1 đến 5 0 sẽ là chưa xem bộ phim đó Ở đây ta giả sử mọi bộ phim xem qua đều được đánh giá
Từ đây ta lập được UTILITY MATRIX Amxn:
Trang 12+U làlàlà mamama trậntrậntrận (chứa các dữ liệu đặc tính của items) cho ta thấy được sự tương quan giữa các item với nhau :
+��làlà mamama tttttrậnrậnrận (chứa các dữ liệu tương quan của users) cho ta thấy được sự tương quan giữa các users.
Để dễ so sánh đặc tính các users với nhau thuận tiện cho việc gợi ý và lưu trữ.Bằng phương pháp Truncated ta có thể hợp nhất chiều của dữ liệu xuống 2 sấp sĩ với dữ liệu đánh giá của
−0.0532 là gần giống nhau nhất (similar) => Sam và LYDIA có những điểm tương đồng Ta kiểm tra lại trong UTILITY MATRIX ban đầu nhận thấy nhận xét trên đúng.:
Sam = (5 5 3 0 5 5)� tương đồng với Lydia= (5 4 3 3 5 5)�
Vậy không cần xem xét những rating của những users ta cũng có thể dự biết được sự tương quan giống nhau giữa những users với nhau Hệ thống recommend của ta chỉ cần so sánh
Trang 13những dữ liệu tương quan trong V(T) và phát hiện ra những users có dữ liệu tương quan sai số ít nhất đối với dữ liệu tương quan của người dùng hiện tại.Từ đó hệ thống sẽ đưa ra những gợi ý những items mà users tương quan đánh giá cao cho người dùng hiện tại Như ví dụ cụ thể ở trên do Sam và Lydia có dữ liệu tương gần giống nhau nhất, hệ thống sẽ chạy thuật toán gợi ý cho Sam những phim mà LYDIA đã xem mà Sam chưa xem và sắp xếp thứ tự phim từ trên xuống theo mức độ đánh giá của LYDIA Và đồng thời ta cũng có thể gợi ý cho Lydia những phim mà được Sam đánh giá cao.
Tuy nhiên đối với một hệ dữ liệu lớn và luôn được cập nhập người dùng mới thưởng xuyên thì việc phân tích liên tục UTILITY MATRIX để đánh giá mức độ tương quan giữa các users thì rất tốn thời gian và không gian lưu trữ
Ta có hướng giải quyết sau : Tiếp tục với bài toán trên giả sử có một users mới tên là Jess Users này đã đánh giá (rating) các bộ phim như sau :
JJJJJ ==== (5 5 0 0 0 5)�
Để tìm được “đặc tính” của users này chúng ta sẽ nén thông tin mới của users này về 2 chiều trong �� Nói cách khác ta sẽ đưa thông tin rating mới của users Jess mã hóa thành dữ liệu tương quan users trong ma trận ��từ đó ta đã có cơ sở để so sánh đặt tính của users mới mà không cần áp dụng thuật toán phân tích cho toàn bộ ma trận A khi thêm rating của Jess vào 1 lần nữa
Công thức để tính “đặc tính” của 1 users mới thêm vào
��= ��� �� �−�
Sau khi đã xác định được dữ liệu tương quan users trong ��của users mới từ những dữ liệu có sẵn trong �� Ta có thể tìm thấy được người có sự tương quan gần nhất với users đó nhất Từ đó hệ thống sẽ gợi ý cho users mới những nội dung ( bộ phim ) mà đã được người dùng tương quan đánh giá cao.
Như trong ví dụ trên ta thấy được dữ liệu tương quan của users Jess gần giống với Sam và Melody Vì thế hệ thống sẽ đưa những bộ phim được Sam và Melody xem và đánh giá cao lên đầu để gợi ý cho Jess.Vậy với cách làm trên chúng ta vừa có thể tiết kiệm không gian lưu trữ vừa có thể thu ngắn thời gian để hệ thống đưa ra những gợi ý tốt nhất cho người dùng mới.
Trang 14TÀI LLLLLIỆUIỆUIỆU THAMTHAMTHAM KHẢOKHẢO
[1] Đặng Văn Vinh, Giáo trình đại số tuyến tính , NXB Đại học Quốc Gia TP Hồ Chí Minh 2020
[2] Nguyễn Tiến Dũng, Đại số tuyến tính ( Lý Thuyết và Ứng Dụng ), NXB Đại học Quốc Gia TP Hồ Chí Minh 2020
[3] DeAngelis, G C.; Ohzawa, I.; Freeman, R D (October 1995) "Receptive-field dynamics in the central visual pathways".Trends Neurosci.
[4] Machinelearningcoban , Bài 26 : Singular Value Decomposition;Bài 25 : Matrix Factorization ; Bài 24:Neighborhood-Based Collaborative Filtering; Bài 23: Content-based Recommendation Systems.
[5] Phạm Hoàng Trương, Luận văn Thạc Sĩ Khoa Học Máy Tính : Nghiên cứu và ứng dụng Kỹ Thuật SVD vào hệ thống gợi ý , Đại học Bách Khoa Đà Nẵng
[6] Singular Value Decomposition- Stanford University [7] Singular Value Decomposition - Princeton