Для ускорения сравнения в случае с предположительно малым общим ядром можно из каждого набора сделать Bloom Filter (для которого можно балансировать точность/потребление памяти). Тогда придется проверять вхождение только для тех элементов, для которых проверка по фильтру вернет «in set».