Machine learning-based self-adjusting concurrency in software transactional memory systems