Restart or shrinking are going to be the most impactful options here, but you (at your own risk) use DBCC to clear out some of the caches and buffers (ie: DBCC FREEPROCCACHE, DBCC DROPCLEANBUFFERS)
You are probably already aware, but restart doesn't actually shrink the size. With the instance restarts, a new tempdb is created entirely to the default size auto-growing by the configured rates. This is one of the areas many people first consider when optimizing tempdb for an instance. It's usually best to set your initial tempdb size to a size that should not need to be expanded so you don't have to auto-grow it at all.
The shrinking is resizing the files, but that is usually not desired, especially if you run the risk of doing it while open transactions exist on the db that could cause corruption during a shrink.
Regardless of the approach, definitely be very careful doing something like this.