There isn't a relatively simple explanation, I'm afraid. As you've pointed out, there are more exceptions-to-rules than than there are rules; however, there are some general guidelines that might help you:
before double consonants
before double consonants, 'i' is usually short regardless of its position in a word: as in bitten, hidden, miffed, bigger, piggy, ribbon, nibble, chill, pillow, immune, simmer, dinner, innocent, snippet, hippo, irregular, irrelevant, miss, bliss, issue etc (the only exception I can think of is 'dissect' which can be pronounced either with a short 'i' or long)
in prefixes
'i' in common prefixes such as in- (im-, il-, ir-), infra-, inter-, intra-, hemi-, dis- etc is pronounced short (exc. bi- and di-)
before the suffix -tion
before the suffix -tion (in simple words, ition words), it's almost always short as in competition, condition, inhibition, exhibition, recognition, transition, addition etc
in ity and ible
in ity and ible, it's usually short (either /ɪ/ or /ə/) as in ability, activity, elasticity, sexuality, visible, edible, eligible, tangible, divisible etc but there may be exceptions
in the suffix -ise/-ize
the 'i' in the suffix -ise/-ize is almost always long as in realise, actualise, mesmerise, hypnotise, formalise, italicise, memorise etc. Also, as @rjpond pointed out in a comment: "Expertise" is a relatively recent borrowing from French ("machine" is also from French) so the "i" is /i:/ (which isn't short, but isn't diphthongised either).
in ic and ical words
before ic and ical, 'i' is almost always short as in classic, lunatic, logic, ironic, fanatic, genetic, classical, historical, physical, mechanical, etc
before digraphs
a digraph is 'a combination of two letters representing one sound' (Lexico). For example, the ck in 'back' or the ph in 'physics' or the ng in 'ring'. Before consonant digraphs (and consonant trigraphs), 'i' is usually short as in stick, brick, ring, king, fish, lavish, ridge, bridge rich, sandwich, witch, pitch etc
in -ing
in the inflectional suffix -ing, 'i' is almost always short as in making, raining, killing, selling, feeling, hiding, watering, hitting, sitting, calling etc
words ending in ign
words ending in ign usually have the long 'i' sound as in sign, consign, malign, design, resign, align, assign, benign etc.
before gh words
before gh, 'i' is usually pronounced long 'i' as in sight, fight, might, high, sigh, height, slight, night, bright, right etc (ex. 'weight' which is pronounced with /eɪ/)
before nd and ld
before nd and ld, 'i' is sometimes long as in wind (v.), kind, blind, mind, mild, child, find etc (for w[ɪ]nd vs w[aɪ]nd, read this answer)
before silent e
words ending in iCe ('i' being letter 'i', 'C' another consonant, 'e' the silent e) are usually, not always, pronounced with a long 'i' as in hide, site, kite, white, wife, oblige, like, spike, bike, file, tile, while, time, prime, line, fine, pipe, gripe, size etc. Exceptions: recipe, clandestine, astatine and routine (long 'e': /iː/), urine (can also be pronounced with long 'i'), iodine (it can also be pronounced with long i), ive-words below etc
words ending in ive
ive words are tricky. Most words having the prefix -ive have short 'i': relative, conservative, fricative, figurative, active, argumentative etc. By contrast, live (adj), dive, drive, five, revive, alive etc are pronounced with a long 'i'
CiC words
words in which 'i' is flanked by two other consonants is usually pronounced short as in signal, signature, sit, fit, kit, hit, lit, spit etc (ex. title, vital)
There are no hard and fast rules. Sorry.