The offsetMatrix of a bone is the inverse of that bone's global transform at bind pose. In other words, if you traverse the bone/node hierarchy, applying the local transform (mTransformation in Assimp) of each bone/node hierarchically to its children, we get the global transform for each bone/node. The inverse of this matrix for a particular bone equals its offsetMatrix. As implied here, it can be computed manually - regardless, it is constant and should not be computed per frame.
The name "offsetMatrix", though somewhat confusing (something like inverseBind would be clearer), probably comes from its use. The transform we use for skinning is (B_keyframe * offsetMatrix), where B_keyframe is the global transformation of a bone at some target location, provided e.g. by an animation clip. This composite transformation is effectively an offset, from bind pose (where the mesh vertices are defined) to B_keyframe. When applied to vertices, (B_keyframe * offsetMatrix) will "move" vertices, from bind positions to whatever position B_keyframe transforms to.
Note that if B_keyframe is equal to the bind transform, e.g. computed from the skeleton's mTransformation:s as above, then (B_keyframe * offsetMatrix) is identity and vertices will not move from their original positions in bind pose.
I personally favour the "from mesh space to bone space" definition when it comes to offsetMatrix. Why? Because the inverse of offsetMatrix - the (global) bone transform (at bind pose) - is most intuitively understood as a transformation from bone to mesh/model space. Inverting back, offsetMatrix transforms from mesh/model space to bone space.
Compare with the View matrix in rendering: it is the inverse of the camera's world transform (T*R), and is generally understood to transform from world to view space.