Lời giới thiệu
Tính tiện nghi của các hình thức mua sắm trực tuyến (Shopee, Lazada, …), hay sự đa dạng trong việc đề xuất nội dung trên các trang mạng xã hội (Instagram, X, …) níu chân ta lâu hơn trên các nền tảng ấy. Ví dụ, sau khi tôi mua một chiếc chân kê laptop trên Shopee, nó thường đề xuất cho tôi các mặt hàng tương tự, hơn thế nữa, các sản phẩm liên quan như là chuột, bàn phím và tai nghe. Ngoài ra, khi tôi tham gia vào cộng đồng chia sẻ kiến thức mang tính xây dựng (Medium, Viblo, Spiderum, …), các trang web ấy giúp tôi kết nối, chia sẻ với những cá nhân có cùng mối quan tâm. Có thể nói rằng, việc đề xuất là đóng vai trò quan trọng trong mọi khía cạnh của đời sống, xây dựng một hệ thống đề xuất trở thành một phần không thể thiếu khi xây dựng một nền tảng, cộng đồng.
Trong bài viết này, tôi tập trung vào việc mô tả khái niệm của hệ thống đề xuất và sẽ sử dụng việc mai mối tình cảm để làm một ví dụ ví von cho mô tả này. Tôi không đi sâu vào các chi tiết như là thuật toán hay thông số, tôi để một vài bài viết mà tôi thấy rất hay mà các bạn có thể dùng làm tài liệu tham khảo ở phần “Tham khảo". Lý do mà tôi chọn việc mai mối tình cảm vì chủ đề về tình cảm là một chủ đề mà phần lớn ta đều tham gia vào, cả trải nghiệm và bàn luận về nó, song song đó, các hoạt động của việc mai mối là thứ mà ta cũng đã dần quen (Tinder, Facebook Dating, Bumble, …). Phần còn lại của bài viết gồm:
- Khái niệm: tôi sẽ bàn về các khái niệm cần biết của một hệ thống đề xuất. Tôi khuyến khích bạn bạn nhớ các khái niệm này. Nhỡ đâu các bạn lại gặp nó trên hành trình của bản thân thì sao.
- Diễn giải: tôi sẽ gợi nên sự tương đồng của việc mai mối và hệ thống đề xuất. Sau đó, cho các bạn tìm hiểu sâu hơn, tôi sẽ dùng một ứng dụng hẹn hò để mô tả sâu hơn về cách thức hoạt động.
- Kết luận: tôi tóm tắt lại các nội dung đã bàn. Song song đó, tôi sẽ đề xuất vài hướng đi cho những con người có niềm đam mê về chủ đề này, cả không chuyên và chuyên sâu.
Khái niệm
Một hệ thống gợi ý (Recommender System - RecSys) sẽ quan sát hành vi của người dùng để thực hiện việc gợi ý, vì vậy, nó phải có các thông tin về:
- Người dùng: ngoài các thông tin cơ bản (tên, tuổi, ngày sinh), thông tin như nơi ở hoặc sở thích của cá nhân sẽ đem lại hiệu quả đề xuất rất cao. Ví dụ, tôi là người dùng mới, hệ thống chưa có cơ sở gì để đề xuất cho tôi, nó sẽ nhìn vào vùng tôi sống, giả sử rằng tôi có sở thích tương tự với người xung quanh và dựa vào đó để đề xuất.
- Sản phẩm: các đặc tính, mô tả của sản phẩm là cơ sở thiết yếu cho việc đề xuất. Ví dụ, miếng lót chuột trên Shopee thuột danh mục Gaming > Bàn di chuột; nếu tôi tìm kiếm miếng lót chuột nhiều, Shopee sẽ đề xuất cho tôi sản phẩm liên quan đến Gaming.
- Đánh giá, phản hồi: đây là cầu nối giữa người dùng và sản phẩm. Khi người dùng click vào sản phẩm hoặc mua, hệ thống sẽ ghi nhận lại hành động đó để đánh giá độ ưa thích của người dùng về sản phẩm đó.
Sau khi hệ thống trang thu thập được các dữ liệu về thông tin vừa kể trên, nó cần một hình thức để kết nối 3 thông tin đó. Một ý tưởng được nảy ra một cách tự nhiên là sử dụng một mà trên để thể hiện các thông tin đó, người ta gọi đó là Utility Matrix. Mô tả chi tiết hơn, nó là một ma trận 2 chiều giữa người dùng và sản phẩm, với mỗi ô trong ma trận được hiểu là đánh giá của người dùng với sản phẩm tương ứng. Có 2 hướng tiếp cận chính đó là:
-
Hệ thống dựa trên nội dung (content-based): đây là một hệ thống rất dễ để hình dùng khi mà nó nhìn vào lịch sử của người dùng để đề xuất. Ví dụ, phần lớn nguồn lực (thời gian, tiền bạc) của tôi khi mua sắm trên Shopee, tôi thường mua sản phẩm liên quan đến Gaming Gear. Shopee có cơ sở để đề xuất cho tôi nhiều hơn về nội dung liên quan đến Gamine Gear.
-
Hệ thống lọc cộng tác (collaborative-filtering): hệ thống được triển khai theo hình thức này kết hợp cả thông tin về người dùng và sản phẩm. Ví dụ, tôi và 2 người còn lại (anh A và chị B) đều thích chuột gaming. Ngoài ra, hệ thống còn biết anh A thì thích màn hình siêu mỏng, chị B thì thích tai nghe chuyên để nghe nhạc. Tuy nhiên, hệ thống lại ghi nhận tôi chưa có thông tin gì về 2 sản phẩm này. Thế là dựa vào một thứ gọi là “người dùng tương tự”, nếu tôi tương tự với người A nhiều hơn, hệ thống sẽ đề xuất cho tôi màn hinh siêu mỏng, trong tình huống ngược lại, tôi sẽ có nhiều gợi ý về tai nghe. Có nhiều cách để thu thập thông tin về việc sở thích của người dùng, trong đó gồm:
-
Cách rõ ràng (explicit): các chất lượng của sản phẩm sẽ được lấy từ việc tôi đánh giá, bình luận và thực hiện việc mua sản phẩm.
-
Cách mập mờ (implicit): không phải lúc nào bạn mà mua hàng thì bạn sẽ để lại một đánh giá hay phản hồi, hệ thống sẽ không có thông tin để thực hiện gợi ý về sau. Vì vậy, nó sẽ xem
- bạn tìm kiếm từ khóa nào ⇒ nó đánh giá mức độ ưa thích với tệp sản phẩm với từ khóa đó.
- bạn có click vào sản phẩm hay không (ở phương thức này, ngoài việc click chuột vào sản phẩm, click vào nút “Xem thêm” cũng được tính) ⇒ nó sẽ ngầm định rằng bạn có quan tâm đến nó (bỏ qua việc bạn có thực sự thích hay không)
- bạn có lưu nó vào mục “Xem sau” hay là “Wishlist” hay không
- bạn có ở lại quá lâu ở trang (Page Duration) hoặc tập trung vào mục nào của trang không (Page View)
Diễn giải
Nói về chuyện tình cảm, tôi lại nhớ đến những ngày tôi còn học cấp 3. Khi ấy, mọi chuyện hay mô tả các câu chuyện tình trong lớp được diễn đạt rất vô tư và hồn nhiên: “Ê, hình như trong lớp 2 đứa này đang ghiền nhau”, “Hình như nó thích con nhỏ kia”, “Thích nó hay sao mà địa gì mà địa ác dữ bây”, … Tôi không biết bằng cách nào mà tụi con gái lại nhạy ở các vấn đề tình cảm hơn, nhiều khi tụi con gái con biết trước khi thằng con trai đó biết về chuyện đó. Tôi lại nhớ đến các cuộc trò chuyện khi xưa với những người bạn của tôi về vấn đề ấy (chắc hẳn ai trong chúng ta cũng nói về chủ đề này trong khoảng thời gian 12 năm đi học nhỉ). Ngoài việc gán ghép ra, đôi khi, chúng tôi còn hỏi là thằng này trong số chúng tôi có thể “hợp tính” được với ai trong lớp. Đem câu chuyện đó với bối cảnh hiện tại, nó lại vừa khít với câu chuyện hiện tại, xét trong bối cảnh hệ thống đề xuất, nó sẽ vừa khít với việc trả lời:
- Dựa vào những người mày thich thì tao nghĩ … sẽ “hợp tính” với mày.
- Dựa vào những người mày thân thì tao nghĩ … sẽ “hợp tính” với mày. Cái đầu liên quan đến việc gợi ý dựa trên người đó và những người có độ thân thiết, cái sau dựa trên người đó và lịch sử tình trường của người đó. Tới đây, ta có thể thấy rằng, việc mai mối có cách thức hoạt động tương tự. Tôi sẽ nhìn vào những người trong lớp, tìm sự tương đồng giữa họ với bạn tôi rồi "cho lời khuyên chân tình".
Tinder là một ứng dụng hẹn hò vô cùng mạnh mẽ với cách thức hoạt động cùng cơ chế tương đồng với điều vừa nêu. Trong một bài viết của mình, Tinder tiết lộ thuật toán đề xuất của họ dựa trên yếu tố:
- Likes và Nopes: rõ ràng là những phần quan trọng để hiểu rõ những gì người dùng thích. Tinder trau dồi những kết quả phù hợp tiềm năng mà các người dùng có thể xem dựa trên tần suất hồ sơ của họ - và tất cả hồ sơ trong khu vực của họ - được Thích hoặc Không.
- Các bức ảnh tương đồng (Similar Photos): từ các tập hồ sơ mà người dùng thích, Tinder sẽ trích xuất các đặc trưng ẩn (ví dụ như phong cách, thú cưng, ăn uống) từ các bức ảnh trong tập hồ sơ ấy làm cơ sở cho việc đề xuất.
- Thông tin khi đăng nhập: dựa vào những câu hỏi do hệ thống đặt ra, khi người dùng điền vào các thông tin đó, hệ thống sẽ tạo ra một tập hồ sơ cho người dùng và bắt đầu thực hiện đề xuất. Với các dữ liệu vừa đưa ra, ta thấy rằng, trong ứng dụng hẹn hò, con người vừa đóng vai cả người dùng và sản phẩm (ta vừa lựa chọn người khác và ta là sự lựa chọn bởi người khác). Hệ thống đánh giá, phản hồi được cập nhật dựa trên thông từ việc người dùng Likes/Nopes, sự gợi ý này còn được thêm tính năng gợi ý từ các bức ảnh tương đồng (theo tôi, đây là 1 ý tưởng khá hay để làm giàu tính năng ứng dụng của mình).
Kết luận
Hệ thống đề xuất dần trở thành một phần không thể thiếu trong các ứng dụng xã hội. Việc đề xuất không chỉ mang tính kĩ thuật, nó góp mặt vào trong mọi thành tố trong cuộc sống của ta. Không khó để có thể nói rằng, sự cần thiết của nó tăng dần và song hành cùng thời gian. Cảm ơn vì bạn đã dành thời gian đọc đến đây. Chúc bạn có một ngày năng động nhé!
Các bạn cho mình xin một upvote và follow. Điều này sẽ giúp mình rất nhiều.
P/s: Với các bạn muốn tìm hiểu sâu hơn, tôi đề xuất một vài nguồn uy tín mà tôi cho là khá hay và bổ ích khi nói về chủ đề này, đặc biệt là cuốn sách “Practical Recommender System - Kim Falk”. Tôi mong bạn tìm thấy được vẻ đẹp trong chủ đề này.
Tham khảo
- https://machinelearningcoban.com/tabml_book/ch_recommendation_system/ml_1m.html
- http://infolab.stanford.edu/~ullman/mmds/ch9.pdf
- https://viblo.asia/p/lam-the-nao-de-xay-dung-mot-recommender-system-rs-phan-1-aWj53V2Gl6m
- https://www.dua.com/dating-app-algorithm/
- Practical Recommender System - Kim Falk