Lenskit: что такое канал, боковой канал, типизированный боковой канал

Как и название. Я не понимаю концепцию канала, побочного канала и типизированного побочного канала в исходном коде Lenskit. Кто-нибудь может дать мне краткое объяснение? Благодарю.

1 ответ

Решение

LensKit ведущий разработчик здесь.

Разреженные векторы и оцененные идентификаторы используются для привязки значений к идентификаторам (обычно пользователям или элементам). Боковые каналы - это механизм, связывающий дополнительные значения с каждым идентификатором. Это дополнительные данные (дополнительный "канал" данных), которые идут вместе с "первичными" данными.

"Типизированные" боковые каналы могут хранить данные любого типа (строка, список, что угодно). Тип связан с ключом, используемым для доступа к данным, поэтому вы можете выводить данные безопасным для типов способом.

"Распакованные" побочные каналы (иногда называемые "побочными каналами", особенно в старом коде) - это оптимизированная реализация побочных каналов Double,

Одно из мест, где они используются, - это ItemItemScorer сообщить, сколько соседей он использовал для оценки каждого элемента. FallbackItemScorer использует типизированный боковой канал для сообщения о том, какой из пунктов оценил результат.

Боковые каналы несколько запутанные и сложные, хотя. Мы рассматриваем способы изменения их работы в LensKit 3.0, чтобы сделать его более очевидным.

Другие вопросы по тегам