sự giới thiệu

Xem trên TensorFlow.org Xem nguồn trên GitHub

Đề xuất được cá nhân hóa được sử dụng rộng rãi cho nhiều trường hợp sử dụng khác nhau trên thiết bị di động, chẳng hạn như truy xuất nội dung phương tiện, đề xuất sản phẩm mua sắm và đề xuất ứng dụng tiếp theo. Nếu bạn quan tâm đến việc cung cấp các đề xuất được cá nhân hóa trong ứng dụng của mình đồng thời tôn trọng quyền riêng tư của người dùng, chúng tôi khuyên bạn nên khám phá ví dụ và bộ công cụ sau.

Bắt đầu

Chúng tôi cung cấp ứng dụng mẫu TensorFlow Lite trình bày cách giới thiệu các mặt hàng có liên quan cho người dùng trên Android.

Ví dụ về Android

Nếu bạn đang sử dụng nền tảng không phải Android hoặc bạn đã quen thuộc với các API TensorFlow Lite, bạn có thể tải xuống mô hình đề xuất dành cho người mới bắt đầu của chúng tôi.

Tải xuống mô hình khởi động

Chúng tôi cũng cung cấp tập lệnh đào tạo trong Github để đào tạo mô hình của riêng bạn theo cách có thể định cấu hình.

Mã đào tạo

Hiểu kiến ​​trúc mô hình

Chúng tôi tận dụng kiến ​​trúc mô hình bộ mã hóa kép, với bộ mã hóa ngữ cảnh để mã hóa lịch sử người dùng tuần tự và bộ mã hóa nhãn để mã hóa đề xuất được dự đoán. Sự tương tự giữa mã hóa ngữ cảnh và mã hóa nhãn được sử dụng để thể hiện khả năng ứng viên được dự đoán đáp ứng nhu cầu của người dùng.

Ba kỹ thuật mã hóa lịch sử người dùng tuần tự khác nhau được cung cấp với cơ sở mã này:

  • Bộ mã hóa Bag-of-words (BOW): tính trung bình các lần nhúng hoạt động của người dùng mà không cần xem xét thứ tự ngữ cảnh.
  • Bộ mã hóa mạng nơ-ron chuyển đổi (CNN): áp dụng nhiều lớp mạng nơ-ron tích hợp để tạo mã hóa ngữ cảnh.
  • Bộ mã hóa mạng nơ-ron tuần hoàn (RNN): áp dụng mạng nơ-ron tuần hoàn để mã hóa chuỗi ngữ cảnh.

Để lập mô hình cho từng hoạt động của người dùng, chúng tôi có thể sử dụng ID của mục hoạt động (dựa trên ID) hoặc nhiều tính năng của mục (dựa trên tính năng) hoặc kết hợp cả hai. Mô hình dựa trên tính năng sử dụng nhiều tính năng để mã hóa chung hành vi của người dùng. Với cơ sở mã này, bạn có thể tạo mô hình dựa trên ID hoặc dựa trên tính năng theo cách có thể định cấu hình.

Sau khi đào tạo, mô hình TensorFlow Lite sẽ được xuất, có thể cung cấp trực tiếp các dự đoán top-K giữa các ứng viên được đề xuất.

Sử dụng dữ liệu đào tạo của bạn

Ngoài mô hình được đào tạo, chúng tôi cung cấp bộ công cụ nguồn mở trong GitHub để đào tạo các mô hình với dữ liệu của riêng bạn. Bạn có thể làm theo hướng dẫn này để tìm hiểu cách sử dụng bộ công cụ và triển khai các mô hình được đào tạo trong các ứng dụng di động của riêng bạn.

Vui lòng làm theo hướng dẫn này để áp dụng kỹ thuật tương tự được sử dụng ở đây để đào tạo mô hình đề xuất bằng cách sử dụng bộ dữ liệu của riêng bạn.

Các ví dụ

Ví dụ, chúng tôi đã đào tạo các mô hình đề xuất với cả cách tiếp cận dựa trên ID và dựa trên tính năng. Mô hình dựa trên ID chỉ lấy ID phim làm đầu vào và mô hình dựa trên tính năng nhận cả ID phim và ID thể loại phim làm đầu vào. Vui lòng tìm các ví dụ đầu vào và đầu ra sau đây.

Đầu vào

  • ID phim bối cảnh:

    • Vua sư tử (ID: 362)
    • Câu chuyện đồ chơi (ID: 1)
    • (và nhiều hơn nữa)
  • ID thể loại phim bối cảnh:

    • Hoạt ảnh (ID: 15)
    • Trẻ em (ID: 9)
    • Nhạc kịch (ID: 13)
    • Hoạt ảnh (ID: 15)
    • Trẻ em (ID: 9)
    • Hài (ID: 2)
    • (và nhiều hơn nữa)

Kết quả đầu ra:

  • ID phim được đề xuất:
    • Câu chuyện đồ chơi 2 (ID: 3114)
    • (và nhiều hơn nữa)

Điểm chuẩn hiệu suất

Số chuẩn hiệu suất được tạo bằng công cụ được mô tả ở đây .

Tên Model Kích thước mô hình Thiết bị CPU
đề xuất (ID phim làm đầu vào) 0,52 Mb Pixel 3 0,09 mili giây *
Pixel 4 0,05 mili giây *
đề xuất (ID phim và thể loại phim làm đầu vào) 1,3 Mb Pixel 3 0,13ms *
Pixel 4 0,06 mili giây *

* 4 chủ đề được sử dụng.

Sử dụng dữ liệu đào tạo của bạn

Ngoài mô hình được đào tạo, chúng tôi cung cấp bộ công cụ nguồn mở trong GitHub để đào tạo các mô hình với dữ liệu của riêng bạn. Bạn có thể làm theo hướng dẫn này để tìm hiểu cách sử dụng bộ công cụ và triển khai các mô hình được đào tạo trong các ứng dụng di động của riêng bạn.

Vui lòng làm theo hướng dẫn này để áp dụng kỹ thuật tương tự được sử dụng ở đây để đào tạo mô hình đề xuất bằng cách sử dụng bộ dữ liệu của riêng bạn.

Mẹo để tùy chỉnh mô hình với dữ liệu của bạn

Mô hình được đào tạo trước được tích hợp trong ứng dụng demo này được đào tạo với tập dữ liệu MovieLens , bạn có thể muốn sửa đổi cấu hình mô hình dựa trên dữ liệu của riêng mình, chẳng hạn như kích thước vocab, độ mờ nhúng và độ dài ngữ cảnh đầu vào. Dưới đây là một vài lời khuyên:

  • Độ dài ngữ cảnh đầu vào: Độ dài ngữ cảnh đầu vào tốt nhất thay đổi theo bộ dữ liệu. Chúng tôi khuyên bạn nên chọn độ dài ngữ cảnh đầu vào dựa trên mức độ tương quan của các sự kiện nhãn với sở thích dài hạn so với bối cảnh ngắn hạn.

  • Chọn loại bộ mã hóa: chúng tôi khuyên bạn nên chọn loại bộ mã hóa dựa trên độ dài ngữ cảnh đầu vào. Bộ mã hóa Bag-of-words hoạt động tốt với độ dài ngữ cảnh đầu vào ngắn (ví dụ: <10), bộ mã hóa CNN và RNN mang lại nhiều khả năng tóm tắt hơn cho độ dài ngữ cảnh đầu vào dài.

  • Việc sử dụng các tính năng cơ bản để đại diện cho các mục hoặc hoạt động của người dùng có thể cải thiện hiệu suất của mô hình, chứa các mục mới tốt hơn, có thể giảm quy mô không gian nhúng do đó giảm mức tiêu thụ bộ nhớ và thân thiện hơn với thiết bị.