How image search works at Dropbox
Bài tóm tắt Dropbox 2021 3. Quy mô lớn Độ khó: Trung bình
Dropbox · 2021 · 3. Quy mô lớn · Độ khó: Trung bình — bài gốc
Bối cảnh
- Ảnh là loại file phổ biến trên Dropbox nhưng tên file do máy ảnh đặt (
2017-07-04 12.37.54.jpg) nên search theo tên vô dụng. Cần search theo nội dung ảnh bằng vài từ mô tả.
Thay đổi chính
- Hàm relevance: image classifier (EfficientNet train trên OpenImages, khoảng 8.500 lớp) biến mỗi ảnh thành vector điểm theo lớp; query được đổi thành vector cùng không gian bằng word vector (ConceptNet Numberbatch, đa ngôn ngữ nên "dog" và "chien" gần nhau, không cần dịch) nhân với ma trận word vector của tên các lớp. Điểm = tích vô hướng hai vector.
- Không dựng ma trận đầy đủ lúc query: một user có thể có hàng triệu ảnh × hàng nghìn chiều, đổi mỗi khi file đổi. Thay vào đó tái dùng search engine sẵn có Nautilus: forward index lưu vector của ảnh, inverted index có một posting list cho mỗi lớp.
- Xấp xỉ thưa: giữ 10 phần tử lớn nhất của vector query và 50 của vector ảnh. Lưu trữ mỗi ảnh từ khoảng 80 KB (10.000 float + 10.000 posting) còn khoảng 500 byte; query đọc 10 posting list thay vì khoảng 5.000, ngang search văn bản (khoảng 10). Theo Dropbox, cắt như vậy không làm giảm chất lượng.
- Nhờ latency ngang search văn bản, search ảnh và search văn bản chạy song song, gộp kết quả. Bật cho gói Professional và Business (2021), cạnh search OCR cho ảnh tài liệu và full-text.
Vì sao
- Dựng hệ vector riêng cho hàng trăm triệu user là quá đắt; biểu diễn ảnh dưới dạng "từ" (lớp) với trọng số cho phép dùng lại nguyên inverted index, cập nhật index và phân quyền đã có.
Bài học cho SWE
- Trước khi thêm một kho vector, thử xem vector có thể làm thưa để đi qua inverted index sẵn có không: phần lớn trọng số gần 0 đóng góp rất ít.
- Đo chi phí index trên mỗi tài liệu: ở đây index dày còn lớn hơn chính file ảnh.
- Giữ chi phí đọc ngang đường đi cũ thì tính năng mới chạy song song được mà không làm user chờ thêm.
Liên quan
- Vector search và index ANN · Hạ tầng tìm kiếm
- So sánh: Instacart 2022 (ANN dày cạnh keyword) · Canva 2025 (embedding dày + vector DB bên ngoài)
#image search#image classifier#EfficientNet#word vectors#ConceptNet Numberbatch#Nautilus#inverted index#forward index#sparse vector#top-k
Được nhắc tới trong
Chủ đề (2)
Công ty (1)
Bài tóm tắt (1)