Now that the challenge is complete, I’d like to share some of the work I did to solve this exciting task.
In a nutshell, I tried to optimize the output parameters given the constraints we had using pytorch’s built-in features:
- a. I enforced A matrix orthogonality using product of Householder reflectors
- b. When optimizing, I defined “a sample” as all the information for a time period with all returns for all stocks
- c. I used CosineEmbeddingLoss torch as loss to optimize
- d. Combining a, b, c makes it possible to reproduce a metric close to the one we want to maximize for the challenge
- e. Finally, I used pytorch lightening and ray tune for hyperparameter optimization during cross-validation
This solution was ranked 2nd in the public leaderboard and 78th in the private leaderboard (RIP ).
Overall, I see a bit of inconsistency between the two rankings for all competitors. My current understanding is that the challenge was complex (high variance in the data / high bias for the model), hence the gap between the proposed solutions is extremely close.
My work can be found in the github repository available here: GitHub - PirashanthR/QRT-Data-Challenge-2022: Sample solution for QRT data challenge 2022: Learning factors for stock market returns prediction
Do not hesitate if you have any questions.
Also, I personally would be happy to read your thoughts and conclusions about this data challenge.