[Q] Bài toán hồi quy nhiều đầu vào

regression

#1

Lúc đi phỏng vấn mình bị hỏi một câu mà đến giờ vẫn chưa biết giải pháp nào tốt hơn.

Giả sử phải ước lượng giá của một sản phẩm thông qua ảnh của sản phẩm đó. Mỗi sản phẩm có thể được chụp tại nhiều góc khác nhau tại các thời điểm khác nhau. Các sản phẩm có thể có số góc chụp khác nhau. Làm thế nào để có một mô hình tốt cho bài toán này.

Mình hiện có một ý tưởng duy nhất là xây dựng một bộ hồi quy đầu vào là một ảnh, đầu ra là giá của sản phẩm đó. Nếu có nhiều ảnh đầu vào thì ước lượng giá tương ứng với mỗi ảnh rồi lấy trung bình.

Các bạn có ý tưởng nào tốt hơn không?


#2

Có thể dùng bài toán search ảnh để được các góc độ sản phẩm khác nhau về góc quy chuẩn. Sau đó mới đánh giá . https://lear.inrialpes.fr/pubs/2010/JDSP10/jegou_compactimagerepresentation.pdf


#3

KLQ nhưng khi mà gặp 1 bài toán mới ntn, cách anh tìm paper như thế nào vậy ạ?


#4

Không biết mọi người có hay hỏi ngược lại người phỏng vấn của mình không. Chứ mình đi phỏng vấn mình toàn hỏi ngược lại.

  1. Tại sao anh/chị lại dùng ảnh sách để định giá 1 sản phẩm. Chúng ta có nhiều cách để định giá 1 sản phẩm hơn là dùng ảnh.
  2. Phía bên anh/chị đã có dữ liệu gì rồi, nếu chỉ có dữ liệu ảnh thì liệu tôi có thể nhờ một ai đó crawl thêm thông tin trên mạng không.
  3. Dùng OCR để trích xuất thông tin như tên tác giả, tên sách, tên nxb, những features này tốt hơn. Từ tên có thể gom cụm các thể loại, từ tác giả và nxb có thể dùng Trend để tính toán.

#5

@lhduc94: Theo mình đây là câu hỏi để đánh giá khả năng tư duy giải quyết vấn đề trên 1 nguồn dữ liệu có sẵn. Nếu câu hỏi là làm sao để giải quyết bài toán định giá sản phẩm thì cách hỏi ngược của bạn sẽ rất hay, còn trong tình huống này có vẻ không phù hợp lắm. Mình có thể định ra 1 tình huống (mà có lẽ đấy là background của bài toán này luôn) đó là đây là trang bán hàng cho hàng cũ (ebay, mercari, avito) trong đó người bán đăng ảnh của sản phẩm lên và system sẽ cố đưa ra 1 giá hợp lý cho sản phẩm đó như 1 suggestion cho người bán để sản phẩm đó có thể đạt được xác suất dc mua cao hơn. Nếu là đề bài dạng này thì không thể crawl ảnh hay làm các feature engineering khác như bạn đề xuất.


#6

Dữ kiện đầu vào có location chụp ko bạn? Nếu chụp trong siêu thị với ánh sáng nhân tạo thì theo mình chỉ dữ liệu góc chụp có ý nghĩa, thời gian chụp không có ý nghĩa


#7

À, bài toán của bạn là Price Optimization . Và mình đang làm cái đó, nếu như vậy thì 1 thông tin là 1 ảnh sẽ không đủ đâu bạn :grin::grin:.Không đơn giản như bạn nghĩ đâu, có nhiều features để làm sao ước lượng được demand lắm bạn à. Hơn nữa khi bạn làm 1 product thì không nên tự giới hạn dữ liệu của mình, do vậy cái gọi là không thể không được hay lắm :smiley: :smiley:


#8

Với bài toán của bạn Tiệp thì mình cũng không nghĩ ra cách ji khác ngoài việc sử dụng trung bình của các input.
Tuy nhiên với giả thuyết rằng bình thường các sản phẩm sẽ có nhiều hơn 1 input và có khả năng từ góc độ khác nhau thì việc tổng quát hóa bài toán để đạt accuracy tốt hơn thì theo mình lúc train, với mỗi input, nên sử dụng 3-5 cách augmentation khác nhau (xoay hình, lật hình, crop …) để biến 1 input thành 3-5 input và output sẽ là trung bình của các input biến thể này.
Với cách làm như vậy thì trong quá trình train, mình đã mô phỏng phần nào cái situation thật của việc infer, lúc đó thì mình nghĩ kết quả sẽ cho ra accuracy cao hơn cho test data


#9

Mình vừa search được 1 paper. Mình thì không rành DeepLearning lắm, mọi người tìm hiểu xem như nào

The Price is Right: Predicting Prices with Product Images


#10

Câu trả lời của mình là: Dựa vào các ảnh chụp để detect ra các sản phẩm tương tự của các đối thủ đang có ở trên thị trường. Dựa vào giá tiền trung bình của các sản phẩm kia mà đưa ra ước lượng giá cho mình.

P/S: Just for fun thôi nhé, mình không nghĩ ra cách gì khác cách của Tiệp.


#11

Nếu làm nghiên cứu thì mình thấy có thể thử làm 1 deep learning model: input ảnh, output giá (regression hay classification đều được vì classification -> infinity thì cũng như regression).

Nếu làm giải quyết cho công việc thì mình sẽ làm 1 pineline nhiều bước, vd như dùng 1 model chung chung để biết món đồ trong ảnh là gì (điện thoại xe hơi, …) rồi mỗi 1 nhóm đồ có 1 model riêng để output ra giá.


#12

Em thấy là lấy trung vị thì cho kết quả đáng tin hơn, vì lỡ có một số rất ít mẫu cho kết quả lệch quá nhiều so với giá trị trung bình của đa số mẫu còn lại sẽ kéo giá trị cuối cùng lệch ra xa kết quả trung bình của đa số mẫu này. Trong tập đầu vào chỉ cần có 1 vài ảnh bị mô hình nhầm với bộ sản phẩm khác có chênh lệch giá nhiều so với bộ đang xét sẽ làm kết quả lệch đi đáng kể. Theo em thì lấy trung vị kết quả hoặc tìm tâm cụm các kết quả trong bài toán phân cụm với 1 cụm.


#13

Bài này có vẻ khá giống với bài dự đoán xương của mura dataset @ngxbac nhỉ :smile: . Nó cho multiview vào input luôn


#15

Mình nghĩ từ thông tin có nhiều góc chụp thì có thể dùng nhiều models ví dụ như:

  • OCR để tách các thông tin text
  • Object detection để tách các thông tin logo thương hiệu hay loại sản phẩm
  • One-shot learning để tạo vector đặc trưng
  • Hay fancy hơn là 3D reconstruction để có các thông tin về kích thước, hình dáng

Sau đó mới đưa outputs của các models này qua model(s) hồi quy về giá cả sản phẩm.


#16

Em thấy cũng giống giống :smile:. Bên cạnh đó, sau khi em làm EDA thì nhận ra data của bọn MURA khá là lắt léo :joy:. E thử bao cách vẫn thế :expressionless:


#17

Thế mãi mới ko vượt qua dc baseline. Chỉ thằng làm ra dataset mới hiểu rõ dataset nó như nào.


#18

Baseline của nó thấp, vượt qua dễ lắm (0.705 Kappa). Em dùng single model đc 0.68 Kappa rồi. Kết quả tốt nhất là Best Radiologist Performance (0.778 Kappa). Vượt qua human performance này mới khó anh ạ :smiley:


#19

Oh vậy cái 0.778 ko phải model cnn dự đoán à hay ensemble đó. Nếu đã nói là baseline thì phải là automatic rồi. Thế thằng he_j bá đạo quá.


#20

Đây là kết quả của con người dự đoán anh ạ. Trong bài báo có nhắc đến đó.
Lúc nào về em bảo anh mấy cái lắt léo của data. Không cẩn thận dùng ImageNet là overfit đó.
P/S: Em đạt baseline của Stanford rồi nhé :smiley:


#21

Như anh Tiệp giải thích bài toán thì mình chưa biết được mỗi sản phẩm đã có giá đính kèm chưa. Nếu chưa có giá đính kèm mà dự đoán được giá dựa trên ảnh thì rất khó vì bài toán dự đoán giá là học có giám sát tức phải có Y. Việc hồi qui là bất khả thi. Mình thiên về trường hợp dữ liệu train là các bức ảnh của một sản phẩm kèm theo giá của nó. Cần dự đoán giá các sản phẩm từ các bức ảnh trên test. Và phương pháp phù hợp nhất mình nghĩ là nearest image search để tìm ra tập k bức ảnh tương đồng nhất với ảnh trên test, sau đó ước lượng giá của sản phẩm = bình quân k sản phẩm gần nhất. Tất nhiên cách này sẽ gặp hạn chế là nhiều sản phẩm trông có vẻ giống nhau nhưng giá có thể chênh lệch gấp nhiều lần. Chẳng hạn như các dòng máy tính, xe hơi ,… Bài toán này sẽ cần thêm nhiều dữ liệu nữa thì mới dự báo chuẩn xác được.