Use custom object input stream to deserialize

Use a custom object input stream to use the user-specified class loader
for recommender engine deserialization.