#136 - Recommendation Systems in the Real world
Những bài viết hay
Recommendation Systems in the Real world
Hệ thống gợi ý (recommendation system) là một trong những hệ thống và chức năng thường gặp khi bạn phải xây dựng một sản phẩm phần mềm (như là giới thiệu một video mà bạn có thể muốn coi trên Netflix). Thường thì một recommendation system sẽ có 3 thành phần chính:
1) Candidate Generation: công đoạn này được dùng để lấy dữ liệu về hoạt động của người dùng trước đó và một phần dữ liệu để được gợi ý. Thường thì sẽ có 2 cách để tiếp cận:
a) Content-Based Filtering: cách gợi ý này dùng để gợi ý những sản phẩm giống như những gì người dùng thích lúc trước
b) Collaborative FIltering: cách gợi ý này dùng để gợi ý những sản phẩm dựa theo những gì những người dùng giống như bạn thích
2) Scoring: công đoạn này sẽ giúp chấm điểm cho từng sản phẩm để xem việc tương ứng của sản phẩm đó như thế nào đối với người dùng
3) Re-ranking: công đoạn này sẽ giúp cải thiện điểm của từng sản phẩm bằng việc tính thêm những yếu tố khác như là nếu sản phẩm mới được đăng gần đây hoặc là người dùng đánh dấu là không thích sản phẩm đó
Bài viết sau đây được tác giả giải thích thêm cách một hệ thống gợi ý thường được xây dựng như thế nào
5 UI Design Tips for Engineers — blog.usebutton.com
Bạn đã từng phải tự mình thiết kế UI/UX cho sản phẩm hay cho team bạn chưa cho dù rằng bạn chỉ là một kỹ sư phần mềm bình thường với không có tí kiến thức nào về mảng thiết kế? Bài viết sau đây được viết ra để đưa ra 5 lời khuyên giúp một kỹ sư phần mềm không quá thất bại về mảng thiết kế:
1: Dùng những mẫu thiết kế phần mềm được thành lập sẵn
2: Tạo những cấp bậc trực quan thông qua việc dùng khoảng trắng, màu sắc, và phân loại
3: Để thêm những dòng text cho icons khó nhận biết
4: Dùng những dòng chữ thiết thực cho demo thay vì dùng placeholders
5: Thiết kế với khả năng tiếp cận cao
Giới thiệu về tổng hợp tiếng nói
Trong bài viết sau, tác giả giới thiệu một cách tổng quan về Text-to-speech (Tổng hợp tiếng nói). Tổng hợp tiếng nói về bản chất là quá trình tạo tín hiệu tiếng nói từ văn bản. Một hệ thống tổng hợp tiếng nói có thể được ứng dụng trong rất nhiều bài toán khác nhau có thể lấy ví dụ như báo nói.
Trong bài viết, tác giả giới thiệu bắt đầu từ lịch sử phát triển đến các phương pháp tổng hợp tiếng nói hiện nay. Bài viết bằng tiếng Việt, giúp các bạn không chuyên về AI/ML có thể dễ dàng tiếp cận và nắm bắt được các khái niệm cơ bản.
Code & Tools
A minimal PyTorch re-implementation of the OpenAI GPT (Generative Pretrained Transformer) training
DevTools for Redux with hot reloading, action replay, and customizable UI
Góc Database
Trong thế giới Database, Index là một thành phần gần như không thể thiếu. Nhiều kỹ thuật như B-tree/B+tree hay Hashtable đã được sử dụng một cách rộng rãi với những ưu điểm đã được chứng minh. Nhưng liệu có thể làm tốt hơn nữa hay không?
Được đưa ra trong một bài báo gần đây của một nhóm tác giả đứng đầu bởi Kraska, họ đã đề xuất kỹ thuật Learned Index, một kỹ thuật sử dụng một mô hình học máy để thay thế cho các loại index phổ biến. Điều rút ra được đối với Learned Index đó là thậm chí chỉ một phiên bản đơn giản cũng đã mang đến sự cải thiện hiệu suất đáng ngạc nhiên. Tuy nhiên, Learned Index chỉ áp dụng được cho query pattern dạng read-only.
Đối với bài báo này, nhóm tác giả đưa ra đề xuất một cấu trúc index in-memory gọi là ALEX, một cấu trúc dữ liệu động kết hợp với mô hình học máy giúp cung cấp cơ chế index hiệu quả hơn so với Learned Index. ALEX, được cho rằng sẽ áp dụng được cho các query pattern không chỉ đọc mà còn insert, update, delete, bulk loading, ... Các kỹ thuật được chia sẻ trong bài báo này để góp phần xây dựng nên ALEX cũng được đề cập trong bài báo:
Cấu trúc lưu trữ mới: ALEX đưa ra một cấu trúc cây mới, tương tự B+tree nhưng cho phép các node mở rộng hoặc thu hẹp với tỉ lệ khác nhau. Ngoài ra việc lưu trữ các dòng dữ liệu cũng được áp dụng Gapped Array.
Chiến lược tìm kiếm hiệu quả: ALEX cung cấp một cơ chế insert được tối ưu dựa theo mô hình học máy. Kèm theo đó là việc tìm kiếm cũng được dùng mô hình để dự đoán vị trí dự kiến của dữ liệu cần tìm. Nếu vị trí dự kiến không phải vị trí cần tìm, thuật toán sẽ tiếp tục mở rộng phạm vị từ vị trí dự đoán ban đầu. Mặc dù chiến lược này nghe có vẻ ngẫu nhiên, nhưng nó đã được các tác giả chứng minh thông qua một vài thử nghiệm là hiệu quả hơn so với binary search.
Ngoài ra để đảm bảo mô hình luôn được cập nhật khi dữ liệu thay đổi, ALEX tích hợp cơ chế tự training lại thông qua mô hình chi phí dựa trên workload thực tế. Việc áp dụng các kỹ thuật này giúp cho mô hình index luôn duy trì hiệu quả mà không cần yếu tố con người can thiệp để chỉnh sửa thông số phù hợp.
Dựa theo kết quả đo đạc, đối với lượng query dạng chỉ đọc (read-only), ALEX hiệu quả gấp 2.2 lần so với Learned Index về mặt tốc độ, kích thước index cũng nhỏ hơn 15 lần. Còn đối với query dạng đọc-ghi thì ALEX hiệu quả hơn B+Tree gấp 4.1 lần, kích thước index cũng nhỏ hơn 2000 lần.
Mời các bạn cùng đọc bài viết gốc để hiểu thêm chi tiết: link
Có thể bạn chưa biết
Có bao giờ bạn tự hỏi, các hệ thống GPS đã hoạt động như thế nào?
Khởi đầu từ năm 1995, Global Positioning System (GPS), tên gọi ban đầu là NavStar được xây dựng bởi quân đội Hoa Kỳ. Các vệ tinh di chuyển đi qua cùng 1 điểm hai lần mỗi ngày theo quỹ đạo từ Tây sang Đông. GPS yêu cầu xác định được khoảng cách từ bạn tới tối thiểu ba vệ tinh. Tín hiệu GPS bao gồm vị trí của vệ tinh và thời gian theo đồng hồ bên trong của vệ tinh. Nếu chúng ta đo thời gian mà chúng ta nhận được tin nhắn và so sánh sự khác biệt về thời gian với thời gian tin nhắn được gửi từ vệ tinh, chúng ta có thể biết được tin nhắn đã được truyền đi trong bao lâu. Ngoài ra, biết rằng tất cả các tín hiệu này được gửi đi với tốc độ ánh sáng, chúng ta có thể nhân hai giá trị này với nhau để tính khoảng cách đường thẳng của bạn đến một vệ tinh cụ thể.
Sponsor
“We’ve built an engineering and AI powerhouse in bustling southern Vietnam, where we tackle AI’s biggest challenges in the public safety space. With cameras that depict truth, automated reporting and evidence management that will triple the amount of time officers can spend serving their communities, and Smart Weapons that protect life in the moment of conflict, Axon has revolutionized the world of public safety - and by working here, you can contribute every day to the mission to protect life.
Opening Jobs:
Frontend Software Engineer - Evidence Viewing & Playback
QA Engineering Manager, Digital Evidence Management System “
Quotes
When to use iterative development? You should use iterative development only on projects that you want to succeed.
– Martin Fowler