6.2.6 STS算法的实现步骤
采用UHTME对具有用户、文本和话题标签的社交网络数据进行语义学习,获取上述特征的语义表示。采用Word2vec获取社交网络文本的分布式向量表示,并构建用户标签矩阵。基于语义学习的在线社交网络话题搜索算法STS的实现步骤如下所示。
假设存在6个用户u 1~u 6及其发布的100条在线社交网络消息中的文本m 1~m 100,u 6为目标用户,假定用户u 6输入了搜索项m 0,希望搜索到与m 0相关的话题标签。构建的候选话题标签来自与m 0具有相似语义的其他微博以及与u 6有相似兴趣的其他用户。选择Top-X相似在线社交网络消息和Top-Y相似用户的话题标签作为候选话题标签集,计算每个候选话题标签与用户u 6输入的m 0之间的语义相关性分数,根据此语义相关性分数对话题标签进行排序,将Top-T话题标签作为搜索结果,返回给用户u 6。
算法6-1 基于语义学习的在线社交网络话题搜索算法
输入:用户id、搜索项、相似消息数X、相似用户个数Y、返回项个数T
输出:搜索结果
(1)根据用户id查找用户的主题分布,并计算目标用户与其他用户的隐式相似性
(2)根据用户-话题标签矩阵计算目标用户与其他用户的显式相似性
(3)计算目标用户与其他用户的整体相似性
(4)对用户的相似性进行排序,返回Y个相似用户
(5)采集相似用户所使用的话题标签,并将其放入候选话题集
(6)利用Word2vec将社交网络文本进行向量化表示
(7)计算搜索项与社交网络消息的相似性
(8)对搜索项与社交网络消息的相似性进行排序,返回X个相似用户
(9)采集相似在线社交网络消息中出现的话题标签,并将其放入候选话题集
(10)构建候选话题标签集
(11)根据多种特征的主题表示,计算得出的搜索项与话题标签的语义相关性分数
(12)对相关性分数进行排序
(13)将Top-T个话题标签返回给搜索的目标用户