Tổng quan về Xếp hạng TensorFlow, Tổng quan về Xếp hạng TensorFlow

Thư viện Xếp hạng TensorFlow giúp bạn xây dựng khả năng học tập có thể mở rộng để xếp hạng các mô hình học máy bằng cách sử dụng các phương pháp và kỹ thuật được thiết lập tốt từ nghiên cứu gần đây. Một mô hình xếp hạng lấy một danh sách các mục tương tự, chẳng hạn như các trang web, và tạo một danh sách tối ưu hóa các mục đó, ví dụ: phù hợp nhất với các trang ít liên quan nhất. Học cách xếp hạng các mô hình có ứng dụng trong hệ thống tìm kiếm, trả lời câu hỏi, hệ thống giới thiệu và hệ thống đối thoại. Bạn có thể sử dụng thư viện này để tăng tốc xây dựng mô hình xếp hạng cho ứng dụng của mình bằng API Keras . Thư viện Xếp hạng cũng cung cấp các tiện ích quy trình làm việc để giúp dễ dàng mở rộng quy mô triển khai mô hình của bạn để hoạt động hiệu quả với các tập dữ liệu lớn bằng cách sử dụng các chiến lược xử lý phân tán.

Tổng quan này cung cấp một bản tóm tắt ngắn gọn về việc phát triển các mô hình học xếp hạng với thư viện này, giới thiệu một số kỹ thuật nâng cao được thư viện hỗ trợ và thảo luận về các tiện ích quy trình làm việc được cung cấp để hỗ trợ xử lý phân tán cho các ứng dụng xếp hạng.

Phát triển học tập để xếp hạng các mô hình

Xây dựng mô hình với thư viện Xếp hạng TensorFlow theo các bước chung sau:

  1. Chỉ định một chức năng tính điểm bằng cách sử dụng các lớp Keras ( tf.keras.layers )
  2. Xác định các chỉ số mà bạn muốn sử dụng để đánh giá, chẳng hạn như tfr.keras.metrics.NDCGMetric
  3. Chỉ định một hàm mất mát, chẳng hạn như tfr.keras.losses.SoftmaxLoss
  4. Biên dịch mô hình với tf.keras.Model.compile() và đào tạo nó với dữ liệu của bạn

Hướng dẫn Đề xuất phim sẽ hướng dẫn bạn những kiến ​​thức cơ bản về việc xây dựng mô hình học xếp hạng với thư viện này. Hãy xem phần Hỗ trợ xếp hạng phân tán để biết thêm thông tin về việc xây dựng các mô hình xếp hạng quy mô lớn.

Kỹ thuật xếp hạng nâng cao

Thư viện Xếp hạng TensorFlow cung cấp hỗ trợ áp dụng các kỹ thuật xếp hạng nâng cao do các nhà nghiên cứu và kỹ sư của Google nghiên cứu và triển khai. Các phần sau cung cấp tổng quan về một số kỹ thuật này và cách bắt đầu sử dụng chúng trong ứng dụng của bạn.

Thứ tự đầu vào danh sách BERT

Thư viện Xếp hạng cung cấp triển khai TFR-BERT, một kiến ​​trúc tính điểm kết hợp BERT với mô hình LTR để tối ưu hóa thứ tự các đầu vào danh sách. Là một ứng dụng ví dụ của phương pháp này, hãy xem xét một truy vấn và danh sách n tài liệu mà bạn muốn xếp hạng theo truy vấn này. Thay vì học một biểu diễn BERT được chấm điểm độc lập trên các cặp <query, document> , các mô hình LTR áp dụng cách giảm thứ hạng để cùng tìm hiểu một biểu diễn BERT nhằm tối đa hóa tiện ích của toàn bộ danh sách được xếp hạng đối với các nhãn cơ bản. Hình sau minh họa kỹ thuật này:

Biểu đồ BERT Xếp hạng TensorFlow
Hình 1 : Sơ đồ kiến ​​trúc TensorFlow Ranking BERT cho thấy một mô hình LTR chung trên danh sách n tài liệu sử dụng các biểu diễn BERT của các cặp <query, document> riêng lẻ.

Cách tiếp cận này làm phẳng một danh sách các tài liệu để xếp hạng theo một truy vấn thành một danh sách các bộ giá trị <query, document> . Các bộ giá trị này sau đó được đưa vào một mô hình ngôn ngữ được đào tạo trước BERT. Các kết quả đầu ra BERT tổng hợp cho toàn bộ danh sách tài liệu sau đó sẽ được tinh chỉnh chung với một trong các lỗi xếp hạng chuyên biệt có sẵn trong Xếp hạng TensorFlow.

Kiến trúc này có thể mang lại những cải tiến đáng kể về hiệu suất của mô hình ngôn ngữ được đào tạo trước, tạo ra hiệu suất hiện đại cho một số tác vụ xếp hạng phổ biến, đặc biệt khi nhiều mô hình ngôn ngữ được đào tạo trước được kết hợp. Để biết thêm thông tin về kỹ thuật này, hãy xem nghiên cứu liên quan. Bạn có thể bắt đầu bằng cách triển khai đơn giản trong mã ví dụ Xếp hạng TensorFlow.

Xếp hạng thần kinh Mô hình phụ gia tổng quát (GAM)

Đối với một số hệ thống xếp hạng, chẳng hạn như đánh giá tính đủ điều kiện cho vay, nhắm mục tiêu quảng cáo hoặc hướng dẫn điều trị y tế, tính minh bạch và khả năng giải thích là những cân nhắc quan trọng. Việc áp dụng Mô hình cộng gộp tổng quát (GAM) với các yếu tố trọng số được hiểu rõ có thể giúp mô hình xếp hạng của bạn dễ giải thích và dễ hiểu hơn.

GAM đã được nghiên cứu rộng rãi với các nhiệm vụ hồi quy và phân loại, nhưng cách áp dụng chúng vào ứng dụng xếp hạng thì chưa rõ ràng. Ví dụ: trong khi GAM có thể được áp dụng đơn giản để lập mô hình cho từng mục riêng lẻ trong danh sách, thì việc lập mô hình cả tương tác của mục và bối cảnh mà các mục này được xếp hạng là một vấn đề khó khăn hơn. Xếp hạng TensorFlow cung cấp triển khai GAM xếp hạng thần kinh , một phần mở rộng của các mô hình phụ gia tổng quát được thiết kế cho các vấn đề xếp hạng. Việc triển khai Xếp hạng TensorFlow của GAM cho phép bạn thêm trọng số cụ thể vào các tính năng của mô hình của bạn.

Hình minh họa sau đây về hệ thống xếp hạng khách sạn sử dụng mức độ liên quan, giá cả và khoảng cách làm các tính năng xếp hạng chính. Mô hình này áp dụng kỹ thuật GAM để cân nhắc các kích thước này theo cách khác nhau, dựa trên bối cảnh thiết bị của người dùng. Ví dụ: nếu truy vấn đến từ điện thoại, khoảng cách sẽ được chú trọng nhiều hơn, giả sử người dùng đang tìm kiếm một khách sạn gần đó.

Mô hình phụ gia tổng quát cho ví dụ xếp hạng
Hình 2 : Áp dụng GAM xếp hạng thần kinh cho tìm kiếm cục bộ. Đối với mỗi đặc điểm đầu vào, chẳng hạn như giá cả hoặc khoảng cách, một mô hình phụ tạo ra một điểm số phụ có thể được kiểm tra, mang lại sự minh bạch. Các tính năng ngữ cảnh như loại thiết bị của người dùng có thể được sử dụng để xác định trọng số của điểm số mô hình phụ.

Để biết thêm thông tin về việc sử dụng GAM với các mô hình xếp hạng, hãy xem nghiên cứu liên quan. Bạn có thể bắt đầu bằng cách triển khai mẫu của kỹ thuật này trong mã ví dụ Xếp hạng TensorFlow.

Hỗ trợ xếp hạng phân tán

TensorFlow Ranking được thiết kế để xây dựng hệ thống xếp hạng quy mô lớn từ đầu đến cuối: bao gồm xử lý dữ liệu, xây dựng mô hình, đánh giá và triển khai sản xuất. Nó có thể xử lý các tính năng dày đặc và thưa thớt không đồng nhất, mở rộng quy mô lên đến hàng triệu điểm dữ liệu và được thiết kế để hỗ trợ đào tạo phân tán cho các ứng dụng xếp hạng quy mô lớn.

Sơ đồ các lớp Xếp hạng TensorFlow
Hình 3 : Sơ đồ các lớp Xếp hạng TensorFlow để hỗ trợ xử lý phân tán. Các mô-đun màu xanh lá cây có thể được tùy chỉnh cho mô hình xếp hạng của bạn.

Thư viện cung cấp một kiến ​​trúc đường ống xếp hạng được tối ưu hóa, để tránh lặp đi lặp lại mã soạn sẵn và tạo các giải pháp phân tán có thể được áp dụng từ việc đào tạo mô hình xếp hạng của bạn đến việc phục vụ nó. Quy trình xếp hạng hỗ trợ hầu hết các chiến lược phân tán của TensorFlow, bao gồm MirroredStrategy , TPUStrategy , MultiWorkerMirroredStrategyParameterServerStrategy . Quy trình xếp hạng có thể xuất mô hình xếp hạng đã đào tạo ở định dạng tf.saved_model , hỗ trợ một số chữ ký đầu vào .. Ngoài ra, quy trình xếp hạng cung cấp các lệnh gọi lại hữu ích, bao gồm hỗ trợ trực quan hóa dữ liệu TensorBoardBackupAndRestore để giúp khôi phục các lỗi trong thời gian dài hoạt động đào tạo.

Thư viện xếp hạng hỗ trợ xây dựng triển khai đào tạo phân tán bằng cách cung cấp một tập hợp các lớp tfr.keras.pipeline , lấy trình tạo mô hình, trình tạo dữ liệu và siêu tham số làm đầu vào. Lớp tfr.keras.ModelBuilder dựa trên Keras cho phép bạn tạo một mô hình để xử lý phân tán và hoạt động với các lớp InputCreator, Preprocessor và Scorer có thể mở rộng:

Các lớp đường ống Xếp hạng TensorFlow cũng hoạt động với DatasetBuilder để thiết lập dữ liệu đào tạo, có thể kết hợp các siêu tham số. Cuối cùng, bản thân đường ống có thể bao gồm một tập hợp các siêu tham số như một đối tượng PipelineHparams .

Bắt đầu với việc xây dựng các mô hình xếp hạng phân tán bằng cách sử dụng hướng dẫn Xếp hạng phân tán .

,

Thư viện Xếp hạng TensorFlow giúp bạn xây dựng khả năng học tập có thể mở rộng để xếp hạng các mô hình học máy bằng cách sử dụng các phương pháp và kỹ thuật được thiết lập tốt từ nghiên cứu gần đây. Một mô hình xếp hạng lấy một danh sách các mục tương tự, chẳng hạn như các trang web, và tạo một danh sách tối ưu hóa các mục đó, ví dụ: phù hợp nhất với các trang ít liên quan nhất. Học cách xếp hạng các mô hình có ứng dụng trong hệ thống tìm kiếm, trả lời câu hỏi, hệ thống giới thiệu và hệ thống đối thoại. Bạn có thể sử dụng thư viện này để tăng tốc xây dựng mô hình xếp hạng cho ứng dụng của mình bằng API Keras . Thư viện Xếp hạng cũng cung cấp các tiện ích quy trình làm việc để giúp dễ dàng mở rộng quy mô triển khai mô hình của bạn để hoạt động hiệu quả với các tập dữ liệu lớn bằng cách sử dụng các chiến lược xử lý phân tán.

Tổng quan này cung cấp một bản tóm tắt ngắn gọn về việc phát triển các mô hình học xếp hạng với thư viện này, giới thiệu một số kỹ thuật nâng cao được thư viện hỗ trợ và thảo luận về các tiện ích quy trình làm việc được cung cấp để hỗ trợ xử lý phân tán cho các ứng dụng xếp hạng.

Phát triển học tập để xếp hạng các mô hình

Xây dựng mô hình với thư viện Xếp hạng TensorFlow theo các bước chung sau:

  1. Chỉ định một chức năng tính điểm bằng cách sử dụng các lớp Keras ( tf.keras.layers )
  2. Xác định các chỉ số mà bạn muốn sử dụng để đánh giá, chẳng hạn như tfr.keras.metrics.NDCGMetric
  3. Chỉ định một hàm mất mát, chẳng hạn như tfr.keras.losses.SoftmaxLoss
  4. Biên dịch mô hình với tf.keras.Model.compile() và đào tạo nó với dữ liệu của bạn

Hướng dẫn Đề xuất phim sẽ hướng dẫn bạn những kiến ​​thức cơ bản về việc xây dựng mô hình học xếp hạng với thư viện này. Hãy xem phần Hỗ trợ xếp hạng phân tán để biết thêm thông tin về việc xây dựng các mô hình xếp hạng quy mô lớn.

Kỹ thuật xếp hạng nâng cao

Thư viện Xếp hạng TensorFlow cung cấp hỗ trợ áp dụng các kỹ thuật xếp hạng nâng cao do các nhà nghiên cứu và kỹ sư của Google nghiên cứu và triển khai. Các phần sau cung cấp tổng quan về một số kỹ thuật này và cách bắt đầu sử dụng chúng trong ứng dụng của bạn.

Thứ tự đầu vào danh sách BERT

Thư viện Xếp hạng cung cấp triển khai TFR-BERT, một kiến ​​trúc tính điểm kết hợp BERT với mô hình LTR để tối ưu hóa thứ tự các đầu vào danh sách. Là một ứng dụng ví dụ của phương pháp này, hãy xem xét một truy vấn và danh sách n tài liệu mà bạn muốn xếp hạng theo truy vấn này. Thay vì học một biểu diễn BERT được chấm điểm độc lập trên các cặp <query, document> , các mô hình LTR áp dụng cách giảm thứ hạng để cùng tìm hiểu một biểu diễn BERT nhằm tối đa hóa tiện ích của toàn bộ danh sách được xếp hạng đối với các nhãn cơ bản. Hình sau minh họa kỹ thuật này:

Biểu đồ BERT Xếp hạng TensorFlow
Hình 1 : Sơ đồ kiến ​​trúc TensorFlow Ranking BERT cho thấy một mô hình LTR chung trên danh sách n tài liệu sử dụng các biểu diễn BERT của các cặp <query, document> riêng lẻ.

Cách tiếp cận này làm phẳng một danh sách các tài liệu để xếp hạng theo một truy vấn thành một danh sách các bộ giá trị <query, document> . Các bộ giá trị này sau đó được đưa vào một mô hình ngôn ngữ được đào tạo trước BERT. Các kết quả đầu ra BERT tổng hợp cho toàn bộ danh sách tài liệu sau đó sẽ được tinh chỉnh chung với một trong các lỗi xếp hạng chuyên biệt có sẵn trong Xếp hạng TensorFlow.

Kiến trúc này có thể mang lại những cải tiến đáng kể về hiệu suất của mô hình ngôn ngữ được đào tạo trước, tạo ra hiệu suất hiện đại cho một số tác vụ xếp hạng phổ biến, đặc biệt khi nhiều mô hình ngôn ngữ được đào tạo trước được kết hợp. Để biết thêm thông tin về kỹ thuật này, hãy xem nghiên cứu liên quan. Bạn có thể bắt đầu bằng cách triển khai đơn giản trong mã ví dụ Xếp hạng TensorFlow.

Xếp hạng thần kinh Mô hình phụ gia tổng quát (GAM)

Đối với một số hệ thống xếp hạng, chẳng hạn như đánh giá tính đủ điều kiện cho vay, nhắm mục tiêu quảng cáo hoặc hướng dẫn điều trị y tế, tính minh bạch và khả năng giải thích là những cân nhắc quan trọng. Việc áp dụng Mô hình cộng gộp tổng quát (GAM) với các yếu tố trọng số được hiểu rõ có thể giúp mô hình xếp hạng của bạn dễ giải thích và dễ hiểu hơn.

GAM đã được nghiên cứu rộng rãi với các nhiệm vụ hồi quy và phân loại, nhưng cách áp dụng chúng vào ứng dụng xếp hạng thì chưa rõ ràng. Ví dụ: trong khi GAM có thể được áp dụng đơn giản để lập mô hình cho từng mục riêng lẻ trong danh sách, thì việc lập mô hình cả tương tác của mục và bối cảnh mà các mục này được xếp hạng là một vấn đề khó khăn hơn. Xếp hạng TensorFlow cung cấp triển khai GAM xếp hạng thần kinh , một phần mở rộng của các mô hình phụ gia tổng quát được thiết kế cho các vấn đề xếp hạng. Việc triển khai Xếp hạng TensorFlow của GAM cho phép bạn thêm trọng số cụ thể vào các tính năng của mô hình của bạn.

Hình minh họa sau đây về hệ thống xếp hạng khách sạn sử dụng mức độ liên quan, giá cả và khoảng cách làm các tính năng xếp hạng chính. Mô hình này áp dụng kỹ thuật GAM để cân nhắc các kích thước này theo cách khác nhau, dựa trên bối cảnh thiết bị của người dùng. Ví dụ: nếu truy vấn đến từ điện thoại, khoảng cách sẽ được chú trọng nhiều hơn, giả sử người dùng đang tìm kiếm một khách sạn gần đó.

Mô hình phụ gia tổng quát cho ví dụ xếp hạng
Hình 2 : Áp dụng GAM xếp hạng thần kinh cho tìm kiếm cục bộ. Đối với mỗi đặc điểm đầu vào, chẳng hạn như giá cả hoặc khoảng cách, một mô hình phụ tạo ra một điểm số phụ có thể được kiểm tra, mang lại sự minh bạch. Các tính năng ngữ cảnh như loại thiết bị của người dùng có thể được sử dụng để xác định trọng số của điểm số mô hình phụ.

Để biết thêm thông tin về việc sử dụng GAM với các mô hình xếp hạng, hãy xem nghiên cứu liên quan. Bạn có thể bắt đầu bằng cách triển khai mẫu của kỹ thuật này trong mã ví dụ Xếp hạng TensorFlow.

Hỗ trợ xếp hạng phân tán

TensorFlow Ranking được thiết kế để xây dựng hệ thống xếp hạng quy mô lớn từ đầu đến cuối: bao gồm xử lý dữ liệu, xây dựng mô hình, đánh giá và triển khai sản xuất. Nó có thể xử lý các tính năng dày đặc và thưa thớt không đồng nhất, mở rộng quy mô lên đến hàng triệu điểm dữ liệu và được thiết kế để hỗ trợ đào tạo phân tán cho các ứng dụng xếp hạng quy mô lớn.

Sơ đồ các lớp Xếp hạng TensorFlow
Hình 3 : Sơ đồ các lớp Xếp hạng TensorFlow để hỗ trợ xử lý phân tán. Các mô-đun màu xanh lá cây có thể được tùy chỉnh cho mô hình xếp hạng của bạn.

Thư viện cung cấp một kiến ​​trúc đường ống xếp hạng được tối ưu hóa, để tránh lặp đi lặp lại mã soạn sẵn và tạo các giải pháp phân tán có thể được áp dụng từ việc đào tạo mô hình xếp hạng của bạn đến việc phục vụ nó. Quy trình xếp hạng hỗ trợ hầu hết các chiến lược phân tán của TensorFlow, bao gồm MirroredStrategy , TPUStrategy , MultiWorkerMirroredStrategyParameterServerStrategy . Quy trình xếp hạng có thể xuất mô hình xếp hạng đã đào tạo ở định dạng tf.saved_model , hỗ trợ một số chữ ký đầu vào .. Ngoài ra, quy trình xếp hạng cung cấp các lệnh gọi lại hữu ích, bao gồm hỗ trợ trực quan hóa dữ liệu TensorBoardBackupAndRestore để giúp khôi phục các lỗi trong thời gian dài hoạt động đào tạo.

Thư viện xếp hạng hỗ trợ xây dựng triển khai đào tạo phân tán bằng cách cung cấp một tập hợp các lớp tfr.keras.pipeline , lấy trình tạo mô hình, trình tạo dữ liệu và siêu tham số làm đầu vào. Lớp tfr.keras.ModelBuilder dựa trên Keras cho phép bạn tạo một mô hình để xử lý phân tán và hoạt động với các lớp InputCreator, Preprocessor và Scorer có thể mở rộng:

Các lớp đường ống Xếp hạng TensorFlow cũng hoạt động với DatasetBuilder để thiết lập dữ liệu đào tạo, có thể kết hợp các siêu tham số. Cuối cùng, bản thân đường ống có thể bao gồm một tập hợp các siêu tham số như một đối tượng PipelineHparams .

Bắt đầu với việc xây dựng các mô hình xếp hạng phân tán bằng cách sử dụng hướng dẫn Xếp hạng phân tán .