AI 在 marketing 上的應用

AI 在 marketing 中有很多應用,例如 搜索,推薦系統,程序化廣告,市場預測,語音/文本識別(會話商務),防欺詐,網頁設計,商品定價,聊天機器人等。

  1. 其中很重要的一個部分叫 audience target,AI 可以應用在這里,可以對顧客和顧客的需求進行精準的定位,找到前20%最有價值的客戶,預測顧客下一次會買什么東西,這樣可以減少時間金錢等資源的消耗。

  2. 另一個應用是內容生成,輸入一個關鍵詞,從大量的數據里,找到和這個關鍵詞相關的段落文章等,融合成一段文字。
    這個技術可以針對目標客戶生成能夠吸引他們的內容,找到能夠激發他們購買欲的單詞短語句子等,將流量轉化為銷量。很多公司都用這個技術,例如雅虎。

  3. 還有一個是實時優化,當你通過電子郵件向你的客戶推送消息的時候,你要實時地分析他們喜歡什么,不喜歡什么。

  4. 一個人在不同的時間會使用電腦,手機,平板等不同的設備,AI 還可以被用來預測用戶在什么時間會使用什么設備,幫助公司在特定的設備上進行有效的推送。

1. 接下來看一下 audience targeting 的一個例子:

給定一個廣告,來看哪些顧客更有可能被轉化

用一個矩陣來表示用戶對一些廣告的評分,這里需要用到矩陣分解,即要把這個矩陣分成兩個矩陣的乘積,其中一個矩陣表示每個用戶對某些特征的喜好程度,另一個矩陣表示這些廣告在這些特征上的得分。

AI 可以將這個矩陣中空白的地方預測出來??梢灶A測用戶對未評分的廣告會打的分數。有了這個乘積得到的矩陣,就可以知道用戶對沒有評分過的廣告的評分。然后可以設定一個閾值,當評分高于這個閾值時,就推送這個廣告。

  • 這里可以用 LightFM, 是一個python庫,有很多流行的推薦算法,可以生成 user 和 item 的矩陣表示,可以學習每個特征的 embedding ,然后再將 user 和 item 的兩個矩陣相乘得到一個分數。

  • 還可以用神經網絡可以得到更有意義的表達。

  • TensorRec 是一個較新的基于 Tensorflow 搭建推薦系統的庫,可以根據用戶過去喜歡的廣告,生成一個可能喜歡的新廣告。

2. 那么具體如何做推薦呢?

第一步,將數據轉化為 feature tensor,為了做 embedding,這里可以用 word2vec。
第二步,將 user ,item tensor 轉化為 user~item 表達。當然因為這是個預測值,所以就會有 loss function,這里用梯度下降求得參數,使損失最小。
第三步,用 TensorRec 來進行推薦

整體流程為:
建立模型--數據--訓練模型--進行預測--最后用 Recall 進行評估:


3. 內容生成

前面提到的其中一個應用 內容生成,
當推薦系統建立之后,要推薦的內容也可以用 AI 自動生成。

這里用到 LSTM,
我們知道 RNN 很擅長預測序列,根據前面的幾個字預測緊接著的后面這個字是什么。不過當句子很長時,會有 vanishing gradient 問題。
而在 LSTM 中,有幾個 gate,它們可以追蹤 gradient,用來應對 vanishing gradient 問題,這樣 LSTM 就可以記憶很長的序列。

下面是部分代碼:

用 Keras 庫可以很簡單地就構建出復雜的神經網絡,很易讀,一行代表一層,
優化器用的是 RMSprop,

# build the model: a single LSTM
print('Build model...')
model = Sequential()
model.add(LSTM(128, input_shape=(maxlen, len(chars))))
model.add(Dense(len(chars)))
model.add(Activation('softmax'))

optimizer = RMSprop(lr=0.01)
model.compile(loss='categorical_crossentropy', optimizer=optimizer)

def sample(preds, temperature=1.0):
    # helper function to sample an index from a probability array
    preds = np.asarray(preds).astype('float64')
    preds = np.log(preds) / temperature
    exp_preds = np.exp(preds)
    preds = exp_preds / np.sum(exp_preds)
    probas = np.random.multinomial(1, preds, 1)
    return np.argmax(probas)


def on_epoch_end(epoch, logs):
    # Function invoked at end of each epoch. Prints generated text.
    print()
    print('----- Generating text after Epoch: %d' % epoch)

    start_index = random.randint(0, len(text) - maxlen - 1)
    for diversity in [0.2, 0.5, 1.0, 1.2]:
        print('----- diversity:', diversity)

        generated = ''
        sentence = text[start_index: start_index + maxlen]
        generated += sentence
        print('----- Generating with seed: "' + sentence + '"')
        sys.stdout.write(generated)

        for i in range(400):
            x_pred = np.zeros((1, maxlen, len(chars)))
            for t, char in enumerate(sentence):
                x_pred[0, t, char_indices[char]] = 1.

            preds = model.predict(x_pred, verbose=0)[0]
            next_index = sample(preds, diversity)
            next_char = indices_char[next_index]

            generated += next_char
            sentence = sentence[1:] + next_char

            sys.stdout.write(next_char)
            sys.stdout.flush()
        print()

print_callback = LambdaCallback(on_epoch_end=on_epoch_end)

model.fit(x, y,
          batch_size=128,
          epochs=60,
          callbacks=[print_callback])

學習資源:
https://www.youtube.com/watch?v=FYMjXD3G__Y&t=548s
https://www.techemergence.com/artificial-intelligence-in-marketing-and-advertising-5-examples-of-real-traction/
https://econsultancy.com/blog/67745-15-examples-of-artificial-intelligence-in-marketing/

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容