基于用户兴趣的协同服务推送方法在知乎中的应用
2018-08-14顾冲张骏
顾冲 张骏
摘 要:针对知乎存在的用户获取答案周期长、答案质量参差不齐、用户体验差等问题,根据用户提问和回答标签构建用户兴趣模型,将用户兴趣与基于用户的协同过滤算法结合起来,提出基于用户兴趣的用户协同服务推送方法,并将该方法应用到知乎中进行验证,结果证明该方法可以有效地用于知乎用户个性化服务推送,为知乎提高自身信息服务水平提供了一定的指导意义。
关键词:社会化标签;用户兴趣;协同过滤;服务推送
中图分类号:F49 文献标识码:Adoi:10.19311/j.cnki.1672-3198.2018.17.024
1 引言
随着互联网信息技术和社交媒体的迅猛发展,海量信息被提供给人们,在给人们的工作、生活、学习等带来便利的同时,也使得人们对于分享和准确获取信息与知识的需求更为迫切。知乎作为目前国内最热门的社会化问答网站之一,融合了问答与社交,形成了用户对信息的互动交流模式,一定程度上较好地满足了用户分享或获取信息的需求。虽然经过多年的发展,知乎已经积累了大量高质量问答和参与度高的用户群体,但是仍然存在用户体验差、答案质量参差不齐、用户获取答案周期长等问题。基于用户兴趣进行服务推送时,可以将问题推送给具有相似兴趣的用户以缩短用户提问和回答的时间,提升用户体验感。因此,基于用户兴趣对知乎进行服务推送的研究具有重要意义。
目前常用的服务推送技术中,主要分为三种:协同过滤推送、基于内容的推送和基于社会化标签的推送。其中协同过滤推送技术是目前应用最为广泛、成熟的技术,它通过计算用户相似度,将相似用户的偏好信息推送给目标用户。基于内容的推送是指根据用户的历史信息来为其推送其它相似的信息。社会化标签是用户对信息资源的描述,一定程度上代表了用户的兴趣和偏好。基于社会化标签的推送结合前两者的优势,根据社会化标签挖掘用户兴趣和信息资源特点进而为用户实现推送。
知乎自身拥有一套话题体系,用户在提问、关注、发表文章等行为过程中都需要从话题体系中选择相应话题,知乎“话题”具有社会化标签的功能,知乎话题体系即知乎标签库。因此在研究知乎用户兴趣时,利用话题标签表示用户兴趣,具有一定地规范性、通用性和可行性。本文将用户兴趣模型与基于用户的协同过滤结合起来,提出了基于用户兴趣的用户协同服务推送方法,该方法为知乎提高自身信息服务水平提供了一定的指导意义。
2 基于用户兴趣的用户协同服务推送方法
2.1 用户兴趣提取
本文对“知乎”用户兴趣的提取包含两个方面,用户提出问题的话题兴趣标签提取和用户回答问题的话题兴趣标签提取,分为三个步骤进行。
(1)获取用户提出问题的话题兴趣标签。
知乎用户可以提出多个问题,但每一个问题只属于一个用户。用户每提出一个问题,就会使用一个或多个话题标签。统计用户提问题时使用的所有标签,构建用户-话题关系矩阵,记为RT。矩阵RT的每一个行向量表示一个用户提出问题的话题兴趣标签及其权重。
(2)获取用户回答问题的话题兴趣标签。
在知乎中,用户与问题、问题与话题都是多对多的关系,一个用户可以回答多个问题,一个问题也可以被多个用户回答,一个话题可以标注多个问题,一个问题也可以被多个话题标注。为了获取用户回答问题的话题兴趣标签,即要找到用户与话题之间的关系。假设三个关系矩阵,分别为用户-问题关系矩阵M,问题-话题关系矩阵N和用户-话题关系矩阵RQ。用户-问题关系矩阵M表示用户与其所回答问题之间的关系;问题-话题关系矩阵N表示问题与其标注话題之间的关系;用户-话题关系矩阵RQ则通过公式(1)计算得到。矩阵RQ的每一个行向量表示一个用户回答问题的话题兴趣标签及其权重。
(3)获得用户最终兴趣标签。
将用户提出问题的话题兴趣标签和用户回答问题的话题兴趣标签进行对比合并,重新计算标签权重,按照标签权重降序排列选取排名靠前的标签作为用户的兴趣标签,以标签和权重来表示用户兴趣。使用兴趣向量来表示最终用户兴趣模型,如公式(2)所示。
2.2 用户兴趣矩阵
对多个用户的兴趣向量进行合并汇总,可以获得用户兴趣矩阵,记为R,如公式(3)所示。
2.3 最近邻居用户集合的构建
在基于用户的协同过滤算法中最重要的就是邻居用户的选取,构建邻居用户集合主要包括两个步骤:用户相似度的计算和邻居用户的选取。
(1)计算用户相似度。
用户相似度计算是指根据用户-标签关系,通过一定的相似性计算方法,来计算用户兴趣的相似程度。本文使用余弦相似性计算用户相似度,如公式(4)所示。
(2)选取最近邻居用户。
阈值设置法是指提前设定一个相似度阈值e,然后直接将相似度大于该阈值的用户归属到目标用户的最近邻居用户集合中。本文使用阈值设置法进行邻居用户的选取,实验过程中再根据实际情况调整得到合适的阈值e。
2.4 个性化服务推送的产生
传统的基于用户的协同过滤推送算法,个性化服务推送阶段是指根据目标用户的最近邻居对资源的偏好,为目标用户推送相应的资源。针对知乎特点,话题标签所标注的用户、问题等内容与传统推送算法中的资源不同,因此,本文的个性化服务推送从不同方面进行推送,主要包含两点。
(1)目标用户好友推送。
目标用户与其最近邻居之间具有相似或相同兴趣,容易形成好友关系。因此,可以对目标用户的最近邻居用户按照相似度降序排列,选取其中排名靠前的用户作为好友推送给目标用户。
(2)标签及其标注资源推送。
由于目标用户与其最近邻居用户兴趣偏好比较相近,所以最近邻居用户感兴趣的内容也可以是目标用户所感兴趣的,因此可以向目标用户推送最近邻居用户形成的标签集合T,如公式(5)所示,Tui表示目标用户的兴趣标签集合,TNui表示包含目标用户在内的最近邻居用户的兴趣标签集合。另一方面,知乎中每一个话题页面都有“活跃回答者”、“精华问答”等内容,也可以将这些资源推送给目标用户。
3 知乎中服务推送实验分析
3.1 数据准备
本文研究所用数据主要来源于知乎用户egrcc在其“知乎”回答页面(https://www.zhihu.com/question/ 36132174/answer/88579592)中分享的数据集zhihu,该数据集可用于构建用户关注网络和获取用户回答兴趣标签。
为了使得服务推送方法在知乎中取得更好的效果,首先需要对数据进行处理,清洗后得到241名用户数据;再由于具有相似兴趣的用户容易形成紧密社区,所以对241名用户构建用户关注网络并使用Gephi中的“模块化”功能将用户划分为多个社区;最后针对其中的一个成员数量为4的社区中的用户进行服务推送,该社区4个用户在知乎中的user_url分别为“bu-zhi-34-47”、“cdban-zhang-lian”、“hahahaxy”、“qqwers123”。
3.2 知乎社区用户兴趣提取
根据用户兴趣提取的步骤,首先分别对4个用户提问时所使用的标签和回答时的问题所属话题标签进行提取,结果如表1和表2所示,其中表1数据是从知乎网站中提取的,表2数据由数据集中数据统计得到。
为了获得最终的用户兴趣标签,将用户提问和回答的话题兴趣标签合并,对每个用户的话题标签权重都进行归一化处理,最后得到四名用户的兴趣模型,结果如下。
bu-zhi-34-47:
{(调查类问题-0.0886),(生活-0.0253),(音乐-0.0253),(旅行攻略-0.019),(社会-0.019),(文化-0.019),(音乐推荐-0.019),(X 是种怎样的体验-0.0127),(儿童教育-0.0127),(教育-0.0127),(恐怖-0.0127),(人性-0.0127),(日本-0.0127),(摄影-0.0127),(生活经历-0.0127),(心理学-0.0127),(育儿-0.0127) };
cdban-zhang-lian:
{(日本-0.0596),(文化-0.0265),(科技-0.0199),(两性关系-0.0199),(刘慈欣(作家)-0.0199),(三体(系列小说)-0.0199),(社会-0.0199),(物理学-0.0199),(动漫-0.0132),(历史-0.0132),(你如何评价 X-0.0132),(人文生活-0.0132),(生活-0.0132),(物理科普-0.0132),(心理学-0.0132),(音乐-0.0132),(哲学-0.0132),(职场-0.0132)};
hahahaxy:
{(调查类问题-0.0714),(生活-0.05),(英语-0.0429),(生活经历-0.0357),(两性关系-0.0286),(情感-0.0214),(英语词汇-0.0214),(英语学习-0.0214),(阅读-0.0214),(初恋-0.0143),(翻译-0.0143),(口译-0.0143),(恋爱-0.0143),(女性-0.0143),(人际交往-0.0143)};
qqwers123:
{(女性主义-0.0244),(社会-0.0176),(生活-0.0149),(心理学-0.0136),(法律-0.0129),(你如何评价 X-0.0122),(性别平等-0.0122),(教育-0.0115),(兩性关系-0.0108),(性生活-0.0102),(文化-0.0095),(人际交往-0.0088),(恋爱-0.0081),(大学-0.0075),(历史-0.0075),(知乎-0.0075),(互联网-0.0068),(恋爱心理-0.0068)};
3.3 知乎社区用户最近邻获取
选择用户bu-zhi-34-47作为目标用户,为其寻找所在社区的最近邻居。
bu-zhi-34-47与cdban-zhang-lian共同感兴趣的标签有“日本”、“社会”、“生活”、“文化”、“心理学”和“音乐”,它们在两个用户兴趣模型中的权重分别为(0.0127,0.019,0.0253,0.019,0.0127,0.0253)和(0.0596,0.0199,0.0132,0.0265,0.0132,0.0132);
bu-zhi-34-47与hahahaxy共同感兴趣的标签有“调查类问题”、“生活”和“生活经历”,它们在两个用户兴趣模型中的权重分别为(0.0886,0.0253,0.0127)和(0.0714,0.05,0.0357);
bu-zhi-34-47与qqwers123共同感兴趣的标签有“教育”、“社会”、“生活”、“文化”和“心理学”,它们在两个用户兴趣模型中的权重分别为(0.0127,0.019,0.0253,0.019,0.0127)和(0.0115,0.0176,0.0149,0.0095,0.0136);
根据公式(4)计算用户之间的相似度,也就是求两个向量的余弦相似度,为了快速计算,采用matlab进行向量计算,得出bu-zhi-34-47与其它三名用户之间的相似度,结果如下:
sim(u1,u2)=0.7134;sim(u1,u3)=0.9182;sim(u1,u4)=0.9624。
根据用户相似度计算的结果,可以发现,bu-zhi-34-47与其它四名用户之间的相似度都在0.7以上,说明用户关系非常紧密。由于所选社区用户比较少,在进行邻居选择时就不需要设定阈值了,可以直接根据实际需求按照相似度大小选择1个、2个或3个邻居。用户qqwers123与bu-zhi-34-47的相似度最大,因此,选择用户qqwers123作为用户bu-zhi-34-47的最近邻居,便于后续对用户进行服务推送。
3.4 知乎社区用户个性化服务推送
在对“知乎”社区目标用户进行个性化服务推送阶段,不同于传统基于用户的协同过滤算法,本文主要根据具有相似兴趣的用户容易成为最近邻,通过最近邻的兴趣来给目标用户推送感兴趣的服务。以目标用户bu-zhi-34-47及其最近邻qqwers123为例,为目标用户bu-zhi-34-47推送个性化服务。
一方面,用户与其最近邻居之间具有相似的兴趣,容易形成友好关系,因此可以将用户bu-zhi-34-47作为好友推送给目标用户。
另一方面,可为目标用户推送其最近邻用户感兴趣的标签,根据公式(5)知,可推送给目标用户的话题标签集合为{女性主义,法律,你如何评价 X,性别平等,两性关系,性生活,人际交往,恋爱,大学,历史,知乎,互联网,恋爱心理}。在每个话题标签下都有“精华问答”、“活跃回答者”、“热门讨论问答”、“最近讨论问答”等内容,这些都可以作为信息资源推送给目标用户,以便于目标用户更全面地掌握该话题的相关动态。
4 结语
本文首先根据用户提问和回答时标注的话题标签来构建用户兴趣模型,然后将用户兴趣模型与基于用户的协同过滤算法结合起来提出了基于用户兴趣的用户协同服务推送方法,最后使用真实知乎数据对该方法进行了验证。实验结果表明了本文构建的用户兴趣模型可以有效地对知乎用户兴趣进行识别,提出的服务推送方法可以很好地为知乎用户提供个性化服务,进而提升其自身信息服务水平。
参考文献
[1]邓爱林,朱扬勇,施伯乐.基于项目评分预测的协同过滤推荐算法[J].软件学报,2003(09):1621-1628.
[2]李容,李明奇,郭文强.基于改进相似度的协同过滤算法研究[J].计算机科学,2016,43(12):206-208+240.
[3]王成,朱志刚,张玉侠,苏芳芳.基于用户的协同过滤算法的推荐效率和个性化改进[J].小型微型计算机系统,2016,37(03):428-432.
[4]雷凯,刘树波,李丹,李永凯.实时路况制约下基于内容的兴趣点推荐[J].计算机工程,2017,43(10):147-152.
[5]闫东东,李红强.一种改进的基于内容的个性化推荐模型[J].软件导刊,2016,15(04):11-13.
[6]代晨旭,周熙晨.一种基于内容的新闻推荐系统实例[J].电脑知识与技术,2015,11(25):36-38.
[7]付凯丽.基于社会化标签的图书推荐系统模型研究[J].情报探索,2016(10):80-85.
[8]蔡强,韩东梅,李海生,胡耀光,陈谊.基于标签和协同过滤的个性化资源推荐[J].计算机科学,2014,41(01):69-71+110.
[9]石林,徐飞,徐守坤.基于用户兴趣建模的个性化推荐[J].计算机应用与软件,2013,30(12):211-214+264.
[10]郭弘毅,劉功申,苏波,孟魁.融合社区结构和兴趣聚类的协同过滤推荐算法[J].计算机研究与发展,2016,53(08):1664-1672.