The problem is that shapes (4,) and (4,3) are not broadcastable together. Broadcasting works by trying to align starting from the right end. So we want to make the first tensor a shape (4,1) one.
Therefore, tensor1d.unsqueeze(1) * tensor2d should give you desired result.