Prediction with multiple features (attributes)
There is nothing "wrong" about weighting different actions to get a measure of preference between a user and an item, and then using ALS to compute a latent feature space. This is quite common in my experience. However, the consequence of ALS is that it can detect categories and sub-categories using individual user/item interactions. So, I don't see why you need to be adding higher level preference data into your user/item matrix. The weighting should be done using only behavior that indicates preference between a specific user and specific item, not user/category or user/sub-category interactions - ALS will detect if a user likes a category on its own.

How to weight the preference behavior is somewhat tricky, but you can use heuristics or information from your data. For example, a page view is not as strong as a product purchase and should be weighted less. You might look at the distribution of page views vs purchases to get an idea how common one is vs the other, to develop a weighting scheme.

I am sure that you could also use an RNN in a classification setting, to predict the next item that a user will purchase given an input sequence of the last n items they've purchased or interacted with. The framework you use depends on your preference, for Python based Keras, MXNet, PyTorch, and Tensorflow are all worthy. For easy Spark integration and JVM-based, DL4J is a good choice.